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”