The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Руководства по FreeBSD на русском" / Оглавление документа

Chapter 7 MASTERDIR

Если вашему порту требуется построение довольно различающихся версий пакаджей через переменную (задающую, например, разрешение, или размер бумаги), которая принимает различные значения, создайте для каждого пакаджа отдельный подкаталог, чтобы пользователям было легче определить, каким пакаджем воспользоваться, но попробуйте использовать совместно между портами как можно больше файлов. В типичном случае вам потребуются только очень короткие файлы Makefile во всех каталогах, кроме одного, если вы будете использовать переменные с умом. В отдельных файлах Makefile вы можете использовать переменную MASTERDIR для указания каталога, в котором находятся все остальные файлы. Также используйте переменную как часть PKGNAMESUFFIX, чтобы пакаджи имели разные имена.

Продемонстрируем это на примере. Вот часть файла japanese/xdvi300/Makefile:

PORTNAME=       xdvi
PORTVERSION=    17
PKGNAMEPREFIX=  ja-
PKGNAMESUFFIX=  ${RESOLUTION}
 :
# default
RESOLUTION?=   300
.if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \
       ${RESOLUTION} != 300 && ${RESOLUTION} != 400
       @${ECHO} "Error: invalid value for RESOLUTION: \"${RESOLUTION}\""
       @${ECHO} "Possible values are: 118, 240, 300 (default) and 400."
       @${FALSE}
.endif
   

Порт japanese/xdvi300 содержит также все обычные патчи, файлы для пакаджа и так далее. Если вы введете здесь команду make, она возьмет в качестве разрешения значение по умолчанию (300) и построит порт обычным образом.

Для другого разрешения приведем полный xdvi118/Makefile:

RESOLUTION=    118
MASTERDIR=  ${.CURDIR}/../xdvi300

.include "${MASTERDIR}/Makefile"

(xdvi240/Makefile и xdvi400/Makefile похожи). Задание MASTERDIR говорит bsd.port.mk, что обычный набор подкаталогов типа FILESDIR и SCRIPTDIR находится в каталоге xdvi300. Строчка RESOLUTION=118 переопределят строку RESOLUTION=300 в файле xdvi300/Makefile и порт будет построен с разрешением 118.

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>.


Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру