你不能在.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
| 上一页 | 首页 | 下一页 |
| 区分操作系统和版本 | 向上 | 安装额外的文档 |