AC_DEFINE 是保存结果的方式之一。 2、./configure 使用 --with-package功能: AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given]) 有4个参数,参考官方说明,比较容易理解。但是有点小麻烦,如--with-package=ABC,如果获取 '='后面的值,成为一个问题。看官方例子: AC_ARG_...
AC_DEFINE取代了define; [取代了 M4 的左引号,]取代了 M4 的右引号; CHECK_FOO取代了检测系统中是否已安装 foo; [[ $(which foo) ]]取代了[ $(which foo) ],这一点需要了解 M4 的工作原理。 这些『取代』,是 M4 所允许的,也就是说,这一切只用 M4 就能够做到。 接下来,再将 configure.ac 文件修...
在autoconf中获取库版本的方法是使用AC_INIT宏来定义软件包的名称和版本号,然后使用AC_CHECK_LIB宏来检查库是否存在并获取其版本号。 具体步骤如下: 1. 在configure...
如果你使用了包含#define指令的C头文件,你可能还要编写`acconfig.h',并且你需要与软件包一同发布由Autoconf生成的文件 `config.h.in'。 下面是一个说明了在配置中使用的文件是如何生成的图。运行的程序都标以后缀`*’。可能出现的文件被方括号(`[]’)括起来。autoconf和autoheader还读取安装了的Autoconf宏文件(...
acconfig.h也为configure.in中不常用的以及出现在AC_DEFINE中的宏增加同样的#undef注释行。 如果编写GNU工程并且包含了AC_DEFINE(_GNU_SOURCE)在configure.in中,那么需要在acconfig.h中增加如下内容: /* Enable GNU extensions. */#undef_GNU_SOURCE
AC_CONFIG_AUX_DIR (dir)对于需要手工配置或者使用install程序的包来说,虽然在缺省源代码位置在大部分情况下看起来是正确的,包还是可能需要通过调用AC_CONFIG_AUX_DIR来告诉configure到那里去寻找一些其他的shell脚本。在目录dir中使用`install-sh'、`config.sub'、`config.guess'和 Cygnus configure配置脚本。它们是...
lib_mysql.m4中,包含了如下代码(如果加上--with-mysql并且找到了对应mysql_config,那么如下代码生效):代码如下:AC_DEFINE([HAVE_MYSQL], [1],[Define to 1 if MySQL libraries are available])所以,config.h中会有对应的宏定义:代码如下:/* Define to 1 if MySQL libraries are available */#define ...
# define a macro that is visible to other m4 scripts AC_DEFUN([MY_MACRO], [ABC]) MY_MACRO => ABC 它非常类似于 c 宏或 Lisp 宏。宏在编译时扩展(configure.ac= >configure)。您可以定义一个宏my_macro,该宏可以扩展为一个shell脚本片段。这里我们只是将其扩展为 ABC,它在 shell 脚本中没有任何...
| | |- 自定义的m4文件 # 所在目录通过AC_CONFIG_MACRO_DIR宏指定 | | |- aclocal命令 | |- autoconf命令 |- config.h.in |- AC_DEFINE宏 # 根据configure.ac,最终展开过AC_DEFINE宏 |- autoheader命令 登录后可查看完整内容 [培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18...
AC_DEFUN([AC_DEFINE_DIR], [ prefix_NONE= exec_prefix_NONE= test"x$prefix"= xNONE && prefix_NONE=yes && prefix=$ac_default_prefix test"x$exec_prefix"= xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix evalac_define_dir="[$]$2"# [$]$2等同于$$2,在shell中是错的,具体看生...