【Linux笔记】【基础系列】 Automake基础使用 5
本篇记录 configure.ac 文件一些常用宏的含义。
configure.ac
这个文件的内容通过 autoscan 基本就都自动生成好了,一般只需要进行少量修改即可,既填写下 AC_INIT 的参数,添加 AM_INIT_AUTOMAKE 和 AC_CONFIG_FILES 即可。
下面是常见的 configure.ac 里的宏参数含义,更多的宏参数和宏的含义请参考Autoconf和automake。
-
AC_PREREQ (version)
可用于帮助选择能够成功编译给定 configure.ac 的最低 Autoconf 版本。确保正在使用足够新的 Autoconf 版本。 如果用于创建配置的 Autoconf 版本早于版本,则将错误消息打印到标准错误输出并以失败退出(退出状态为 63)。这个宏可以在 AC_INIT 之前使用。
-
AC_INIT (package, version, [bug-report], [tarname], [url])
每个配置脚本都必须在执行任何其他产生输出的操作之前调用 AC_INIT。
AC_INIT 会处理任何命令行参数并执行初始化和验证。设置软件包的名称和它的版本。这些通常用于 --version 支持,包括 configure 的版本支持。软件包 tarname 与 package 不同:后者指定完整的软件包名称(例如,‘GNU Autoconf’),而前者是为了分发tar ball名称(例如,‘autoconf’)。默认情况下,软件包的 ‘GNU’ 被剥离,小写,所有字母数字和下划线以外的字符都被改为’-'。如果提供,url 应该是软件包的主页。
-
AM_INIT_AUTOMAKE([OPTIONS])
对正确生成的 Makefile 的所需要的宏。AM_INIT_AUTOMAKE 使用一个参数调用:一个空格分隔的 Automake 选项列表,应用于树中的每个 Makefile.am。
-
AC_CONFIG_SRCDIR (unique-file-in-source-dir)
将此软件包的源目录与文件系统中可能存在的其他源目录区分开来。 unique-file-in-source-dir 应该命名这个包唯一的文件。 在运行任何其他检查之前,configure 将验证此文件是否存在于 srcdir 中。它可以防止人们使用–srcdir 意外指定错误的目录。
-
AC_CONFIG_HEADERS (header …, [cmds], [init-cmds])
该宏是实例化宏之一。使 AC_OUTPUT 在包含 C 预处理器 #define 语句的空白或换行符分隔的列表头中创建文件,并将生成的文件中的 ‘@DEFS@’ 替换为 -DHAVE_CONFIG_H 而不是 DEFS 的值。 头文件的通常名称是 config.h。
-
AC_PROG_CC ([compiler-search-list])
确定使用的 C 编译器。
-
AC_CONFIG_FILES (file…, [cmds], [init-cmds])
使 AC_OUTPUT 通过复制一个输入文件(默认为file.in),替换输出变量值来创建每个文件。
典型调用方法如下:
AC_CONFIG_FILES([Makefile src/Makefile man/Makefile X/Imakefile]) AC_CONFIG_FILES([autoconf], [chmod +x autoconf])
你可以通过在文件中添加一个用冒号分隔的输入文件列表来覆盖输入文件的名称。例如:
AC_CONFIG_FILES([Makefile:boiler/top.mk:boiler/bot.mk] [lib/Makefile:boiler/lib.mk])
-
AC_OUTPUT
生成 config.status 并启动它。 在 configure.ac 的末尾调用这个宏一次。
【参考资料】
本文链接:https://blog.csdn.net/u012028275/article/details/125288374