《GNU Autoconf》基础2017.4.24-4.25

第二章 如何运行configure以及Makefile标准

2.1 configuring

讲解了./configure 命令的用法,列举了典型的命令参数
如 '--prefix=prefix' 用来指定路径
示例:./configure --prefix=/opt/gnu
并不推荐在源代码的路径中运行configure,这样容易混乱,不便于再次配置源代码用于其他系统平台

2.2 cinfigure产生了哪些文件

configure之后主要生成一下几个文件:
config.cache:存放系统检测数据,可被手动修改和删除的纯文本文件
config.log:存放configure中每一步的test操作以及test结果
config.status:可以用来重新产生configuration配置文件
config.h:许多package使用configure的源码是用C或者C++语言写的,config.h中预定义了一些可能会被用到的宏
Makefile:主要目的

附录C:生成文件之间的依赖关系
C.1 aclocal
aclocal生成‘acloca.m4’文件,定义了文件‘configure.in’所需要的各种宏,包含了已有库中的宏、用户自定义宏以及‘acinclude.m4’文件中的内容

《GNU Autoconf》基础2017.4.24-4.25_第1张图片
aclocal关系图

C.2 autoheader
autoheader在‘configure.in’的基础场运行‘aclocal.m4’文件,同时,当autoconf运行时,需要‘acconding.h’头文件,从而生成‘confi.h.in’
《GNU Autoconf》基础2017.4.24-4.25_第2张图片
autoheaderg

C.3 automake and libtoolize
《GNU Autoconf》基础2017.4.24-4.25_第3张图片
automake and libtoolize

C.4 autoconf
《GNU Autoconf》基础2017.4.24-4.25_第4张图片
autoconf产生configure脚本

C.5 configure
前面四个命令都是为了生成运行configure所需的文件,
《GNU Autoconf》基础2017.4.24-4.25_第5张图片
configure

C.6 make
make产生目标文件
《GNU Autoconf》基础2017.4.24-4.25_第6张图片
make

从网上看到一个关系图,比较清楚:


《GNU Autoconf》基础2017.4.24-4.25_第7张图片
Autotools调用流程

2.3 最常用的Makefile命令

make all
make check
make install
make clean

第三章 Makefile语法简介

all: foo
foo: foo.o bar.o baz.o
.c.o:
$(CC) $(CFLAGS) -c $< -o $@@
.l.c:
$(LEX) $< && mv lex.yy.c $@@

target1: dep1 dep2 ... depN
cmd1
cmd2
...
cmdN
target2: dep4 dep5
cmd1
cmd2
dep4 dep5:
cmd1

默认宏变量
The default value for $(CC) is 'cc'.
$@和$<分别是目标文件和第一个依赖关系

你可能感兴趣的:(《GNU Autoconf》基础2017.4.24-4.25)