FreeBSD Handbook
: Installing Applications: The Ports collection
: Making a port yourself
Previous: Some Questions and Answers
Next: Quick Porting
4.7. Making a port yourself
Contributed by Jordan K. Hubbard
<[email protected]>
, Gary Palmer
<[email protected]>
, Satoshi Asami
<[email protected]>
, David O'Brien
<[email protected]>
and
Tim Vanderhoek
<[email protected]>
.
28 August 1996.
So, now you are interested in making your own port? Great! :)
What follows are some guidelines for creating a new port for
FreeBSD. The bulk of the work is done by
/usr/share/mk/bsd.port.mk
, which all port Makefiles include.
Please refer to that file for more details on the inner workings of
the ports collection. Even if you don't hack Makefiles daily, it is
well commented, and you will still gain much knowledge from it.
Note: Only a fraction of the overridable variables
(${..}
) are mentioned in this document. Most (if not
all) are documented at the start of bsd.port.mk
. This file
uses a non-standard tab setting. Emacs
and Vim
should recognize the setting on loading the file. vi
or
ex
can be set to using the correct value by typing `:set
tabstop=4
' once the file has been loaded.
- 4.7.1.1. Writing the Makefile
- 4.7.1.2. Writing the description files
- 4.7.1.3. Creating the checksum file
- 4.7.1.4. Testing the port
- 4.7.1.5. Checking your port with portlint
- 4.7.1.6. Submitting the port
- 4.7.2.1. How things work
- 4.7.2.2. Getting the original sources
- 4.7.2.3. Modifying the port
- 4.7.2.4. Patching
- 4.7.2.5. Configuring
- 4.7.2.6. Handling user input
- 4.7.3.1. The original source
- 4.7.3.2. DISTNAME
- 4.7.3.3. PKGNAME
- 4.7.3.4. CATEGORIES
- 4.7.3.5. MASTER_SITES
- 4.7.3.6. PATCHFILES
- 4.7.3.7. MAINTAINER
- 4.7.3.8. Dependencies
- 4.7.3.9. Building mechanisms
- 4.7.4.1.
ldconfig
- 4.7.4.2. ELF support
- 4.7.4.3.
MASTERDIR
- 4.7.4.4. Shared library versions
- 4.7.4.5. Manpages
- 4.7.4.6. Ports that require Motif
- 4.7.4.7. X11 fonts
- 4.7.4.8. Info files
- 4.7.5.1.
MESSAGE
- 4.7.5.2.
INSTALL
- 4.7.5.3.
REQ
- 4.7.5.4. Changing
PLIST
based on make variables
- 4.7.5.5. Changing the names of files in the
pkg
subdirectory
- 4.7.8.1. Strip Binaries
- 4.7.8.2. INSTALL_* macros
- 4.7.8.3.
WRKDIR
- 4.7.8.4.
WRKDIRPREFIX
- 4.7.8.5. Differentiating operating systems and OS versions
- 4.7.8.6. Writing something after
bsd.port.mk
- 4.7.8.7. Install additional documentation
- 4.7.8.8. DIST_SUBDIR
- 4.7.8.9. RCS strings
- 4.7.8.10. Recursive diff
- 4.7.8.11. PREFIX
- 4.7.8.12. Subdirectories
- 4.7.8.13. Cleaning up empty directories
- 4.7.8.14. UIDs
- 4.7.8.15. Do things rationally
- 4.7.8.16. Respect CFLAGS
- 4.7.8.17. Configuration files
- 4.7.8.18. Portlint
- 4.7.8.19. Feedback
- 4.7.8.20. Miscellanea
- 4.7.8.21. If you are stuck....
- 4.7.11.1. Current list of categories
- 4.7.11.2. Choosing the right category
FreeBSD Handbook
: Installing Applications: The Ports collection
: Making a port yourself
Previous: Some Questions and Answers
Next: Quick Porting
[email protected]
Updated March 2, 1999