我目前正在研究在 RHEL7 上运行的基于 Autotools 的构建系统。Boost 的系统版本相当旧(1.53),但是通过 EPEL(1.69)提供了一个较新的版本。一些最近添加到 Boost 中的库需要这个较新的版本,例如 Boost::Log。
不幸的是,由于它安装在一个稍微不寻常的位置(/usr/include/boost169 和 /usr/lib64/boost169),它不能与标准 Autotools Boost 引导脚本 boost.m4 或 ax_boost_*.m4 透明地工作. --with-boost=[include dir]
可以通过设置和来使其与 ax_boost_*.m4 一起使用--with-boost-libdir=[lib dir]
;但是,这是一个大型组的构建系统,我不希望每个人每次都必须手动设置它,因为它在我们所有的构建中总是相同的。
所以我正在寻找两件事。首先,有没有一种好方法可以选择在 configure.ac 中设置配置选项?检查目录是否存在非常容易,如果用户尚未设置它们,我可以在调用 AX_BOOST_BASE 之前设置 --with-boost 和 --with-boost-libdir 。这将让我制作自己的 boost M4 文件,检查是否将更新版本的 Boost 安装到 EPEL 位置,如果是,设置这些选项并使用它。
其次......这甚至是正确的方法,还是有更清洁的方法来设置整个过程?