在 makefile 中为一组文件创建规则
我正在编写一个 Makefile,并且我想使用带有通配符的通用规则,例如
%: bkp/%
cp $< $@
但我希望此规则仅对一些特定文件有效。我想用列表定义一个变量,例如
file_list = foo.c bar.c zzz.c
并配置规则,使其仅对该变量中列出的文件有效。我该怎么做?
I am writing a Makefile, and I want to use a generic rule with wildcards, like
%: bkp/%
cp lt; $@
But I wanted this rule to be valid only for a few specific files. I wanted to define a variable with the list, for example
file_list = foo.c bar.c zzz.c
and configure the rule so it is only valid for files that are listed in this variable. How do I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你想要一个静态模式规则:
语法非常类似于您使用的隐式模式规则。是的,它通常更安全(更可预测)。
You want a static pattern rule:
The syntax is very similar to the implicit pattern rule you were using. And yes, it's generally safer (more predictable).
当然,5分钟后我自己找到了答案...:)
我们需要的是静态模式规则。
http://www.gnu.org/software/make/manual /make.html#Static-Pattern
所以这个例子可以用以下方法解决
Of course, 5 minutes later I found the answer myself... :)
What we need is a static pattern rule.
http://www.gnu.org/software/make/manual/make.html#Static-Pattern
So the example would be solved with