说我有这个: -
files := a.txt b.txt c.txt
$(files):
ifeq ($@, a.txt)
#do this
else
#do that
endif
这似乎不起作用。 对此有什么解决方法吗?
答案 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
扩展。如果在两组命令之间共享共同的操作(“执行此操作”和“执行此操作”),则可以将常用操作编码为宏。