使用使内置shell函数变量在一个Makefile [英] Use make variable in builtin shell function in a Makefile

查看:313
本文介绍了使用使内置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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆