1

我正在使用 Autoconf 和 A​​utomake 工具,以便开发/分发我的应用程序。

现在一切正常。

我的应用程序依赖于 GSL(GNU 科学库),所以在我的 configure.ac 中,我通过以下方式搜索它:

PKG_CHECK_MODULES([GSL], [gsl])

但如果 GSL 缺失,该过程将无法继续。

我的想法如下:在分发存档中包含 gsl-1.15.tar.gz,如下所示:

  • /
    • 第三方/
      • gsl-1.15.tar.gz
    • 源/
      • ...
    • 配置.ac

并且,假设最终用户没有互联网连接或 root 访问权限,如果缺少 GSL,他将无法继续。

是否可以在 configure.ac 中写入如果缺少 GSL,则提取 3rdParty/gsl-1.15.tar.gaz 并指向提取的“include”和“lib”目录。

可能吗 ?

你能帮助我吗 ?

4

1 回答 1

0

由于大多数软件包都是压缩的 tarball,我看不出gsl作为另一个 tarball 分发的意义——只需将源代码放在子目录中即可。然后可以通过使用AC_CONFIG_SUBDIRSconfigure.ac.


的默认操作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——因此您可以更改这些内容以满足您的需要。

于 2013-03-25T15:54:12.587 回答