我有以下makefile:
SHELL:/bin/bash
all: euro.n.{a,b}
euro.{a,b}:
touch euro.{a,b}
euro.n.{a,b}: euro.{a,b}
cat euro.a > euro.n.a
cat euro.b > euro.n.b
现在,如果我两次运行make
,则生成文件不会在第二次运行中识别出文件euro.n.a和euro.n.b已经创建(并且将再次执行)。
怎么了?
怎么了?
{a,b}
是GNU make无法识别的语法。
[SHELL := /bin/bash
(在那里您错过了=
)仅影响食谱的语法。
一种替代解决方案:
SHELL := /bin/bash
all: $(addprefix euro.n.,a b)
euro.%:
touch $@
euro.n.% : euro.%
cp $< $@