为了简化可移植构建的难度,早期有一套AutoTools的工具帮助程序员构建软件。Auto Tools是GNU程序的标准构建系统。
configure脚本是由软件开发者维护并发布的给用户使用的shell脚本。该脚本的作用是检测系统环境,最终目的是生成Make file和configure.h。
make通过读取Make file文件,开始构建软件。
make install可以将软件安装到默认或者指定的系统路径
- 在上图中,开发者在分发源码包时,除了源代码中的头文件(.h)和程序源文件(.c),还有许多支持软件构建的文件和工具。
- 最重要的就是Makefile.in和config.h。
- configure脚本执行时,将为每一个.in文件处理成对应的非.in文件,即生成:Makefile,src/Makefile,config.h 。大部分情况下,只有Makefile和config.h。
- Makefile用于被make程序识别并构建软件,而config.h中定义的宏,有助于软件通过预编译来改变自身代码,来适应目标平台某些特殊性。
有些软件在configure阶段,还可以生成其他文件,这完全取决于软件本身。
configure
一般而言,configure主要检查当前目标平台的程序,库,头文件,函数等的兼容性。这些结果将作用于config.h和Makefile文件的生成,从而影响最终的编译。
用户可以通过configure配置参数,来定制需要包含或者不需要包含的组件,安装路径等。大概可以分为五组:
· 安装路径相关
· 程序名配置
· 跨平台编译
· 动静态库选项
· 程组件
configure在执行过程中,除了生成Makefile外,还会生成,但是不限于以下文件:
·config.log日志文件
·config.cache缓存文件。提高下一次configure的速度,-C指定
·config.status实际调用编译工具构建软件的shell脚本
如果软件通过libtool构建,还会生成libtool脚本。
Autotools包括了autoconf和automake等命令
autoreconf
autoreconf程序能够自动按照合理的顺序调用autoconf,automake,aclocal程序
参考资料:
1. https://www.jianshu.com/p/b3b0a090a01e
2.如何利用configure.ac和Makefile.am生成Makefile
标签:文件,configure,Makefile,构建,软件,工具,Autotools,config From: https://www.cnblogs.com/guxuanqing/p/16893601.html