【问题标题】: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)
      

      【讨论】: