我有一个Makefile,在命令行上设置了大量可能的变量。我希望能够在我的makefile中有一个使用参数的目标,然后使用各种选项从Make中调用它:
GUI ?= 0
DEBUG ?= 0
VERBOSE ?= 0
run_prog:
$(MYPROG) $(GUI) $(DEBUG) $(VERBOSE)
run_prog_gui:
$(MAKE) run_prog GUI=1
run_prog_debug:
$(MAKE) run_prog DEBUG=1

问题在于我无法判断用户是否覆盖了其中一个变量:
% make run_prog_debug VERBOSE=1
我希望能够将传递给我的所有变量传递给run_prog
中的run_prog_gui
目标。
make
中是否有变量为您提供了命令行中设置的所有变量的字符串?
答案 0 :(得分:1)
事实证明这是自动发生的。在设置了变量的shell中进行递归调用。
https://www.gnu.org/software/make/manual/make.html#Recursion