
[英]Makefile wildcard for makefile variables, to define generic rules
[英]Makefile, conditional and wildcard with variables
我的 makefile 有问题。 我想要一个“主”目标,它可以自动处理各种目录并将它们复制到特定位置。 但不知何故,带有通配符的 ifneq 条件无法正常工作,无论条件是否满足,我总是得到相同的结果。
我正在尝试:
# Basically the same thing for all targets
% :
ifeq ($(wildcard $(TOP)/flow/$@),)
$(error Directory $(TOP)/flow/$@ not found. Aborting. Debug: $(wildcard $(TOP)/flow/$@))
else
$(error Directory $(TOP)/flow/$@ found!. Debug: $(wildcard $(TOP)/flow/$@))
endif
例如,在 $(TOP)/flow 中存在一个目录core但不存在pwr 。 Make 目标继续进行,就好像它们都存在一样。
➜ work ✗ make core
Makefile:20: *** Directory TOPFOLDER/flow/core found!. Debug: TOPFOLDER/flow/core. Stop.
➜ work ✗ make pwr
Makefile:20: *** Directory TOPFOLDER/flow/pwr found!. Debug: . Stop.
为什么会这样? 看不到我在这里做错了什么。
感谢您的帮助!
在评估ifeq
时变量$@
为空。
可能改用运行时检查:
% :
test -d $(TOP)/flow/$@/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.