最近在分析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 介紹了該語言的詳細使用規則。