6. Anatomy of a Build

A full build without any -no options performs the following operations in the specified order:

  1. An update of the current ports tree from the ZFS snapshot[1]

  2. An update of the running branch's src tree from the ZFS snapshot[1]

  3. Checks which ports do not have a SUBDIR entry in their respective category's Makefile[1]

  4. Creates the duds file, which is a list of ports not to build[1][2]

  5. Generates a fresh INDEX file[1][2]

  6. Sets up the nodes that will be used in the build[1][2]

  7. Builds a list of restricted ports[1][2]

  8. Builds packages (phase 1)[3]

  9. Performs another node setup[1]

  10. Builds packages (phase 2)[3]



[1] Status of these steps can be found in ${arch}/${branch}/build.log as well as on stderr of the tty running the dopackages command.

[2] If any of these steps fail, the build will stop cold in its tracks.

[3] Status of these steps can be found in ${arch}/${branch}/journal. Individual ports will write their build logs to ${arch}/${branch}/logs/ and their error logs to ${arch}/${branch}/errors/.

This, and other documents, can be downloaded from http://ftp.FreeBSD.org/pub/FreeBSD/doc/

For questions about FreeBSD, read the documentation before contacting <questions@FreeBSD.org>.

For questions about this documentation, e-mail <doc@FreeBSD.org>.