Chapter 2. Making a New Port

So, you are interested in making your own port or upgrading an existing one? Great!

What follows are some guidelines for creating a new port for FreeBSD. If you want to upgrade an existing port, you should read this and then read Chapter 10, Upgrading a Port.

When this document is not sufficiently detailed, you should refer to /usr/ports/Mk/, which all port Makefiles include. Even if you do not hack Makefiles daily, it is well commented, and you will still gain much knowledge from it. Additionally, you may send specific questions to the FreeBSD ports mailing list.


Only a fraction of the variables (VAR) that can be overridden are mentioned in this document. Most (if not all) are documented at the start of /usr/ports/Mk/; the others probably ought to be. Note that this file uses a non-standard tab setting: Emacs and Vim should recognize the setting on loading the file. Both vi(1) and ex(1) can be set to use the correct value by typing :set tabstop=4 once the file has been loaded.

Looking for something easy to start with? Take a look at the list of requested ports and see if you can work on one (or more).

All FreeBSD documents are available for download at

Questions that are not answered by the documentation may be sent to <>.
Send questions about this document to <>.