一.功能简述
快速方便帮助你生成在众多LINUX,BSD和UNIX下可移植的Makefile.in和configure脚本。
完整文档参考:http://sources.redhat.com/automake/automake.html
二.工具集成员
以使用的执行顺序为作生后顺序.
1.autoscan
扫描的代码目录,自动把所有的库调用函数抽取出来生成检查的M4宏,最后生成一个configure.scan文件,你可以重命名它为configure.ac(老版本是configure.in,仍然支持)。你因此可以省下寻找有兼容性的函数的时间。configure.ac的存在是它要作为aclocal和autoconf的输入文件.
AC_INIT([zardoz], [1.0])
AM_INIT_AUTOMAKE
2.aclocale
把当前目录下的 configure.ac文件中的AM_*之类的宏处理成M4宏,生成一个后缀为.m4文件.
3.autoheader
生成作为AC_CONFIG_FILE的输入文件config.h.in。
4.autoconf
如果configure.ac中定义了AC_CONFIG_FILE([config.h]),这个autoconf会把相关的检测结果转成头文件,同时设置HAVE_CONFIG编译器预处理器, 可以在源文件都包含以下代码,
#if HAVE_CONFIG
#include "config.h"
#endif
这样不必把那些检测结在最后编译的时候直接传给gcc,编译的时候看来简洁一些。
但这不是必要的,你可以不定义AC_CONFIG_FILE,如果不定义的话autoconf把这些结果直接存到configure文件中.
5.automake
以Makefile.am为输入文件生成Makefile.in。
Makefile.am文件需要你手工编写。Makefile.am是一种比Makefile更高层次的规则。只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等构成。
以下Makefile.am的一个示例:
noinst_PROGRAMS=test
test_SOURCES=test.c
test_LDADD=$(top_srcdir)/src/ModuleA/apple/shell/apple.o $(top_srcdir)/src/lib/libswap.a
test_LDFLAGS=-D_GNU_SOURCE
DEFS+=-D_GNU_SOURCE
Now you can run ‘automake --add-missing’ to generate your Makefile.in and grab any auxiliary files you might need, and