autotools精简(以webkit嵌入式浏览器移植为例)

本文以WebKit嵌入式浏览器的移植为例,深入探讨如何利用Autotools进行项目配置和构建,帮助开发者高效地完成跨平台移植工作。
摘要由CSDN通过智能技术生成

本文简要说明了在嵌入式环境下如何精减GNU autotools(主要涵盖 autoconf、automake、libtool等)系统,以适应不同平台的编译需求。
一、简要介绍GNU autotools的历史渊源

GNU autotools的形成主要有两个历史渊源:先阐述一个碎片化的概念:unix自诞生之日起,就形成了大量的变种和分支,后来又出现了的大量的类unix系统(包括后起之秀linux),以及各种发行版。不同系统提供的头文件和库都有不少差异,这就给软件的发行带来了相当大的难度,发行一个软件必须测试所有的目标系统。这称之为unix的碎片化。
1)为解决碎片化的问题,autoconf可以通过提供测试项来测试目标系统的库和文件是否满足软件编译和运行的需求,若无法满足则报错(历史上出现过多种类似系统,有交互式的有非交互式的)。libtool也是同样的目的,不同的是,它的目标是提供和使用一致性的动态库。
2)自从Stuart Feldman 1977年在bell lab中制作了make工具(因此获得acm软件系统奖),make的使用越来越广泛,但撰写makefile(特别是为大型项目)尤其头痛。automake就为此而生。
二、autotools的框架
要学习autotools的知识,需要bash shell、GNU m4(老古董,宏扩展语言,缅怀Dennis Ritchie先生,后期会再撰文介绍)、make等的基础知识。
下述框图摘自GNU autoconf manual:
1)如果你只使用autoconf系统发布软件
    your source files --> [autoscan*] --> [configure.scan] --> configure.ac
     
     configure.ac --.
                    |   .------> autoconf* -----> configure
     [aclocal.m4] --+---+
                    |   `-----> [autoheader*] --> [config.h.in]
     [acsite.m4] ---'
     
     Makefile.in
2)如果你采用了automake,下述的操作也需要被执行ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值