[an error occurred while processing this directive](none)
MkLinux: Developer Corner[an error occurred while processing this directive]: CVS Information
Think Differently. Think MkLinux.
Home | About | News | FAQ | Getting Started | Using MkLinux | Advanced Admin

MkLinux CVS source server

If you are thinking about making modifications to MkLinux, you will want to read Rich Morin's instructions for Building the System, available at Prime Time Freeware.


To obtain the latest sources, as used to create the GENERIC-series kernels, you must first have CVS and ODE installed.

For DR3 and other libc5 systems, there's an RPM of CVS in the mirrors of mklinux.apple.com from the mirrors page, under the following path: RedHat/RPMS/cvs-1.9-4b.ppc.rpm and a tarball of ODE in the mirrors of mklinux.apple.com from the mirrors page, under the following path: mklinux_source/ode-bin.tgz.

For systems using libc6 (also called glibc2) such as pre-R1, RPMs of CVS and ODE are available here.

In both cases, it's better to get the files from one of the mirror sites.

Then, assuming that you want to put the sources in /path/to/source/dir, do the following:

mkdir -p /path/to/source/dir
cd /path/to/source/dir
cvs -d ":pserver:public@cvs.mklinux.org:/MkLinux" login
(password: mklinux)
cvs -d ":pserver:public@cvs.mklinux.org:/MkLinux" get Build
sh Build --help

The help display will show you the various options that can be used. Some of them are documented in more detail below. For now, we'll assume that you want to compile everything.

If all you want to do is pull the sources and look at them, type this:

sh Build --disable-compile
This command will fetch the sources into the current directory and skip the compilation phase.

Compiling the sources

The easiest way to fetch the sources and compile them is just to do this:

sh Build
This command will fetch the sources into the current directory, compile them, and put the output into the current directory. Note that this mode of operation is NOT recommended, as it is easy to confuse checked-out files and created files, but if all you want is to track the changes checked in by others, it's simple and direct.

A better way is to fetch the sources into one directory and put the created files into another. This separation is handy if you want to compile multiple versions, for example, one with debugging and one without. There are several ways to do this. One way is to tell Build where to put the generated files:

sh Build /path/to/build/dir

By default, Build will fetch files into the directory where the script lives and place the generated files into the current directory, so an equivalent way is to invoke Build in the build directory:

cd /path/to/build/dir
sh /path/to/source/dir/Build

If you're not in either the source or the build directory, you can even combine them:

sh /path/to/source/dir/Build /path/to/build/dir

Each time you run Build again, it will fetch any files that are new or different and recompile whatever has changed.


For a developer, probably the first option of importance is --use-mklinux-account=account which tells Build to fetch files using the specified account rather than the public account. If you've already checked out the sources using your own account, this option will allow you to use the source tree you already have.

Another useful option is --disable-fetch which inhibits fetching the sources. Even if there are no changes, the fetch phase takes several minutes. If all you are doing is verifying that a local change compiles, getting any other changes is probably unnecessary.

Other options that a developer might use are the --without-component (such as --without-mach and --without-mklinux) which will suppress the compilation of a particular component. Note that --without-compile is the same as changing the default to no compilation. Thus, to compile just the Mach kernel, you can do this:

sh whatever/Build --disable-fetch --without-compile --with-mach ...

Some components offer options for configuration. The Build system will automatically do the configuration for you based upon the options you provide. For example, to specify a configuration option for compiling the MkLinux server, use --mkl-xxx-yyy to have the CONFIG_XXX_YYY option set.

Since there can be a lot of options passed to Build, the easiest way to specify them is to place them in a file and use the --rc option:

sh Build -rc option.file

Home | About | News | FAQ | Getting Started | Using MkLinux | Advanced Admin

Contact the web team at mklinux-www@mklinux.org.

Copyright (©) 2001 MkLinux Developers Association. Permission to freely distribute this document is hereby granted, provided that it is distributed at no charge other than normal connect-time charges. All rights other than those specifically granted above are reserved.