Do not write anything after the .include <bsd.port.mk> line. It usually can be avoided by including bsd.port.pre.mk somewhere in the middle of your Makefile and bsd.port.post.mk at the end.
Note: You need to include either the pre.mk/post.mk pair or bsd.port.mk only; do not mix these two.
bsd.port.pre.mk only defines a few variables, which can be used in tests in the Makefile, bsd.port.post.mk defines the rest.
Here are some important variables defined in bsd.port.pre.mk (this is not the complete list, please read bsd.port.mk for the complete list).
Variable | Description |
---|---|
ARCH | The architecture as returned by uname -m (e.g., i386) |
OPSYS | The operating system type, as returned by uname -s (e.g., FreeBSD) |
OSREL | The release version of the operating system (e.g., 2.1.5 or 2.2.7) |
OSVERSION | The numeric version of the operating system, same as __FreeBSD_version. |
PORTOBJFORMAT | The object format of the system (aout or elf) |
LOCALBASE | The base of the ``local'' tree (e.g., /usr/local/) |
X11BASE | The base of the ``X11'' tree (e.g., /usr/X11R6) |
PREFIX | Where the port installs itself (see more on PREFIX). |
Note: If you have to define the variables USE_IMAKE, USE_X_PREFIX, or MASTERDIR, do so before including bsd.port.pre.mk.
Here are some examples of things you can write after bsd.port.pre.mk:
# no need to compile lang/perl5 if perl5 is already in system .if ${OSVERSION} > 300003 BROKEN= perl is in system .endif # only one shlib version number for ELF .if ${PORTOBJFORMAT} == "elf" TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} .else TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} .endif # software already makes link for ELF, but not for a.out post-install: .if ${PORTOBJFORMAT} == "aout" ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so .endif
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |