Makefile 要求生成文件打印变量值
我有一些生成的gnumake文件,需要从中提取变量的值 有没有一种不修改makefile就可以查看变量值的简单方法 仅供参考,变量包含emacs c-macro-expand函数所需的一些包含文件的路径。您可以执行以下操作: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
$ 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