2012-09-27 45 views
1

我维护一个使用PKG_CHECK_MODULES查找我的代码依赖的库的包自动配置。我想让人们更容易交叉编译我的包:PKG_CHECK_MODULES的主要问题是它获取BUILD系统信息而不是HOST。如何使用autoconf轻松支持交叉编译

我的方法如下:我不使用HOST系统的rootfs,但是编译我的软件包单独依赖的每个软件包。然后,我希望能够在调用./configure srcipt时强制执行DEPENDSON_LIBS或DEPENDSON_CFLAGS的值。这是一个好方法吗?如何编写configure.in来允许这个?

注:我tryed AC_ARG_VAR没有成功...

法布里斯。

回答

0

PKG_CHECK_MODULES首先检查host-prefix-pkg-config是否存在,然后回退到没有前缀的pkg-config(这可能会导致混淆结果)。

我不知道我是否了解你的方法(第二段),但无论如何,我会留下给用户设置正确的路径。您可以在PKG_CHECK_MODULES之后添加AC_CHECK_LIB以检查所选库是否与编译器的系统相同。

交叉编译的用户可能已经安装了host-prefix-pkg-config,例如一些Linux发行版除了MinGW交叉编译器外还封装了它。 如果不是,则设置正确的env就足够了。变量。 Autotools Mythbuster建议使用wrapper that sets these variables

作为最后的手段,用户可以直接设置*_CFLAGS*_LIBS