Глава 14. Примерный Makefile

Этот перевод может быть устаревшим. Для того, чтобы помочь с переводом, пожалуйста, обратитесь к Сервер переводов FreeBSD.

Содержание

Образец Makefile, который можно использовать для создания нового порта.

Вам рекомендуется следовать этому формату (соблюдая порядок следования переменных, пустые строки между разделами, и так далее). Этот формат разработан для того, чтобы важная информация была легко найдена. Обратитесь главе о тестировании, чтобы узнать больше о lint, утилитах для форматирования и проверки файла Makefile.

PORTNAME=	xdvi (1)
DISTVERSION=	18.2
CATEGORIES=	print
MASTER_SITES=	${MASTER_SITE_XCONTRIB} (2)
MASTER_SITE_SUBDIR=	applications
PKGNAMEPREFIX=	ja-
DISTNAME=	xdvi-pl18
EXTRACT_SUFX=	.tar.Z (3)

PATCH_SITES=	ftp://ftp.sra.co.jp/pub/X11/japanese/ (4)
PATCHFILES=	xdvi-18.patch1.gz xdvi-18.patch2.gz
PATCH_DIST_STRIP=	-p1 (5)

MAINTAINER=	asami@FreeBSD.org (6)
COMMENT=	DVI Previewer for the X Window System
WWW=		http://xdvi.sourceforge.net/

LICENSE=	BSD2CLAUSE (7)
LICENSE_FILE=	${WRKSRC}/LICENSE

RUN_DEPENDS=	gs:print/ghostscript (8)

USES=		gmake (9)

(10)
IS_INTERACTIVE=	yes (11)
WRKSRC=		${WRKDIR}/xdvi-new (12)
GNU_CONFIGURE=	yes (13)

(14)
OPTIONS_DEFINE=	DOCS EXAMPLES FOO
OPTIONS_DEFAULT=FOO
OPTIONS_SUB=	yes (15)

FOO_DESC=		Enable foo support
FOO_CONFIGURE_ENABLE=	foo

(16)
MY_FAVORITE_RESPONSE=	"yeah, right"

(17)
pre-fetch:
	i go fetch something, yeah

post-patch:
	мне кое-что сделать после применения патча, великолепно

pre-install:
	и потом еще кое-что перед установкой, ого

.include <bsd.port.mk> (18)
1Секция для описания самого порта и его главного сайта: первыми идут переменные PORTNAME и PORTVERSION или DISTVERSION*, на ними CATEGORIES, затем MASTER_SITES, после которой идет MASTER_SITE_SUBDIR. Если нужно, то после нее идут PKGNAMEPREFIX и PKGNAMESUFFIX. Затем следуют DISTNAME, EXTRACT_SUFX и/или DISTFILES, и уже потом, если нужно, EXTRACT_ONLY.
2Не забывайте про завершающую косую черту (/), если вы не используете макросы MASTER_SITE_*.
3Задайте это, если исходный код поставляется не в виде стандартного файла ".tar.gz".
4Секция патчей — может быть пустой.
5Если распространяемые патчи не были созданы относительно ${WRKSRC},возможно, это потребуется исправить вручную.
6Сопровождающий; обязательное поле! Это человек, который добровольно занимается обновлениями порта и неисправностями при построении, и которому пользователь может направлять вопросы и сообщения об ошибках. Для сохранения как можно более высокого качества Коллекции Портов мы больше не принимаем новые порты, назначенные на "ports@FreeBSD.org".
7Лицензия — не следует оставлять пустым.
8Зависимости — могут быть пустыми.
9Если порт требует GNU make вместо стандартного FreeBSD make (make(1)) для сборки. Например, некоторым приложениям X требуется выполнение xmkmf -a, в этом случае порту понадобится USES=imake.
10Этот раздел посвящён другим стандартным переменным bsd.port.mk, которые не относятся ни к одной из вышеперечисленных категорий.
11Если порты задают интерактивные вопросы во время настройки, сборки, установки.
12Если извлечение происходит в каталог, отличный от DISTNAME.
13Если требуется запустить скрипт configure, сгенерированный GNU autoconf.
14Этот раздел предназначен для настройки параметров портов.
15Установите OPTIONS_SUB, если параметры изменят список файлов в plist.
16В правилах ниже используются нестандартные переменные.
17Специальные правила, в порядке их вызова фреймворком портов.
18Наконец, эпилог.

Изменено: 18 сентября 2025 г. by Vladlen Popolitov