我正在使用Autoconf和Automake工具,在ordrer中开发/分发我的应用程序。
现在一切正常。
我的应用程序依赖于GSL(GNU Scientific Library),因此在我的configure.ac中,我通过执行以下操作来搜索它:
PKG_CHECK_MODULES([GSL],[gsl])
但如果缺少GSL,则该过程无法继续。
我的想法如下:在distrubution档案中包含gsl-1.15.tar.gz,如下所示:
并且,假设最终用户没有互联网连接或root访问权限,如果缺少GSL,他就无法继续。
是否可以在configure.ac中写入如果缺少GSL,则提取3rdParty / gsl-1.15.tar.gaz并指向提取的“include”和“lib”目录。
有可能吗?
你能帮助我吗?
答案 0 :(得分:0)
由于大多数软件包都是压缩的tarball,我不认为gsl
被分发为另一个tarball - 只需将源代码放在子目录中。然后可以使用configure.ac
中的AC_CONFIG_SUBDIRS配置GSL包。
PKG_CHECK_MODULES
的默认操作是在未找到时中止。要改变这个:
PKG_CHECK_MODULES([GSL], [gsl >= 1.15], [gsl_pkg_local=;],
[gsl_pkg_local="yes"])
if test "x$gsl_pkg_local" != "xyes" ; then
AC_CONFIG_SUBDIRS([gsl-1.15])
fi
这假设您在顶级有gsl-1.15
目录。 gsl_pkg_local
变量名称也没什么特别之处 - 所以你可以根据自己的需要改变这些东西。