你不能在.include<bsd.port.mk>之后添加任何内容,如果你一定要作,可以在Makefile的中间包含bsd.port.pre.mk,然后写一些东西,最后在Makefile的结尾包含bsd.port.post.mk.
注意: 或者在你的Makefile中使用bsd.port.mk或者使用bsd.port.pre.mk和bsd.port.post.mk这一对,两者不能同时出现在Makefile中.
bsd.port.pre.mk只是定义了很少的变量,可以用于测试.bsd.port.post.mk定义了剩余的一些.
这里是bsd.port.pre.mk中定义的一些变量(并不是全部,请参看实际文件)
变量 | 描述 |
---|---|
ARCH | uname -m返回的硬件架构,如i386 |
OPSYS | uname -s返回的操作系统类型,如FreeBSD. |
OSREL | 操作系统的版本发布号 如2.2.7 |
OSVERSION | BSD的版本(类似于内核版本) 参看__FreeBSD_version. |
PORTOBJFORMAT | 系统的对象类型(aout或elf) |
LOCALBASE | local目录的目录树根,一般为/usr/local |
X11BASE | X11目录的目录树根,一般为/usr/X11R6 |
PREFIX | port安装在那里 (参看more on PREFIX). |
这里是一些你可以在包含bsd.port.pre.mk之后填写的例子:
# no need to compile lang/perl5 if perl5 is already in system .if ${OSVERSION} > 300003 BROKEN= perl is in system .endif # only one shlib version number for ELF .if ${PORTOBJFORMAT} == "elf" TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR} .else TCL_LIB_FILE= ${TCL_LIB}.${SHLIB_MAJOR}.${SHLIB_MINOR} .endif # software already makes link for ELF, but not for a.out post-install: .if ${PORTOBJFORMAT} == "aout" ${LN} -sf liblinpack.so.1.0 ${PREFIX}/lib/liblinpack.so .endif
上一页 | 首页 | 下一页 |
区分操作系统和版本 | 向上 | 安装额外的文档 |