step1:写Makefile.am
step2:执行autoscan,会生成configurae.scan,修改configure.scan内容之后,命名为configure.ac
step3:执行libtoolize,生成config.guess, config.sub, ltmain.sh, ltconfig
step4:执行aclocal,生成aclocal.m4
step5:执行autoconf,生成configure文件
step6:执行atuoheader,生成config.h.in
step7:执行automake --add-missing,生成Makefile.in文件
step8:执行./configure --prefix=`pwd`,生成Makefile文件
step9:执行make && make install,编译&安装二进制文件
1.开发者要书写的文件主要是configure.in和Makefile.am这两个文件
2.运行autoscan检测源文件生成configure.scan并修改成configure.in
3.编辑configure.in
4.由aclocal命令生成aclocal.m4
5.运行autoconf生成configure脚本
6.运行autoheader生成config.h.in文件
7.创建并编辑Makfile.am
8.运行automake生成makefile.in 有时候可能要加automake --add-missing
9.运行configure脚本生成Makefile
10.make
11.运行可执行程序main
GNU构建系统是Autotools,它包含autoconf automake libtool autoscan autoheader aclocal automake等工具。
autoconf
autoconf命令的主要作用是创建configure。它基于configure.ac文件生成configure文件。
autoscan
autoscan是autoconf的辅助命令,它创建一个预备的configure(configure.scan),作为autoconf命令的输入。我们可以按需在这个文件上进行添加内容,修改之后手工修改名字变成configure.ac文件。
autoheader
autoheader也是autoconf的辅助命令,用于生成一个configure的模版头文件config.h.in。
automake
automake命令的主要作用是创建Makefile。以Makefile.am和configure.ac为输入,以Makefile.in为输出。Makefile.in在configure执行时用于生成Makefile。
libtool
libtool命令的主要作用是创建和使用可移植的共享(动态链接)库。
aclocal
根据已经安装的宏,用户定义宏和acinclude.m4文件中的宏将configure.ac文件所需要的宏集中定义到文件 aclocal.m4中。aclocal是一个perl 脚本程序,它的定义是:“aclocal - create aclocal.m4 by scanning configure.ac”
ifnames 命令可以列出程序中的预处理标示符,比如#if,#ifdef等。
m4 处理文件中的宏。
pkg-config 查询已安装库的接口。
参考文章:
configure.ac和Makefile.am的格式解析概述 - never715 - 博客园