У меня есть этот грим файлИспользование сделать переменное в встроено функции оболочки в Makefile
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)
Когда я бег make all
он показывает некоторые ошибки питона говоря -i
вариант паров отсутствуют. Так кажется $(CONFIG)
не проходит shell
функция.
Как можно использовать make all
invoke python parse_config.py -i 'config.ini'
?
так же make debug
invoke python parse_config.py -i 'config-debug.ini'
?
Update:
После запуска make all 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
Но после того, что я получаю
+ python parse_config.py -p static -i static/config.ini
И сделать, кажется, продолжает работать.
любой пример о 'рекурсивной переменной'? –
Нормальное '=' назначение - это 'рекурсивно расширенная переменная' в терминах make по сравнению с' просто расширенной переменной', которая присваивается ': ='. –
Ну, использование '=' только не меняет поведения. –