【问题标题】:autoconf doesn't define prefix within AC_CONFIG_COMMANDSautoconf 没有在 AC_CONFIG_COMMANDS 中定义前缀
【发布时间】:2020-02-12 18:28:25
【问题描述】:

我在 configure.ac 的 AC_CONFIG_COMMANDS 宏中调用子配置,我想传递子配置我的前缀等目录,但是当我尝试传递这些变量时,它们没有定义并且子配置只是得到空参数。

有谁知道如何传递这些变量(或者也许有更好的方法在子项目中运行配置)?

AC_INIT([admin-tools], [1.0])
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE
AX_PYTHON_DEVEL
AX_PKG_SWIG([], [], AC_MSG_ERROR([SWIG is required to build.]))
AX_SWIG_PYTHON
AC_PROG_CXX
AX_WITH_CURSES
AC_CONFIG_FILES([src/Makefile src/clients/Makefile])
AC_CONFIG_COMMANDS([yast-core], [pushd src/yast-core; ./configure --prefix=${prefix} --libdir=${libdir}; popd])
AC_OUTPUT

【问题讨论】:

  • 看起来我可以用 AC_CONFIG_SUBDIRS 做点什么

标签: autotools autoconf


【解决方案1】:

我找到了 AX_SUBDIRS_CONFIGURE,它允许我在子目录上运行配置并自定义传递给它的参数。如果不需要自定义参数,可以使用 AC_CONFIG_SUBDIRS。

【讨论】:

  • AC_CONFIG_SUBDIRS 是设置子项目配置的常规方式。自定义参数在这里不会出现太大问题,因为顶级 configure 应该通过它们,即使它自己不处理它们。问题的主要载体是不同的组件项目是否对参数有冲突要求。
  • 在我的例子中,一些子项目是 cmake 项目(带有一个包装器配置脚本),所以我需要自定义一些参数。
  • 我还必须添加一些包含/lib 路径,因为一些项目希望安装一些头文件/库,而实际上它们位于另一个子项目中。
猜你喜欢
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 2018-02-22
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多