目前大概可以分为4个过程:

    1. 手工 Makefile 时代
      随着Linux各版本的差异越来越大,手工编写Makefile显然已经不太现实;

    2. Autoconf 时代
      Autoconf实际上是一个工具包(这些工具是由 Perl 语言编写),其中包括:autoscan、autoheader、autoconf、autoreconf… ,通过定义宏、选项来实现自动生成自动脚本 configure ;

    Autotools 发展史 - 图1

    1. Automake 时代
      用户手动创建Makefile.am:只需要定义目标和源文件,使用 automake 就可以了;
      最初用户手动在configure.ac同目录创建一个aclocal.m4文件,用于存放用户自定义的宏、automake扩展宏,后来 Aclocal 工具接管了该需求,同时把 Autoconf、Automake及自定义宏都保存在了 aclocal.m4 文件中,最后再运行 autoconf命令时,就直接到这里看宏定义就可以了。

    Autotools 发展史 - 图2

    上图的黄色框内,由 Automake 时候补充完成。

    1. Libtool 时代
      为适应 Linux / Windows /Mac OS 多种系统,又出现了 libtool 和 libtoolize 工具;
      该工具将库进行再次抽象,生成 .la 文件;