Вот примерный Makefile, который можно использовать при создании нового порта. Обязательно удалите все дополнительные комментарии (те, которые в скобках)!
Вам рекомендуется следовать этому формату (соблюдая порядок следования переменных, пустые строки между разделами, и так далее). Этот формат разработан для того, чтобы важная информация была легко найдена. Мы рекомендуем вам воспользоваться утилитой portlint для проверки файла Makefile.
[заголовок...просто чтобы нам было легче идентифицировать порт.] # New ports collection makefile for: xdvi [строчка "version required" необходима только тогда, когда переменная PORTVERSION недостаточно конкретна для описания порта.] # Date created: 26 May 1995 [Это человек, который сделал первоначальный порт для FreeBSD, в частности, тот, кто создал первую версию этого файла Makefile. Запомните, что позже при обновлении порта эта строка меняться не должна.] # Whom: Satoshi Asami <asami@FreeBSD.org> # # $FreeBSD$ [ ^^^^^^^^^ Эта строка будет автоматически заменена со строчкой RCS ID системой SVN при выполнении операции коммита в наше хранилище. При обновлении порта не приводите эту строку обратно к виду "$FreeBSD$". SVN сделает это автоматически.] # [секция описания собственно порта и основного сервера - сначала всегда PORTNAME и PORTVERSIONA, за ним следует CATEGORIES, а затем MASTER_SITES, за которым может идти MASTER_SITE_SUBDIR. PKGNAMEPREFIX и PKGNAMESUFFIX, если они нужны, следуют за ними. Затем следует DISTNAME, EXTRACT_SUFX и/или DISTFILES, а потом, если это нужно, EXTRACT_ONLY.] PORTNAME= xdvi PORTVERSION= 18.2.] CATEGORIES= print [не забывайте лидирующий слэш ("/")! если вы не используете макросы MASTER_SITE_*] MASTER_SITES= ${MASTER_SITE_XCONTRIB} MASTER_SITE_SUBDIR= applications PKGNAMEPREFIX= ja- DISTNAME= xdvi-pl18 [задайте это, если исходный код поставляется не в виде стандартного файла ".tar.gz"] EXTRACT_SUFX= .tar.Z [секция патчей -- может быть пустой] PATCH_SITES= ftp://ftp.sra.co.jp/pub/X11/japanese/ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz [сопровождающий; *обязательное поле*! Это человек, который добровольно занимается обновлениями порта и неисправностями при построении, и которому пользователь может направлять вопросы и сообщения об ошибках. Для сохранения как можно более высокого качества Коллекции Портов мы больше не принимаем новые порты, назначенные на "ports@FreeBSD.org".] MAINTAINER= asami@FreeBSD.org COMMENT= A DVI Previewer for the X Window System [зависимости -- могут быть пустыми] RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript LIB_DEPENDS= Xpm:${PORTSDIR}/graphics/xpm [этот раздел для остальных стандартных переменных из bsd.port.mk, кроме тех, что перечислены выше] [Если порт задает вопросы во время этапов настройки, построения, установки...] IS_INTERACTIVE= yes [Если распаковка происходит в каталог, отличных от ${DISTNAME}...] WRKSRC= ${WRKDIR}/xdvi-new [Если патчи делались не относительно ${WRKSRC}, вам, может быть, не придется изменять эту переменную] PATCH_DIST_STRIP= -p1 [Если порт требует скрипта "configure", генерируемого GNU-версией программы autoconf] GNU_CONFIGURE= yes [Если для построения порту требуется GNU-версия утилиты make, а не /usr/bin/make...] USE_GMAKE= yes [Если это приложение X и требует запуска "xmkmf -a"...] USE_IMAKE= yes [и так далее] [В правилах ниже используются нестандартные переменные] MY_FAVORITE_RESPONSE= "yeah, right" [теперь специальные правила, в порядке их вызова] pre-fetch: я что-то выкачиваю, точно post-patch: мне кое-что сделать после применения патча, великолепно pre-install: и потом еще кое-что перед установкой, ого [и, наконец, эпилог] .include <bsd.port.mk>