5.15.特殊的工作目录

每个 Port 都会被提取到一个工作目录中,该目录必须是可写的。Ports 系统默认将 DISTFILES 解压到一个名为 ${DISTNAME} 的目录中。换句话说,如果 Makefile 中有:

PORTNAME=	foo
DISTVERSION=	1.0

那么该 Port 的分发文件会包含一个顶级目录 foo-1.0,其余的文件都位于该目录下。

如果不是这种情况,可以覆盖一些变量。

5.15.1. WRKSRC

该变量列出了提取时创建的目录名。如果我们之前的例子中,文件解压到了一个名为 foo 的目录(而不是 foo-1.0),那么可以写:

WRKSRC=	${WRKDIR}/foo

或者可能是:

WRKSRC=	${WRKDIR}/${PORTNAME}

5.15.2. WRKSRC_SUBDIR

如果所需的源文件位于提取的分发文件的子目录中,请将 WRKSRC_SUBDIR 设置为该目录。

WRKSRC_SUBDIR=	src

5.15.3. NO_WRKSUBDIR

如果 Port 完全没有提取到子目录中,则将 NO_WRKSUBDIR 设置为 yes 来指示这一点。

NO_WRKSUBDIR=	yes

注意

由于 WRKDIR 是构建过程中唯一应当可写的目录,并且用于存储记录构建状态的许多文件,因此 Port 的提取将被强制进入一个子目录。

最后更新于