autotools归纳

最近接触到许多linux项目,其编译都是使用的autotools。

autotools是一个自动化的编译工具。个人理解它的最主要功能就是生成Makefile。

因为直接写Makefiel,其依赖关系还是比较复杂的。



一般的我们下载的源码包只要通过以下3条命令,就可完成编译和安装:

./configure

make

sudo make install



但是autotools其本来还是非常复杂的,下面给出参考

以下是命令列表:

autoscan        扫描给定的目录及其子目录,以搜寻普通的可移植性问题,比如检查编译器,库,头文件等。

                生成的configure.scan是configure.ac文件的原型。



aclocal         是一个收集宏的过程。

                将已经安装的宏、用户定义宏和acinclude.m4文件中的宏集中定义到文件aclocal.m4中。



autoheader      生成宏定义的模板文件config.h.in。

                宏定义模板文件被后面的命令所需要。



automake        根据configure.ac和Makefile.am中定义的结构,生成Makefile.in文件。



libtoolize      如果在configure.ac中定义了一些特殊的宏,比如AC_PROG_LIBTOO,automake将会调用此命令。



autoconf        生成configure脚本文件。



make distclean  清除所有生成的文件



./configure     生成Makefile。



make            编译。



make install    把程序安装到系统目录中去。



make uninstall  卸载程序。



make clean      清除生成的目标文件及过程中产生的文件。



make distclean  清除所有产生的文件。



make dist       将程序和相关的文档打包为一个.tar.gz压缩文件以供发布。



autoupdate      如果更新了Autoconf工具的版本,此命令可更新configure.in。

autoreconfig    如果更新了Autoconf工具的版本,此命令可更新产生的配置文件。

ifname          扫描C源程序文件,在标准输出上输出那些出现在#if,#elif,#ifdef或#ifndef中的标识符,

                每个标识符显示为一行,其后跟一空格和所属的文件名。



command       input              output

--------------------------------------------------

autoscan      [source]           configure.scan

                                 autoscan.log



aclocal       configure.ac       aclocal.m4



autoheader    aclocal.m4         autoconfig.h.in



automake      configure.ac       INSTALL

              makefile.am        Makefile.in

                                 COPYING

                                 install-sh

                                 missing

                                 mkinstalldirs

                                 stamp-h.in



libtoolize                       config.guess

                                 config.sub

                                 ltmain.sh

                                 ltconfig



autoconf      configure.ac       configure

              aclocal.m4

              autoconfig.h.in





command         input                      output

-----------------------------------------------------------------

configure       configure                  Makefile

                Makefile.in                config.h

                cofnig.h.in                config.log

                XXXXX.pc.in                config.status

                XXXXX-uninstalled.pc.in    libtool

                                           XXXXX.pc

                                           XXXXX-uninstalled.pc

                                           stamp-h1



make            Makefile



make install    Makefile



make uninstall  Makefile



make clean      Makefile



make distclean  Makefile



make dist       Makefile

你可能感兴趣的:(tools)