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]
Created.

Abstract

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 http://www.darwinfo.org/pub/darwin/built/. You do not need to install these packages. They are used by the build process in their packaged form.


Table of Contents

Tools
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
Copyright

Tools

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/Builder.pm and Dpkg/Package/Manifest.pm. All these files are included in the buildtools that you should have checked out and installed already.