可能你的port依赖其他的port.这里有5个环境变量可以用来定义.
这个变量定义依赖的共享库.格式为lib:dir[:target],其中lib是共享库的名字,dir定义如果系统没有安装应该到哪里寻找.target定义了那个目录的行为.
LIB_DEPENDS= jpeg.9:${PORTSDIR}/graphics/jpeg:install
将检查jpeg主版本为9的共享库,如果系统中没有安装就到graphics/jpeg下编译并安装,如果target=DEPENDS_TARGET(缺省为install)target可以省略掉
注意: lib 部分是传给ldconfig -r|grep -wF的参数.不要包含任何正则表达式.
依赖性要检查两次,在extract时和install时.并且在打包时依赖信息会打进包里.
这个变量指定port在运行是依赖的文件(普通文件或可执行文件).以path:dir[:target]给出.path是可执行文件名,dir是当系统没有安装时的寻找目录,target是那个目录的行为.如果路径以"/"开头,那么会被认为是普通文件,使用test -e检查是否存在.否则,被认为是可执行文件,使用-s检查是否处于用户的系统路径.
举个例子:
RUN_DEPENDS= ${PREFIX}/etc/innd:${PORTSDIR}/news/inn \ wish8.0:${PORTSDIR}/x11-toolkits/tk80
将检查/usr/local/etc/innd是否存在(文件或目录),如果系统中不存在,会到news/inn子目录编译并安装.同样要检查可执行文件wish8.0是否在用户路径存在,如果不存在.到x11-toolkits/tk80目录编译并安装.
注意: 这里的innd实际是可执行的,如果在普通用户的路径不存在,则要使用完整路径.
这个依赖在install时检查.同样当target=DEPENDS_TARGET时,target可省略.并且在打包时依赖信息会打进包里.
这个变量定义在BUILD时的依赖文件或可执行文件.跟RUN_DEPENDS一样的格式.举个例子:
BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
注意: 这里的"build"指从解压到编译.
如果你的port的依赖关系不属于上面列出的4类,或者你的port只需要解开其他的port源码而不需安装.可以定义这个变量.格式为dir:[:target],没有检查的过程.同样如果target=DEPENDS_TARGET可省略.
如果你的port依赖于X window定义USE_XLIB=yes(暗指USE_IMAKE).如果你的port依赖gmake而不是系统make,定义USE_GMAKE=yes.如果你的port需要使用autoconf,定义USE_AUTOCONF=yes.如果你的port依赖QT,可以定义USE_QT=yes.同样如果你的port依赖perl 5,应该定义USE_PERL5=yes(这是很重要的,因为有些版本的FreeBSD的基本系统安装了perl5,而有些没有)
上面提到的target可以省略,是因为target=DEPENDS_TARGET(install),这是一个用户变量,没有在Makefile中定义,如果你需要一个特殊的target,不要重新定义DEPENDS_TARGET,而是在*_DEPENDS中详细指明target.
当你make clean时,所有的依赖关系也会被自动清除.如果你不想这样,定义NOCLEANDEPENDS环境变量.
无条件的依赖其他的port,请在BUILD_DEPENDS或RUN_DEPENDS的第一格定义${NONEXISTENT},只有你在使用其它port的source时定义他.使用这个变量也可以节省编译时间.举个例子:
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract将转到jpeg并解开.
万不得已,不要定义DEPENDS.因为他总是要编译依赖的port(缺省要安装),并且这个依赖关系要打进pkg包.
上一页 | 首页 | 下一页 |
MAINTAINER | 向上 | 可选的依赖关系 |