第14章 Makefile 示例

这里是一个 Makefile 的样本, 可以用来创建一个新的 port。请确保删除所有额外的注释 (括号中的注释)。

所示的格式是推荐的变量排序、章节之间的空行等的格式。这种格式的设计是为了使最重要的信息容易被找到。我们推荐使用 portlint 来检查 Makefile

[部分来描述 ports 本身和主站点 - PORTNAME
 和 PORTVERSION 或 DISTVERSION* 变量总是放在前面。
 后面是 CATEGORIES, 然后是 MASTER_SITES, 后面可以是
 MASTER_SITE_SUBDIR。 PKGNAMEPREFIX 和 PKGNAMESUFFIX, 如果需要的话。
 将在这之后。 然后是 DISTNAME、 EXTRACT_SUFX 和/或
 DISTFILES, 然后是 EXTRACT_ONLY, 根据需要。]
PORTNAME=	xdvi
DISTVERSION=	18.2
CATEGORIES=	print
[不要忘记尾部的斜线(“/”)!如果没有使用 MASTER_SITE_* 宏,则需要使用 "/"。
 如果不使用 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
[如果分发的补丁不是相对于 ${WRKSRC} 制作的。
 这可能需要调整一下]
PATCH_DIST_STRIP=	-p1

[维护者;*必须的*! 这个人是自愿的,他负责
 处理 ports 更新、构建故障的人,以及用户可以直接向其提出
 问题和错误报告。 为了保持 Ports 的质量
 尽可能的高,我们不接受那些被分配到
 “ports@FreeBSD.org” 的 Port。]
MAINTAINER=	asami@FreeBSD.org
COMMENT=	DVI Previewer for the X Window System
WWW=		http://xdvi.sourceforge.net/

[许可证 - 不应是空的]
LICENSE=	BSD2CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

[依赖性 -- 可以是空的]
RUN_DEPENDS=	gs:print/ghostscript

[如果它需要 GNU make,而不是 /usr/bin/make,来构建...]
USES= gmake
[如果它是一个 X 应用程序,需要“xmkmf -a”来运行...]
USES= imake

[这一节是为其他标准的 bsd.port.mk 变量准备的,这些变量不属于]
 属于上述任何一种情况]
[如果它在配置、构建、安装时问问题...]
IS_INTERACTIVE=	yes
[如果它解压到 ${DISTNAME}以外的目录...]
WRKSRC=		${WRKDIR}/xdvi-new
[如果它需要运行由 GNU autoconf 生成的“configure”脚本]
GNU_CONFIGURE=	yes
[诸如此类。]

[如果它需要选项,本节是为选项准备的]
OPTIONS_DEFINE=	DOCS EXAMPLES FOO
OPTIONS_DEFAULT=	FOO
[如果选项将改变plist中的文件]
OPTIONS_SUB=yes

FOO_DESC=		Enable foo support

FOO_CONFIGURE_ENABLE=	foo

[在以下规则中使用的非标准变量]
MY_FAVORITE_RESPONSE=	"yeah, right"

[然后是特殊的规则,按照它们被称为的顺序]
pre-fetch:
	i go fetch something, yeah

post-patch:
	i need to do something after patch, great

pre-install:
	and then some more stuff before installing, wow

[然后是尾声]

.include <bsd.port.mk>

最后更新于

FreeBSD 中文社区