Não escreva qualquer coisa após a linha do .include <bsd.port.mk>. Geralmente pode ser evitada incluindo bsd.port.pre.mk em algum lugar no meio de seu Makefile e bsd.port.post.mk no fim.
Nota: Você necessita incluir ambos os par bsd.port.pre.mk/bsd.port.post.mk ou somente bsd.port.mk; não misture este dois usos.
O bsd.port.pre.mk define somente algumas variáveis, que podem ser usadas em testes no Makefile, bsd.port.post.mk define o descanso.
Aqui estão algumas variáveis importantes definidas no bsd.port.pre.mk (esta não é a lista completa, por favor leia bsd.port.mk para a lista completa).
| Variável | Descrição |
|---|---|
| ARCH | A arquitetura como retornada pelo uname -m (ex., i386) |
| OPSYS | O tipo de sistema operacional, assim retornado pelo uname -s (ex., FreeBSD) |
| OSREL | A versão do release do sistema operacional (ex., 2.1.5 ou 2.2.7) |
| OSVERSION | A versão numérica do sistema operacional, o mesmo que __FreeBSD_version. |
| PORTOBJFORMAT | O formato do objeto do sistema (aout ou elf) |
| LOCALBASE | A base da arvore ``local'' (ex., /usr/local/) |
| X11BASE | A base da arvore do ``X11'' (ex., /usr/X11R6) |
| PREFIX | Onde o port se instala (veja mais em PREFIX). |
Nota: Se você tem que definir as variáveis USE_IMAKE, USE_X_PREFIX, ou MASTERDIR, faça assim antes de incluir o bsd.port.pre.mk.
Estão aqui alguns exemplos das coisas que você pode escrever após o 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