FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD Port 开发者手册翻译项目
  • 编辑日志
  • 译者说明
  • FreeBSD Port 开发者手册
    • FreeBSD Port 开发者手册
  • 第1章 简介
    • 1.1.简介
  • 第2章 制作新的 port
    • 2.1.制作新的 port
  • 第3章 简单的 port
    • 3.1.编写 Makefile
    • 3.2.编写描述文件
    • 3.3.创建校验和文件
    • 3.4.测试 port
    • 3.5.用 portlint 来检查 port
    • 3.6.提交新的 port
  • 第4章 复杂的 Port
    • 4.1 Port 工作原理
    • 4.2.获取源代码
    • 4.3.修改 port
    • 4.4.打补丁
    • 4.5.配置
    • 4.6.处理用户输入
  • 第5章 配置 Makefile
    • 5.1.原始来源
    • 5.2.命名
    • 5.3.归类
    • 5.4.源代码包文件
    • 5.5.维护者(MAINTAINER)
    • 5.6.一句话说明(COMMENT)
    • 5.7.项目网站
    • 5.8.许可证
    • 5.9.PORTSCOUT
    • 5.10.依赖
    • 5.11.从属 port 和 MASTERDIR
    • 5.12.man 手册
    • 5.13.info 文件
    • 5.14.Makefile 参数
    • 5.15.特殊的工作目录
    • 5.16.解决冲突
    • 5.17.安装文件
    • 5.18. 使用 BINARY_ALIAS 来重命名命令,而不是在编译中打补丁
  • 第6章 特殊情况
    • 第6章 特殊情况
  • 第7章 Flavors
    • 7.1.Flavors 简介
    • 7.2.使用 FLAVORS
    • 7.3.USES=php 和 Flavors
    • 7.4.USES=python 和 Flavors
    • 7.5.USES=lua 和 Flavors
  • 第8章 高级 pkg-plist 实践
    • 8.1.根据 make 变量对 pkg-plist 进行修改
    • 8.2.空目录
    • 8.3.配置文件
    • 8.4.动态与静态软件包列表
    • 8.5.自动创建软件包列表
    • 8.6.用关键词扩展软件包列表
  • 第9章 pkg-*
    • 9.1.pkg-message(安装二进制包时显示的消息文件)
    • 9.2.pkg-install、pkg-pre-install 和 pkg-post-install(安装二进制包时执行的脚本文件)
    • 9.3.pkg-deinstall、pkg-pre-deinstall 和 pkg-post-deinstall(卸载时执行的脚本文件)
    • 9.4.修改 pkg-* 文件的名字
    • 9.5.使用 SUB_FILES 和 SUB_LIST
  • 第10章 测试 port
    • 10.1.运行 make describe
    • 10.2.运行 make test
    • 10.3.Portclippy / Portfmt
    • 10.4.Portlint
    • 10.5.Port 工具
    • 10.6.PREFIX 和 DESTDIR
    • 10.7.Poudriere
    • 10.8.调试 port
  • 第11章 升级 port
    • 11.1.使用 Git 制作补丁
    • 11.2.UPDATING 和 MOVED
  • 第12章 安全
    • 12.1.安全为何如此重要
    • 12.2.修复安全漏洞
    • 12.3.向社区通报情况
  • 第13章 该做什么和不该做什么
    • 第13章 该做什么和不该做什么
  • 第14章 一个简单的 port
    • 第14章 一个简单的 port
  • 第15章 在 Port Makefile 中变量的顺序
    • 第15章 在 Port Makefile 中变量的顺序
  • 第16章 保持更新
    • 第16章 保持更新
  • 第17章 使用 USES 宏
    • 第17章 使用 USES 宏
  • 第18章 __FreeBSD_version 的值
    • 第18章 __FreeBSD_version 的值
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 第14章 一个简单的 port

第14章 一个简单的 port

上一页第13章 该做什么和不该做什么下一页第15章 在 Port Makefile 中变量的顺序

最后更新于2天前

这里是一个可以用来创建新 Port 的 Makefile 示例。确保删除所有多余的注释(即括号中的注释)。

所示的格式是推荐的变量排序方式,部分之间的空行等。这种格式设计的目的是使最重要的信息容易找到。我们推荐使用 来检查 Makefile。

[描述 Port 本身和主站的部分 - 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_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

[维护者;*必须的*!这是自愿处理 Port 更新、构建中断和用户提出问题与错误报告的人。为了保持 Ports Collection 的质量,我们不接受新 Port 被分配给 "ports@FreeBSD.org"。]
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=		启用 foo 支持

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>
portlint