我正在尝试创建一个具有以下规则的makefile:
~/$ cat > Makefile << EOF
FILES=a b c
$(FILES): % : src/%/%
@echo "$@ $<"
EOF
运行命令会给出:
~/$ make a
make: *** No rule to make target `src/a/%', needed by `a'. Stop.
我希望看到的是:
~/$ make a
a src/a/a
创建规则如何扩展第二个%
?
答案 0 :(得分:1)
在这种情况下,
secondary expansion
可能有所帮助。
例如:
FILES=a b c
.SECONDEXPANSION:
$(FILES): % : src/$$*/$$*
@echo "$@ $<"
如果你的GNU make版本是3.80或更低,$*
可能无效。
在这种情况下,可能需要$@
和一些文本操作。