3

我从其他 Makefile 调用 autogen.sh 脚本,并且从 shell 脚本调用这个 Makefile,如果我在这个更外部的脚本上设置一个变量 VAR,我可以在这个 Makefile 中正常使用它,真的 VAR 存在并被定义,但是当这个 Makefile 运行 autogen.sh 时,我不能在 configure.in 文件中使用变量 VAR,获得这个(或任何其他变量)的唯一方法是在更多外部 shell 中使用 export 命令。

编译:pushd $(DIRNAME); \如果测试!-e 生成文件;然后 \ 回声 $PKG_CONFIG_PATH; \ ./autogen.sh $(CONFIGURE_OPTIONS); \fi; \ 制作; \弹出

这是最好的方法吗?

提前致谢

4

2 回答 2

4

您可以遵循 Idelic 的建议,将变量autogen.sh作为命令的一部分显式传递:

PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" ./autogen.sh $(CONFIGURE_OPTIONS)

或者,如果您有多个从中调用的脚本和命令,Makefile并且您想将一堆环境变量导出到从 this 调用的任何命令中Makefile,您可以将这些行添加到您的Makefile

export PKG_CONFIG_PATH="YOUR_PKG_CONFIG_PATH"
export FOO="BLAH"
export BAR="BLAH-BLAH"
于 2013-03-07T22:41:32.623 回答
2

您可以在autogen.sh调用中显式传递变量:

PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" ./autogen.sh $(CONFIGURE_OPTIONS)
于 2013-03-07T22:37:48.000 回答