Создаем порт для FreeBSD своими руками. Часть II | страница 10
if defined(PREBUILD_TRANSEX3)
@${ECHO_MSG} "===> Pre-build TRANSEX3"
@${ECHO} "source ${WRKSRC}/FreeBSDEnv.Set"
> ${GSI_PREBUILD}
@${ECHO} "cd transex3 && build — all && deliver"
>> ${GSI_PREBUILD}
@${CHMOD} +x ${GSI_PREBUILD}
@cd ${WRKSRC} && PATH="${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin" && ${TCSH} ${GSI_PREBUILD}
endif
if defined(USE_RUSSIAN_GSI)
@${ECHO_MSG} "===> Build russian GSI"
@cd ${WRKSRC} && PATH="${PATH}:${LOCALBASE}/bin:${LOCALBASE}/sbin" && ${TCSH} — c 'source FreeBSDEnv.Set && localize — m — i ru-RU — l ${LANG_EXT} — f ${RUSSIAN_GSI}
endif
Первая часть задает предварительную сборку программы transex3, для чего формируется скрипт, затем осуществляется переход в каталог с распакованными исходниками и запуск сборки. Обратите внимание, как передается значение переменной PATH. Вторая часть задает обработку исходных текстов OpenOffice согласно новому файлу локализации интерфейса.
Полный текст Makefile из editors/openoffice-1.1 с внесенными мной изменениями можно скачать с.[3] Этот файл уже не используется как файл порта, но как образец написания Makefile, там есть чему поучиться.
Некоторые переменные USE_*
Здесь описаны некоторые наиболее часто используемые переменные USE_*, не упомянутые до сих пор. Полный список их значительно больше, смотреть его нужно в bsd.port.mk.
• IGNOREFILES= <список файлов> — задает список файлов, для которых не выполняется проверка контрольной суммы из distinfo.
• EXTRACT_ONLY=yes — только распаковать файлы дистрибутива, не выполнять никакой работы по сборке. Как правило, в таком порту применяется заменяющая подмишень do-install.
• RESTRICTED=yes — запрещает помещать собранный пакет на FTP или распространять на CD-ROM. Как правило вследствие лицензионных ограничений. Это не такая уже редкость, например такое ограничение имеет виртуальная машина Java.
• NO_CDROM=yes — почти то же самое, только разрешает помещение на FTP.
• FORBIDDEN=yes — запрещает сборку из-за уязвимостей программы.
• IGNORE=yes — запрещает сборку из-за грубых ошибок при сборке программы. Фактически используется для прекращения работы системы по каким-либо причинам (например, неподдерживаемая версия FreeBSD).
• BROKEN=yes — запрещает сборку из-за различных ошибок.
• USE_ZIP=yes — для распаковки использовать zip.
• USE_DOS2UNIX=yes — все тексты перекодировать таким образом, чтобы преобразовать переводы строк из вида DOS в вид UNIX.
• USE_GCC=<номер> — задает номер версии компилятора GCC. Я помню только один порт, использовавший эту USE_* — editors/openoffice на 4.х, имевший по умолчанию GCC 2.95.4.