如何创建可以将目标扩展为依赖项的 make 模式规则?
我正在尝试创建一个具有如下规则的 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
如何创建规则来扩展第二个 %
?
I'm trying to create a makefile that has rule something like:
~/$ cat > Makefile << EOF
FILES=a b c
$(FILES): % : src/%/%
@echo "$@ lt;"
EOF
Running the command gives:
~/$ make a
make: *** No rule to make target `src/a/%', needed by `a'. Stop.
And what I'd like to see is:
~/$ make a
a src/a/a
How do a create rule to expand the second %
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这种情况下,
二次扩展
可能有帮助。
例如:
如果您的 GNU make 版本为 3.80 或更低,
$*
可能无法工作。在这种情况下,可能需要
$@
和一些文本操作。In this case,
secondary expansion
might help.
For example:
If your GNU make's version is 3.80 or lower,
$*
might not work.In that case,
$@
and some text manipulation might be needed instead.