在配置脚本/自动工具中设置配置选项,Boost安装在异常位置(EPEL替代Boost安装)
我目前正在RHEL7上运行一个基于Autotools的构建系统。Boost的系统版本非常旧(1.53),但是通过EPEL(1.69)提供了一个更新的版本。对于最近添加到Boost中的一些库,例如Boost::Log,需要这个更新的版本 不幸的是,由于它安装在一个稍微不寻常的位置(/usr/include/boost169和/usr/lib64/boost169),它不能透明地与标准Autotools Boost引导脚本Boost.m4或ax_Boost*.m4一起工作。通过设置在配置脚本/自动工具中设置配置选项,Boost安装在异常位置(EPEL替代Boost安装),boost,centos,autotools,autoconf,epel,Boost,Centos,Autotools,Autoconf,Epel,我目前正在RHEL7上运行一个基于Autotools的构建系统。Boost的系统版本非常旧(1.53),但是通过EPEL(1.69)提供了一个更新的版本。对于最近添加到Boost中的一些库,例如Boost::Log,需要这个更新的版本 不幸的是,由于它安装在一个稍微不寻常的位置(/usr/include/boost169和/usr/lib64/boost169),它不能透明地与标准Autotools Boost引导脚本Boost.m4或ax_Boost*.m4一起工作。通过设置——使用boost
——使用boost=[include dir]
和——使用boost libdir=[lib dir]
,可以使其与ax\u boost.*.m4一起工作;然而,这是一个大型组的构建系统,我不希望每个人每次都必须手动设置它,因为在我们所有的构建中它总是相同的
所以我要找两件事。首先,在configure.ac中是否有一种可以选择设置配置选项的好方法?检查目录是否存在非常容易,如果用户尚未设置它们,我可以在调用AX_boost_BASE之前使用boost和boost libdir进行设置。这将使我能够创建自己的boost M4文件,用于检查是否在EPEL位置安装了更新版本的boost,如果是,请设置这些选项并使用它
第二。。。这是一种正确的方法,还是有一种更干净的方法来建立整个流程
首先,在configure.ac中是否有一种可以选择设置配置选项的好方法
我想问您是否可以修改configure.ac
,以人工插入程序参数,这些参数将被识别和处理,就像它们在命令行上被指定一样。就我所知,不,没有黑客攻击Autoconf本身是无法做到这一点的
检查目录是否存在非常容易,如果用户尚未设置它们,我可以在调用AX_boost_BASE之前使用boost和boost libdir进行设置。这将使我能够创建自己的boost M4文件,用于检查是否在EPEL位置安装了更新版本的boost,如果是,请设置这些选项并使用它
当未指定--with BOOST*
选项时,可以修改AX\u BOOST\u BASE
来改变行为,但您可能考虑得太小了。如果您正在配置需要特定最低版本Boost的软件包,那么您应该通过其第一个(可选)参数将其表示为AX\u Boost\u BASE
。这本身可能还不足以满足您的需要,但是AX\u BOOST\u BASE
应该拒绝太旧的版本就足够了。在这种情况下,它看起来会返回到检查其他位置,您可以在这里教它检查需要处理的表单的位置
所以
AX\u BOOST\u BASE
,它知道如何检查要使用的库位置configure
的包装器脚本,并指示团队使用该脚本,而不是直接运行configure
。在这种情况下,确保最低可接受的Boost版本被传递到AX\u Boost\u BASE
仍然是有用且合适的,这听起来像是一个例子。我从未使用过,但您的用例听起来非常像config.site
的发明目的。