The GENDIST Toolkit


Configuring the build-system

Generic configuration

The GENDIST generated build-system is based on make. It is configured by makefile variables. Thus, the following is not really GENDIST specific.

There are three possible ways to configure the build-system:

Consider this makefile:

MESSAGE=Set within makefile

foo:
        @echo $(MESSAGE)

Now try the following:

> make
> make MESSAGE="set as cmdline argument"

You will see that the argument given on the command line will override the value set within the makefile. Values set within the makefile will take precedence over variables set in the environment.

The toplevel makefile will include a file called config.inc if available. This will override any default values in the makefile. You usually set values in this file. Commandline arguments can then be used to temporarely override these values.


Standard configuration variables

The GENDIST-generated build-system supports a number of standard configuration variables. At any time, you can query these variables with 'make help-config', a short explanation is available with 'make help-params'.

Name Description
TYPE Media type to build. See media types for details.
KERNEL Path to kernel. If this variable is not set, the build-system will look for a kernel in the directory src/kernel. If no kernel is found, the variable will be set to "missing" (without quotes).
IMG_SIZE Size of floppy image in KB. Default is 1440, but you can try other values, like 1722. The latter should work on most systems. For El-Torito images, a boot image with 2.88 MB is also supported by most BIOSes. In this case, use IMG_SIZE=2880.
RD_SIZE Size of the (initial) ramdisk in KB. If you use RD_SIZE=auto (the default), the size is calculated automatically. In this case the calculated size is increased by the amount defined in RD_SIZE_INC. Note: The automatic calculation of the required ramdisk-size does not always work, e.g. if your build-directory is on reiserfs, the estimated size will typically be too small. Increase RD_SIZE_INC appropriately (or better, supply a patch :-)
RD_SIZE_INC Additional amount in KB used to increase the automatically calculated ramdisk-size. Default: 256. Ignored if a specific RD_SIZE value is given.
RD_FS Filesystem type of (initial) ramdisk. Default is minix. Possible values are ext2 and minix. Note that a minix filesystem is usually more space efficient than ext2, but requires your kernel to have builtin minix support.
RD_NODES Number of nodes of the (initial) ramdisk. If RD_NODES is set to 'auto', the number is calculated automatically. For large ISOLINUX-ramdisk, this calculation sometimes failes. In this case, increase RD_NODES_INC.
RD_NODES_INC Additional number of nodes of the (initial) ramdisk if RD_NODES is calculated automatically. Default: 150.
FILESYSTEMS Filesystems to process. All input-packages for filesystem foo are located below DIST_ROOT/src/packages/foo-fs. Default value: all filesystems below DIST_ROOT/src/packages/. This variable is only relevant for the targets clean, distclean and mrproper, since filesystems are processed implicitly or explicitly by various media (e.g. syslinux-based floppies will automatically process the root-fs-filesystem, while plain-disk expects the filesystem to be specified in the variable FS).
root-fs_PACKAGES Names of packages to go into the root filesystem.
IMG_TYPE Only for TYPE=el-torito: Type of the emulated bootdisk. This can be any one of the single disk types (e.g. syslinux, lilo or classic1).
cd-fs_PACKAGES Only for CD-types: Names of packages to to into the filesystem on the CD.
MKISOFS_ARGS Only for CD-types: Arguments to mkisofs.
foo-fs_PACKAGES Packages to go into the foo-filesystem.
env_PACKAGES Packages to create the build-environment (e.g. one time initialization tasks, or to create a kernel from source). The packages must define the target env-install, see "The build-environment" for details. All environment-packages are located underneath DIST_ROOT/src/packages/env.
USE_LOCAL_WEB If set to true, a local webserver is used for downloading and building source-packages. This feature is mainly useful for testing (in case no fast connection to the Internet is available).
LOCAL_WEB_PREFIX Path to package-directory for local downloads, see building source-packages for details.
SOURCE_CACHE_DIR Directory for caching downloaded packages. Default: DIST_ROOT/src/SOURCES.


My Homepage
Bernhard Bablok (mail @ bablokb.de)