【GNU】《GNU Autoconf》基础----未消化

原文:https://www.jianshu.com/p/bbffda22fee8

第二章 如何运行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’文件中的内容

aclocal关系图


C.2 autoheader
autoheader在‘configure.in’的基础场运行‘aclocal.m4’文件,同时,当autoconf运行时,需要‘acconding.h’头文件,从而生成‘confi.h.in’

autoheaderg


C.3 automake and libtoolize

automake and libtoolize


C.4 autoconf

autoconf产生configure脚本


C.5 configure
前面四个命令都是为了生成运行configure所需的文件,

configure


C.6 make
make产生目标文件

make

 

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

 

Autotools调用流程

2.3 最常用的Makefile命令

make all
make check
make install
make clean

第三章 Makefile语法简介

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

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

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

posted on   bdy  阅读(101)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示