多个makefile同样的变量名

时间:2013-09-02 23:39:52

标签: makefile

我试图写一个非递归的make构建系统 我想要完成的是每个makefile都会定义自己的变量并“感觉”就像他是系统中唯一的变量一样。
例如:
项目布局:
-Makefile
-src1
---- Makefile文件
---- example1.c
-src2
---- Makfile
---- example2.c

主Makefile如下所示:
包括src1 / Makefile
包括src2 / Makefile
全部:$(TARGETS)

每个src1 / src2 makefile如下所示:
SRC:= ...
OBJ:= ...
TARGETS + = bin1#在src2中它的bin2
bin1:$(OBJ)
---- gcc ....
$(OBJ_DIR)/%。o:$(SRC_DIR)/%。c
---- gcc ....

但是这种设计模式不起作用,因为目标中的配方评估被推迟 这意味着src1中具有相同名称的所有变量都获得src2变量的值(最后一个赋值)。我试图用$(eval包括......)替换include但没有运气 请注意,所有变量分配都是通过以下方式完成的:= 有没有办法实现每个makefile可以定义他想要的或每个变量应该是唯一的?

感谢, TAL

1 个答案:

答案 0 :(得分:0)

很难做到这一点。当我在一两个地方完成这项工作后,我开始在每个目录中使用make片段,这些片段可以包含在主制作文件中,最后使用脚本方法扫描制作片段并生成其他内容。我也有一个VPATH。

有一个例子说明如何在'递归制作被认为有害'的论文中实现这一点可能会有所帮助。