如何使用autoconf简化对交叉编译的支持

时间:2012-09-27 15:12:21

标签: configuration autoconf

我维护一个包自动配置,使用PKG_CHECK_MODULES来查找我的代码所依赖的库。我想让那些旨在交叉编译我的软件包的人很容易:PKG_CHECK_MODULES的主要问题是它获取了BUILD系统信息而不是主机。

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

注意:我尝试了AC_ARG_VAR但没有成功......

1 个答案:

答案 0 :(得分:1)

PKG_CHECK_MODULES首先检查host-prefix-pkg-config是否存在,然后回退到没有前缀的pkg-config(可能会产生令人困惑的结果)。

我不确定我是否理解你的方法(第二段),但无论如何我都会为用户设置正确的路径。您可以在AC_CHECK_LIB之后添加PKG_CHECK_MODULES以检查所选库是否与编译器属于同一系统。

交叉编译的用户可能已经安装了host-prefix-pkg-config,例如,除了MinGW交叉编译器之外,还有一些Linux发行版已打包。 如果没有,那就足以设置适当的环境。变量。 Autotools Mythbuster推荐wrapper that sets these variables

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