Android系统开发(4)——Autotools

Autotools工具的构成

1、autoscan

autoscan是用来扫描源代码目录生成configure.san文件的,configure.san包含了系统配置的基本选项,里面都是一些宏定义,我们需要将它的名字改为configure.in

2、aclocal

aclocal是一个perl脚本程序。aclocal根据configure.in文件内容自动生成aclocal.m4文件,生成的aclocal.m4文件是宏展开文件。

3、autoconf

autoconf是用来产生configure文件的,configure.in文件的内容是一些宏,这些宏经过autoconf处理后会变成检查系统特性、环境变量、软件必须的参数的shell脚本。

4、autohead

自动生成config.h.in

5、automake

使用automake-add-missing来产生Makefile.in.

Document address:https://www.gnu.org/software/autoconf/manual/autoconf.html

Files used in preparing a software package for distribution, when using just Autoconf:

     your source files --> [autoscan*] --> [configure.scan] --> configure.ac
     
     configure.ac --.
                    |   .------> autoconf* -----> configure
     [aclocal.m4] --+---+
                    |   `-----> [autoheader*] --> [config.h.in]
     [acsite.m4] ---'
     
     Makefile.in

Additionally, if you use Automake, the following additional productions come into play:

     [acinclude.m4] --.
                      |
     [local macros] --+--> aclocal* --> aclocal.m4
                      |
     configure.ac ----'
     
     configure.ac --.
                    +--> automake* --> Makefile.in
     Makefile.am ---'

Files used in configuring a software package:

                            .-------------> [config.cache]
     configure* ------------+-------------> config.log
                            |
     [config.h.in] -.       v            .-> [config.h] -.
                    +--> config.status* -+               +--> make*
     Makefile.in ---'                    `-> Makefile ---'

Autotools过程演示

1、autoscan

修改configure.san文件名为configure.ac或者configure.in,打开配置我们生成makefile的信息。
Android系统开发(4)——Autotools_第1张图片
2、aclocal

执行autoconf命令来生成configure可执行文件,并新建一个Makefile.am来编辑内容
bin_PROGRAMS = hello
hello_SOURCES = hello.c
Android系统开发(4)——Autotools_第2张图片

安装软件

Android系统开发(4)——Autotools_第3张图片
执行make命令和sudo make install
Android系统开发(4)——Autotools_第4张图片
去/usr/local/bin下面执行我们的可执行文件hello
Android系统开发(4)——Autotools_第5张图片

生成压缩包

Android系统开发(4)——Autotools_第6张图片

你可能感兴趣的:(gcc,makefile,autotools)