6. Anatomy of a Build
Prev |  | Next

## 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/`.

Prev |  | Next
5. Starting the Build | Home | 7. Build Maintenance

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.