Building Everything

You can build an entire distribution, or just a subset of it, all at once. This uses the darwin-buildall script, and uses a Manifest file to describe which packages to build. The buildall script only builds from the cvs repository with the cvs tagged versions specified in the Manifest file. The Manifest file can be checked out from the cvs tree, and is located in Darwin/Manifest. This section will first describe the use of the buildall script, and then discuss the format of the Manifest file.

The darwin-buildall script

Before running the buildall script, you should setup your anoncvs environment, as discussed earlier. Also, your build location (specified in the BUILDIT_DIR environment variable, defaulting to /tmp/roots) should be a UFS filesystem, otherwise some packages will not build correctly (because of HFS+'s case insensitivity). To run the buildall script execute the following as root:

darwin-buildall Manifest /src/in /src/out

This will check out source from the cvs tree, with the cvs tag specified in the Manifest file, and build it in your build location. The buildall script will progress through the Manifest file starting at the top, and continuing to the next item only after successfully checking out and building the current item.

The Manifest File

The Manifest file consistes of one package per line, in the format of:

src     project-version       target

src is where to get the package from. For the Darwin Manifest in the cvs tree, this is always cvs. The only other valid option is dir, and it will use the next item on the line as the directory to use as the source directory.

project-version is the project to build. If the src is cvs, then this is the cvs tag to check out. If the src is dir, then this is the directory to use for the package source.

target is almost always set to all.

The # character is a comment, so you can comment out different projects that won't build with your current packages.