条件测试中的自动变量:GNU Make
我有点被困在这里了。 我们有两个 makefile(我无法更改的要求)
- defs.mk:它包含源文件名和文件名。 它们额外的编译标志(除了标准标志)例如:
C_FILES = c/src/main/rule_main.c rule_main_OPTIONAL_FLAG = +w127 rule_main_DEBUG = TRUE
Makefile
:它包含所有规则。
现在我想添加一个工具,以便我可以定义文件特定标志(以及可选的文件特定调试标志) 如:
CUSTOM_DEBUG_FLAG = $($(basename $(notdir $@))_DEBUG) ## rule_main_DEBUG macro from defs.mk
ifeq ($(CUSTOM_DEBUG_FLAG),TRUE)
do something
endif
但这不起作用,因为条件中不支持自动变量的扩展。 还有其他方法吗?
I am kind of stuck here. We have two makefiles (A requirement that I can't change)
- defs.mk: It contains the source file names & their extra compile flags (apart from the standard flags) e.g.:
C_FILES = c/src/main/rule_main.c rule_main_OPTIONAL_FLAG = +w127 rule_main_DEBUG = TRUE
Makefile
: It contains all the rules.
Now I want to add a facility so that I can define file specific flags (and optional file specific debug flag)
as in:
CUSTOM_DEBUG_FLAG = $($(basename $(notdir $@))_DEBUG) ## rule_main_DEBUG macro from defs.mk
ifeq ($(CUSTOM_DEBUG_FLAG),TRUE)
do something
endif
But this is not working since expansion of automatic variables is not supported within conditionals. Is there any other way to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我通常利用 条件函数:
或者使用 < a href="http://www.gnu.org/software/make/manual/make.html#Call-Function" rel="noreferrer">调用函数 定义我自己的函数:
I usually take advantage of conditional functions:
Or use call function to define my own function: