使用Makefile中的必备条件列表中的目标目录路径

问题描述:

我编写了一个脚本,它接收以.cfg结尾的两个文件并输出以.cmp结尾的文件。我想将它包含在我的Makefile中,因为几个源代码文件依赖于这个.cmp文件。使用Makefile中的必备条件列表中的目标目录路径

在我的Makefile中,我想这样做:

%.cmp: %.cfg $(dir %)/default.cfg 
    ./compare.pl $^ [email protected] 

有两个依赖产生.cmp文件。首先是一个具有相同名称的.cfg文件,其次是一个.cfg文件,它是总是命名为default。 .cfg文件和输出.cmp文件将位于同一目录中。

是否有办法抓取目标的目录路径并将其与prereqs一起使用?

我猜Secondary Expansion可能是你在找什么:

.SECONDEXPANSION: 
%.cmp: %.cfg $$(dir %)default.cfg 
    ./compare.pl $^ [email protected] 

还要注意$$(dir %)后没有斜杠,dir功能始终添加一个到所得到的值。

+0

忘记二次展开,谢谢! – Ryan 2012-02-28 19:59:02

+0

@瑞恩,不客气! – 2012-02-28 20:32:37