关于php扩展包里面的configure来源说明

我们知道在Linux下构造软件,一般都经过以下几个步骤,confiure &&make && make install。
make需要makefile,而makefile需要经过confiure生成的,其实confiure是个shell脚本,makefile的内容由confiure.in来生成的。而confiure.in的内容是啥呢?其实就是一堆m4文件的集合,m4文件由m4软件解析。m4是一个宏解析器。
所以,其实你看到的makefile里面的命令,其实都是由最初的M4文件内容来指定生成的,PHP的扩展构建其实也是这样的。每个php扩展包里面都会有个config.m4文件,m4文件里面配置了该扩展生成编译makefile文件需要的一些条件,比如依赖的库,头文件等。为什么要命名为config.m4?其实就是PHP在你要编译这个扩展前要做一个基本的条件检查,做这个检查的作用其实就是为了判断你在什么平台、基于什么样的源码包编译的扩展等基本信息以及一些基础条件具备与否。这个检查由一个脚本完成,这个脚本是phpize。这个phpize除了做一些基本检查外,还调用了php扩展构建工具来完成一些基础工作,这个构建工具就在你安装的php目录下的/lib/php/build/acinclude.m4。其实就是个m4文件,就是整合了config.m4和这个acinclude.m4文件,然后咱们可以做什么呢?config.m4文件里面的哪些东西可以配置,哪些宏具有什么样的功能,怎么使用等,直接去看acinclude.m4的源码就行了。然后剩下的生成confiure.in文件就由m4工具去完成了。
所以看到这里,你就明白了为啥执行以下phpize,就能够生成了一堆文件以及非常重要的confiure文件以及configure的文件内容是如何来的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值