15.7. Написание чего-либо после bsd.port.mk

Не пишите ничего после строки .include <bsd.port.mk>. Этой строки можно избежать, включив в где-то в середину вашего файла Makefile файл bsd.port.pre.mk, и файл bsd.port.post.mk в конец.

Note: Вам нужно включить либо пару файлов pre.mk/post.mk, либо только bsd.port.mk; не смешивайте два этих случая.

В файле bsd.port.pre.mk определяются лишь несколько переменных, которые могут быть использованы в тестах из файла Makefile, в файле bsd.port.post.mk заданы остальные.

Вот некоторые важные переменные, определенные в файле bsd.port.pre.mk (это не полный список, для выяснения полного списка прочтите, пожалуйста, сам файл bsd.port.mk).

Переменная Описание
ARCH Архитектура машины в виде, получаемом по команде uname -m (например, i386)
OPSYS Тип операционной системы, получаемый по команде uname -s (например, FreeBSD)
OSREL Версия релиза операционной системы (например, 2.1.5 или 2.2.7)
OSVERSION Версия операционной системы в виде числа, то же, что и __FreeBSD_version.
PORTOBJFORMAT Формат объектных файлов, используемых в системе (aout или elf)
LOCALBASE Корень дерева ``local'' (например, /usr/local/)
X11BASE Корень дерева ``X11'' (например, /usr/X11R6)
PREFIX Куда, собственно, устанавливается порт (обратитесь к подробной информации о PREFIX).

Note: Если вы задаете переменные USE_IMAKE, USE_X_PREFIX, или MASTERDIR, то делайте это перед тем, как включать bsd.port.pre.mk.

Вот несколько примеров того, что вы можете написать после 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
     
По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам связанным с этом документацией, пишите по адресу <doc@FreeBSD.org>.