Additional to the following text, a further example has be posted.
Building GNUMach from Source
If you want to build the GNUMach kernel yourself instead of just using a pre-built binary, follow these instructions.
The unpacked source tree is around 20 MiB, and the build tree (with all drivers enabled) is around 50 MiB.
Getting the Source Code
Developers's RCS
See here.
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co -r gnumach-1-branch gnumach
(Most probably you want to get hold of the GNU Mach 1 branch and not the trunk, which is also what we've done above.)
You then have to create the automatically generatable files:
$ ( cd gnumach && autoreconf --install )
What Debian is currently using
See here.
$ apt-get source gnumach
Please see the Debian ?FAQ before using apt-get source.
Preparing for the Build
... on Debian systems
Building GNU Mach requires the build-essential and fakeroot packages, their dependencies and additional packages that are specified by the source gnumach package:
# apt-get install build-essential fakeroot
# apt-get build-dep gnumach
... on non-Debian systems
Apart from the case that you only want to install GNU Mach's header files (see below), building GNU Mach requires you to have the Mach Interface Generator installed. See building MIG about how to do that, then come back here.
Additionally, building GNU Mach requires a C compiler, a standard C library and your favourite flavor of awk (gawk) and GNU make.
Building and Installing
... Debian .deb files
Change into the directory with the downloaded / unpacked GNU Mach sources, e.g.
$ cd gnumach-20050801
Start the build process with
$ dpkg-buildpackage -us -uc -b -rfakeroot
GNUMach is now building. To use the new kernel, you must install the
resulting .deb package which is located one directory above the build
directory and has a similar name as the build directory, e.g.
# dpkg -i ../gnumach_20050801-4_hurd-i386.deb
You can now reboot your computer and enjoy the new kernel.
[TODO]
GNU Mach should be built in a separate directory:
$ mkdir gnumach-build
$ cd gnumach-build
Find the path to your GNU Mach sources ([...]/gnumach-1-branch) and configure
it:
$ [...]/gnumach-1-branch/configure [TODO]
Build the kernel image:
$ make gnumach.gz
Optionally run the (tiny) test suite:
$ make check
You can then install and use gnumach.gz.
[TODO.]
Installing only the Header Files
GNU Mach should be built in a separate directory:
$ mkdir gnumach-build
$ cd gnumach-build
Find the path to your GNU Mach sources ([...]/gnumach-1-branch) and configure
it:
$ [...]/gnumach-1-branch/configure --prefix=
Install the header files into e.g. ~/gnu/include/:
$ make DESTDIR=~/gnu install-data
