Makefile 要求生成文件打印变量值

Makefile 要求生成文件打印变量值,makefile,gnu-make,Makefile,Gnu Make,我有一些生成的gnumake文件,需要从中提取变量的值 有没有一种不修改makefile就可以查看变量值的简单方法 仅供参考,变量包含emacs c-macro-expand函数所需的一些包含文件的路径。您可以执行以下操作: $ make -n -p | grep VAR 挑选价值 旗为: -n # don't really make -p # print database 您可以创建一个包装器makefile,其中包括必要的GNUmakefiles并打印变量。例如,使用内容创建wrap

我有一些生成的gnumake文件,需要从中提取变量的值

有没有一种不修改makefile就可以查看变量值的简单方法

仅供参考,变量包含emacs c-macro-expand函数所需的一些包含文件的路径。

您可以执行以下操作:

$ make -n -p | grep VAR
挑选价值

旗为:

-n  # don't really make
-p  # print database

您可以创建一个包装器makefile,其中包括必要的GNUmakefiles并打印变量。例如,使用内容创建
wrapper.mk

include GNUmakefile

$(info $(value VAR_NAME))
然后使用
-n
标志调用Make(参见@jeberle's):


为什么不修改makefiles?我在一家MegaCorp工作,在那里很难修改任何东西。生成makefiles后,我必须修改生成makefiles的引擎,这似乎非常困难。我很同情你。MegaCorps和代码生成器都有相同的缺点:缺乏灵活性的继承权使更改变得困难。它不计算变量的值,所以它会打印如下内容:
INCFLAGS=$(MYINCFLAGS)-I.
您可以grep任何名称,例如,
grep MYINCFLAGS
。如果未设置
MYINCFLAGS
,它将计算为空字符串。
make -f wrapper.mk -n  # will print the variable value to stdout