有关PHP中配置。m4的介绍

  介绍

这篇文章主要介绍”有关PHP中配置。m4的介绍”,在日常操作中,相信很多人在有关PHP中配置。m4的介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“有关PHP中配置。m4的介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

最近在看php扩展相关的东西,虽然来来回回编辑了好多次配置。m4,并且也在技术社区看到了<代码>配置。m4是什么?什么作用?>

。m4后缀的文件一般被当做通用的宏处理,来看下官方的介绍:

GNU m4的实现传统Unix宏处理器。这主要是SVR4兼容虽然有一些扩展(例如,处理超过9位置参数宏)。GNU M4还包括文件的内置函数,运行shell命令、做算术,等。

GNU M4宏处理器,它将输入复制到输出扩大宏。宏是内装式或用户定义的,可以有任意数量的参数。除了做宏扩展,m4装入的功能包括命名文件,运行UNIX命令,做整数运算,以各种方式操纵文本、递归等……可以使用m4作为编译器的前端或宏处理器本身。

GNU M4的一个最大的用户是GNU Autoconf项目。

简单而通俗易懂的翻译下:GNU M4是传统UNIX宏处理器的一种实现方式,它还具有一些内置功能,包括文件,壳牌、运算等。
作为一个宏处理器,将输入复制到扩展的输出,它要么内置,要么用户定义,且可以接受参数。另外这个还有内置函数,包括命名文件,运行UNIX命令,执行整数运算,以各种方式操作文本、递归等.M4既可以作为编译器的前端使用,也可以作为自己的宏处理器使用。
GNU M4的最大用户之一是GNU AutoCOF项目。

到这里大致了解到,它是作为一个宏处理器,然后再想想PHP扩展里面用到它做了什么,先看看PHP源码扩展目录ext中bcmath中的代码:

黑暗   dnl  Id美元美元   黑暗与光明      PHP_ARG_ENABLE (bcmath, whether 用enable  bc  style  precision  math 功能,   (,- enable-bcmath  Enable  bc  style  precision  math 功能))      if  test “PHP_BCMATH"美元,!=,“no"然后   ,PHP_NEW_EXTENSION (bcmath, bcmath.c  \   libbcmath/src/add.c  libbcmath/src/div.c  libbcmath/src/init.c  libbcmath/src/neg.c  libbcmath/src/outofmem.c  libbcmath/src/raisemod.c  libbcmath/src/rt.c  libbcmath/src/sub.c  \   libbcmath/src/compare.c  libbcmath/src/divmod.c  libbcmath/src/int2num.c  libbcmath/src/num2long.c  libbcmath/src/output.c  libbcmath/src/recmul.c  \   libbcmath/src/sqrt.c  libbcmath/src/zero.c  libbcmath/src/debug.c  libbcmath/src/doaddsub.c  libbcmath/src/nearzero.c  libbcmath/src/num2str.c  libbcmath/src/raise.c  \   libbcmath/src/rmzero.c  libbcmath/src/str2num.c,   ,$ ext_shared -I@ext_srcdir@/libbcmath/src)   ,PHP_ADD_BUILD_DIR ($ ext_builddir/libbcmath/src)   ,AC_DEFINE (HAVE_BCMATH,, 1,, [Whether 你;have  bcmath])   fi

【黑暗在m4语法中相当于行注释的意思】

一些书籍中说明:config.m4是包含了配置时所执行的指令,例如上面这段代码很显然表明了,我写这个bcmath扩展,需要libbcmath/src/add.c libbcmath/src/div。c等等这些外部c源文件.PHP_NEW_EXTENSION()则是PHP定义的一个宏,最后的美元ext_shared参数用来声明这个扩展不是一个静态模块,而是在PHP运行时动态加载的。
好像我感觉还是不算太清晰,我在用一段白话来试图描述下吧。
配置。m4文件中的代码会进入配置脚本的,也就是配置。这里面包含扩展的开关,扩展的名称,所需要的代码等等你想做的事情。为什么这么玩呢,因为PHP是使用autoconf、automake, libtool 3件套来构建扩展的,这三剑客一起使用,威力很大,但是也有点难。当扩展是PHP源码中的一部分时,我们可以在顶级目录运行buildconf脚本,它会扫描每个子目录中的config.m4文件,然后他会把所有的配置文件配置。m4合成一个包含所有配置开关的配置脚本。这样的话,每个扩展就可以自己实现自己的配置检查,检查其所需的任何依赖和系统支持。区域这些想法和过程,宏检查和配置等工作,PHP选择了使用通过的m4脚本来配置

这里配置。4文件的探索告一段落了,好像明白了一些了~ ~”——

另外附一些PHP的宏,buildconf处理config.m4所用:

AC_MSG_CHECKING(消息)
在执行配置命令时输出“检查<消息> ”等信息。

AC_MSG_RESULT(值)
取得AC_MSG_CHECKING的执行结果,一般情况下应值为yes或no。

有关PHP中配置。m4的介绍