使用使内置shell函数变量在一个Makefile [英] Use make variable in builtin shell function in a Makefile
本文介绍了使用使内置shell函数变量在一个Makefile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个make文件
all : CONFIG=config.ini
debug : CONFIG=config-debug.ini
CONFIG_FILES := $(shell python parse_config.py -i $(CONFIG))
all: $(CONFIG) $(CONFIG_FILES)
echo $(CONFIG) $(CONFIG_FILES)
当我运行让所有
这表明一些Python错误说 -i
选项参数丢失。如此看来 $(CONFIG)
到壳
功能。
When I run make all
it shows some python error saying -i
option param is missing. So it seems $(CONFIG)
is not going through shell
function.
如何让所有
调用蟒蛇parse_config.py -i的config.ini
?
同样的方式使调试
调用蟒蛇parse_config.py -i配置-debug.ini
?
更新
运行后让所有SHELL + = - X
我得到以下输出
+ python parse_config.py -p static -i
usage: parse_config.py [-h] -i INPUT_JSB3 [-p PREFIX]
parse_config.py: error: argument -i: expected one argument
但在那之后,我得到
But after that I get
+ python parse_config.py -p static -i static/config.ini
和做似乎继续工作。
推荐答案
这可以使用的 MAKECMDGOALS
变量。
This can be done using MAKECMDGOALS
variable.
ifeq ($(findstring debug,$(MAKECMDGOALS)),debug)
CONFIG=config-debug.ini
else
CONFIG=config.ini
endif
CONFIG_FILES := $(shell python parse_config.py -i $(CONFIG))
all: $(CONFIG) $(CONFIG_FILES)
echo $(CONFIG) $(CONFIG_FILES)
这篇关于使用使内置shell函数变量在一个Makefile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文