表 6-17. 用到 Apache 的 port 可以使用的变量
USE_APACHE | 此 port 需要 Apache。 可用的值: yes (任意可用版本)、 1.3、 2.0、 2.2、 2.0+、 等等。 默认依赖的版本是 1.3。 |
WITH_APACHE2 | 此 port 需要 Apache 2.0。 如果没有这个变量, 则 port 将依赖 Apache 1.3。 这一变量目前已经过时, 因而不应继续使用。 |
APXS | 到 apxs 可执行文件的完整路径。 您可以在 port 中替代该值。 |
HTTPD | 到 httpd 可执行文件的完整路径。 您可以在 port 中替代该值。 |
APACHE_VERSION | 目前系统中安装的 Apache 版本 (只读变量)。 这一变量只有在引用了 bsd.port.pre.mk 之后才能使用, 其可能的值为: 13、 20、 22。 |
APACHEMODDIR | Apache 模块所在的文件夹。 在 pkg-plist 中, 这一变量会自动展开。 |
APACHEINCLUDEDIR | Apache 头文件所在的文件夹。 在 pkg-plist 中, 这一变量会自动展开。 |
APACHEETCDIR | Apache 配置文件所在的文件夹。 在 pkg-plist 中, 这一变量会自动展开。 |
表 6-18. 在移植 Apache 模块时比较有用的变量
MODULENAME | 模块的名称。 默认值为 PORTNAME。 例如: mod_hello |
SHORTMODNAME | 模块的简略名字。 默认情况下会自动根据 MODULENAME 计算, 但您也可以自行设置值来替代它。 例如: hello |
AP_FAST_BUILD | 使用 apxs 来编译和安装模块。 |
AP_GENPLIST | 同时自动创建 pkg-plist。 |
AP_INC | 在编译过程中, 将指定的目录加入到搜索头文件的目录中。 |
AP_LIB | 在编译过程中, 将指定的目录加入到搜索函数库的目录中。 |
AP_EXTRAS | 传递给 apxs 的额外参数。 |
Web 应用程序应安装到 PREFIX/www/应用程序的名字。 为方便起见, 这个路径在 Makefile 和 pkg-plist 均以 WWWDIR 变量的形式提供。 在 Makefile 中可以使用 WWWDIR_REL 来表示包含了 PREFIX 的该变量值。
web 服务器进程所用的用户和用户组, 分别以 WWWOWN 和 WWWGRP 变量的形式提供, 如果您需要修改某些文件的属主的话。 这两个变量的默认值均为 www。 如果您的 port 希望使用其他值, 请使用 WWWOWN?= myuser 这种写法, 以便让用户能够更容易地修改它。
除非您的 port 必需使用 Apache, 否则不要将其写入依赖关系。 请尊重运行您的应用程序的用户选择 Apache 以外的其他 web 服务器的需求。
表 6-19. 用到 PHP 的 port 中可以使用的变量
USE_PHP | 此 port 需要 PHP。 取值为 yes 将把 PHP 加入依赖关系。 此外, 还可以在此指定将所需要的 PHP 扩展模块。 例如: pcre xml gettext |
DEFAULT_PHP_VER | 选择在没有安装 PHP 时自动安装的 PHP 主版本。 默认是 4。 可选 4、 5 之一。 |
IGNORE_WITH_PHP | 此 port 无法与给定版本的 PHP 一同工作。 可选值为 4、 5 之一。 |
USE_PHPIZE | 此 port 将作为 PHP 扩展模块进行联编。 |
USE_PHPEXT | 此 port 将作为 PHP 扩展, 且需要作为扩展模块注册。 |
USE_PHP_BUILD | 联编依赖于 PHP。 |
WANT_PHP_CLI | 希望使用 CLI (命令行) 版本的 PHP。 |
WANT_PHP_CGI | 希望使用 CGI 版本的 PHP。 |
WANT_PHP_MOD | 希望使用 Apache 模块版本的 PHP。 |
WANT_PHP_SCR | 希望使用 CLI 或 CGI 版本的 PHP。 |
WANT_PHP_WEB | 希望使用 Apache 模块或 CGI 版本的 PHP。 |
移植 PEAR 模块的过程非常简单。
使用 FILES、 TESTS、 DATA、 SQLS、 SCRIPTFILES、 DOCS 以及 EXAMPLES 这些变量来指明您希望安装的文件。 所有这里列出的文件都会自动安装到合适的位置, 并加入 pkg-plist。
在 Makefile 文件的最后一行引入 ${PORTSDIR}/devel/pear/bsd.pear.mk。
例 6-5. 用于 PEAR 类的 Makefile 例子
PORTNAME= Date PORTVERSION= 1.4.3 CATEGORIES= devel www pear MAINTAINER= [email protected] COMMENT= PEAR Date and Time Zone Classes BUILD_DEPENDS= ${PEARDIR}/PEAR.php:${PORTSDIR}/devel/pear-PEAR RUN_DEPENDS= ${BUILD_DEPENDS} FILES= Date.php Date/Calc.php Date/Human.php Date/Span.php \ Date/TimeZone.php TESTS= test_calc.php test_date_methods_span.php testunit.php \ testunit_date.php testunit_date_span.php wknotest.txt \ bug674.php bug727_1.php bug727_2.php bug727_3.php \ bug727_4.php bug967.php weeksinmonth_4_monday.txt \ weeksinmonth_4_sunday.txt weeksinmonth_rdm_monday.txt \ weeksinmonth_rdm_sunday.txt DOCS= TODO _DOCSDIR= . .include <bsd.port.pre.mk> .include "${PORTSDIR}/devel/pear/bsd.pear.mk" .include <bsd.port.post.mk>