最近在分析speex代码,发现编译过程中需要的一个speex.m4文件不知道是何方神圣,怀着对未知知识的渴望,跑到某哥和某基问了一下,算是认识了,为了方便以后经常见面,这里就做个记录吧。
M4实际上是一种编程语言,后缀是.m4,说明这个文件是使用.m4写的,说的专业一点,这实际上就是一个通用宏处理器。经常看linux下应用程序的朋友可能熟悉它,因为它经常被用来生成Makefile的脚本语言来使用。
在某基上,是这样介绍这个语言的使用的:
m4是POSIX标准中的一部分,所有版本的UNIX下都可用。虽然这种语言可以单独使用,但大多数人需要m4仅仅是因为GNU autoconf中的“configure”脚本依赖它。
宏处理器(或预处理器)一般用作文本替换工具。最终用户经常会用它来处理要反复使用的文本模板,典型的是用于编程工具,还会用于文本编辑和文字处理工具。
想详细了解这个语言的,可以参考:
1 https://zh.wikipedia.org/wiki/M4_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80) 介绍了这个语言的特性,历史,作用等。
2 https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72/com.ibm.aix.genprogc/m4macro.htm 介绍了该语言的详细使用规则。