autotools:为什么在 configure.ac 中使用 AX_... 而不是 AC_...?
autotools: why AX_... rather than AC_... in configure.ac?
我今天遇到了一组 autoconf 宏:https://www.gnu.org/software/autoconf-archive/The-Macros.html#The-Macros。所有前缀为 ax_
,例如ax_ac_append_to_file.m4
,通过包含行 AX_ABSOLUTE_HEADER()
在 configure.ac
中激活。
以前只见过AC_
开头的宏。
所以切换到 AX_
是一个相对较新的约定,一种避免名称空间冲突的方法,还是其他什么?
宏是命名空间的。 AC_
指Autoconf中的宏,AM_
是Automake,LT_
是Libtool等
过去,其他提供宏的程序在 Autoconf 的命名空间中肆虐是很常见的,这就是为什么您可能已经看到一些 AX_
宏在野外变体 AC_
前缀。
AX_
是 autoconf-archive 的标准 "namespace",以防止它与其他实现冲突。
例如,您会发现我的旧 attributes.m4
在许多地方被复制和使用,并且使用 CC_
前缀代替(因为最初它只检查编译器。)
我今天遇到了一组 autoconf 宏:https://www.gnu.org/software/autoconf-archive/The-Macros.html#The-Macros。所有前缀为 ax_
,例如ax_ac_append_to_file.m4
,通过包含行 AX_ABSOLUTE_HEADER()
在 configure.ac
中激活。
以前只见过AC_
开头的宏。
所以切换到 AX_
是一个相对较新的约定,一种避免名称空间冲突的方法,还是其他什么?
宏是命名空间的。 AC_
指Autoconf中的宏,AM_
是Automake,LT_
是Libtool等
过去,其他提供宏的程序在 Autoconf 的命名空间中肆虐是很常见的,这就是为什么您可能已经看到一些 AX_
宏在野外变体 AC_
前缀。
AX_
是 autoconf-archive 的标准 "namespace",以防止它与其他实现冲突。
例如,您会发现我的旧 attributes.m4
在许多地方被复制和使用,并且使用 CC_
前缀代替(因为最初它只检查编译器。)