如何解决如何让 % 通配符使规则变得虚假?
我有以下通配符“编程”生成规则,可将二进制文件上传到设备。这显然不会产生一个真实的文件,所以应该被标记为虚假的。但是,您如何将 %% 通配符规则标记为虚假?
%-tangnano-prog: %-tangnano.fs
openFPGALoader -b tangnano $^
.PHONY: %-tangnano-prog clean all
无论你在那里放什么,虚假规则都不会给出任何错误,所以很难判断它是否有效。但我相信它没有:
$ touch blinky-tangnano-prog
$ make blinky-tangnano-prog
make: 'blinky-tangnano-prog' is up to date.
解决方法
基本上有两种可能:
-
您事先知道可以遇到哪些
%-tangnano-prog
目标。只需将它们的所有前缀分配给 make 变量,使用 make 函数计算完整的目标名称并将它们声明为 phony:P := blinky foo bar T := $(addsuffix -tangnano-prog,$(P)) .PHONY: tangnano-prog $(T) tangnano-prog: $(T) %-tangnano-prog: %-tangnano.fs openFPGALoader -b tangnano $^
-
您事先不知道会遇到哪些目标。使用相同的 Makefile 但传递目标前缀列表以在命令行上构建:
$ make tangnano-prog P="blinky foo bar"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。