Fre*_*ddy 2 xml perl makefile environment-variables
我正在创建一个Makefile,我希望它成为不同体系结构,操作系统,库等的单个文件.为此,我有一个特定于构建的XML文件,它定义了每个体系结构的不同配置选项.配置文件由Perl读取(可以是任何语言),Perl输出返回如下内容:
var1 := var1_value
var2 := var2_value
var3 := var3_value
Run Code Online (Sandbox Code Playgroud)
我想要做的是在我的Makefile中定义这个变量.从makefile我调用我的readconfig脚本,它提供了正确的输出,但我无法将这些变量作为我的Makefile的一部分.我曾尝试使用eval和value,但他们都没有工作(虽然它可能是我不知道如何使用它们的问题在总体什么,我试图做的是一样的东西:
read_config:
$(eval (perl '-require "readConfig.pl"'))
@echo $(var1)
Run Code Online (Sandbox Code Playgroud)
可以假设我只使用GNU Make行为.我无法改变的事情:
我认为您要寻找的指令是"包含":
include config.mk
...rest of makefile...
Run Code Online (Sandbox Code Playgroud)
您的脚本生成该config.mk文件; makefile读取它.如果你需要makefile运行生成器,它会变得更复杂:
MAKEFILE_INCLUDE = dummy.mk
include ${MAKEFILE_INCLUDE}
all: normal dependencies for target
config: config.mk
perl make-config.pl > config.mk
${MAKE} MAKEFILE_INCLUDE=config.mk
Run Code Online (Sandbox Code Playgroud)
你make config先运行(只有一个空的或几乎是空的dummy.mk文件).然后它将运行make.如果你不试试这个更简单; 其他目标比all变得棘手等等.有方法,但它们越来越扭曲.