4.8.4建立目录
您可以支持编译多种体系结构的软件包同时从源代码的同一副本。目标文件因为每个架构都保存在各自的目录中。
为了支持这样做,制作
使用VPATH公司
变量为查找源目录中的文件。GNU品牌可以做到这一点。最近的其他制作
程序可以这样做好吧,尽管他们可能有困难,而且通常更简单推荐GNU制作
(请参见VPATH公司
和品牌). 年龄较大的制作
程序不支持VPATH公司
; 使用它们时源代码必须与目标文件位于同一目录中。
如果您使用的是GNU Automake根据您的生成文件.am。但如果您单独使用Autoconf,则支持的VPATH公司
在您的制作文件.in:
srcdir=@srcdir@VPATH=@srcdir@
不设置VPATH公司
另一个变量的值(请参见中列出的变量VPATH公司
.
配置
用正确的值替换源目录
什么时候它产生生成文件.
不要使用制作
变量$<
,它扩展到源目录中文件的文件名(使用VPATH公司
),隐式规则除外。(隐式规则是“.c.o(抄送)’,它告诉如何创建.o型来自的文件.c类文件。)一些的版本制作
不设置$<
在显式规则中;他们将其展开为空值。
相反,Make命令行应始终引用源代码文件的前缀为“$(斯里兰卡卢比)/’. 这样更安全引用源目录名,以防它包含以下字符对贝壳来说是特殊的。因为“$(斯里兰卡卢比)'由Make展开,单次引用有效,并且比双次引用更安全。例如:
time.info:时间.texinfo$(MAKEINFO)“$(srcdir)/time.texinfo”