【问题标题】:How to pass shell variable to autogen.sh script如何将 shell 变量传递给 autogen.sh 脚本
【发布时间】:2013-03-07 22:35:03
【问题描述】:
我从其他 Makefile 调用 autogen.sh 脚本,并且从 shell 脚本调用这个 Makefile,如果我在这个更外部的脚本上设置一个变量 VAR,我可以在这个 Makefile 中正常使用它,真的 VAR 存在并且是已定义,但是当此 Makefile 运行 autogen.sh 时,我无法在 configure.in 文件中使用变量 VAR,获得此(或任何其他变量)的唯一方法是在更多外部 shell 中使用 export 命令。
编译:
推送 $(DIRNAME); \
如果测试! -e 生成文件;然后 \
回声 $PKG_CONFIG_PATH; \
./autogen.sh $(CONFIGURE_OPTIONS); \
菲; \
制作; \
弹出
这是最好的方法吗?
提前致谢
【问题讨论】:
标签:
shell
makefile
configure
autoconf
【解决方案1】:
您可以遵循 Idelic 的建议,将变量作为命令的一部分显式传递给 autogen.sh:
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" ./autogen.sh $(CONFIGURE_OPTIONS)
或者,如果您有多个从Makefile 调用的脚本和命令,并且您想将一堆环境变量导出到从该Makefile 调用的任何命令中,您可以将这些行添加到您的Makefile :
export PKG_CONFIG_PATH="YOUR_PKG_CONFIG_PATH"
export FOO="BLAH"
export BAR="BLAH-BLAH"
【解决方案2】:
您可以在autogen.sh 调用中显式传递变量:
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" ./autogen.sh $(CONFIGURE_OPTIONS)