我从其他Makefile调用autogen.sh脚本,并且从shell脚本调用此Makefile,如果我在这个更外部的脚本上设置变量VAR,我可以使用它 - 它通常在这个Makefile中,真的VAR存在并且是定义,但是当这个Makefile运行autogen.sh我不能在configure.in文件中使用变量VAR时,获取此(或任何其他变量)的唯一方法是在更多外部shell中使用export命令。
编译: pushd $(DIRNAME); \ 如果测试! -e Makefile;然后 \ echo $ PKG_CONFIG_PATH; \ ./autogen.sh $(CONFIGURE_OPTIONS); \ 网络连接; \ 使; \ POPD
这是最好的方法吗?
提前致谢
答案 0 :(得分:3)
您可以按照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"
答案 1 :(得分:2)
您可以在autogen.sh
调用中明确传递变量:
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" ./autogen.sh $(CONFIGURE_OPTIONS)