Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
@cd ${WRKDIR}/${INFRA_PATCHDIR}/${INFRA_PATCHEXT} &&
${SH} ${INFRA_PATCHER}
.endif
Дополняем мишень patch подмишенью post-patch, в которой собственно и запускаем скрипт, вносящий изменения. Обратите внимание – записать это в две строки нельзя! Если записать команды cd и запуск скрипта на разных строках, то запуск скрипта произойдет не из каталога, в который перешли командой cd, а из текущего, потому что make, выполнив запрошенное действие, возвращается в каталог, из которого она была запущена. Точно так же выполняются все другие действия, связанные со сменой каталога, – например распаковка файлов.
.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.