Building Darwin HOWTO

Rob Braun

Darwin Committer
Revision History
Revision 28 October 2001rjh - [email protected]
Changed title to "Darwin Committer".
Revision 11 May 2001rb - [email protected]


Darwin's build system builds new packages within a chroot'ed environment consisting entirely of previously built packages. For example, building a new version of xnu installs all the components needed for building xnu, into a chrooted environment, and then starts building xnu in that chrooted environment. Obviously, this leads to a paradox, since you'll need existing packages before you can build anything with this system. Luckily, I have prepared packages for the entire Darwin 1.2 distribution and have made them available at You do not need to install these packages. They are used by the build process in their packaged form.

Table of Contents

Building Individual Packages
Building a Package from a local directory
Building a Package from cvs
Building Everything
The darwin-buildall script
The Manifest File
Installing Packages
Adding a package to the Build System
Adding a GNU Autoconf package
Adding a 3rd Party Package


When building packages, the Darwin build system uses the Tools/buildtools from the Darwin cvs repository. You should check out the latest version and install it before attempting to use the build system. The current system uses a series of perl scripts around the dpkg format, that is why all the packages are .deb. The scripts used are darwin-buildpackage and darwin-buildall. These scripts use the perl modules Dpkg/Package/ and Dpkg/Package/ All these files are included in the buildtools that you should have checked out and installed already.