如何将字符串与makefile的目标名称进行比较

时间:2013-10-26 15:20:45

标签: makefile gnu-make

说我有这个: -

files := a.txt b.txt c.txt
$(files):
    ifeq ($@, a.txt)
        #do this
    else
        #do that
    endif

这似乎不起作用。 对此有什么解决方法吗?

1 个答案:

答案 0 :(得分:1)

处理它的正统方法是:

files_a = a.txt
files_bc = b.txt c.txt

files = $(files_a) $(files_bc)

all: $(files)

$(files_a):
    do this

$(files_bc):
    do that

如果不同的文件需要不同的规则,请单独对它们进行分组。这样做的另一个好处是它不依赖于GNU make扩展。如果在两组命令之间共享共同的操作(“执行此操作”和“执行此操作”),则可以将常用操作编码为宏。