由 buildconf 處理的配置文件 config.m4 包含了全部在配置過程當中所執行的指令。這些指令諸如包含測試包含所需的外部文件,像頭文件、庫文件等等。PHP 定義了一系列處理這類狀況的宏,其中最經常使用的咱們在這裏列了出來。 php
AC_MSG_CHECKING(message)
在執行 configure 命令時輸出「checking <message>」等信息。 測試
AC_MSG_RESULT(value)
取得 AC_MSG_CHECKING 的執行結果,通常狀況下 value 應爲 yes 或 no。 ui
AC_MSG_ERROR(message)
在執行 configure 命令時輸出一條錯誤消息 message 並停止腳本的執行。 spa
AC_DEFINE(name,value,description)
向 php_config.h 添加一行定義:#define name value // description (這對模塊的條件編譯頗有用。) ip
AC_ADD_INCLUDE(path)
添加一條編譯器的包含路徑,好比用於模塊須要爲頭文件添加搜索路徑。 編譯器
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath)
指定一個庫的鏈接路徑。 源碼
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest)
這是一款比較強大的宏,用於將模塊的描述 description 添加到「configure –help」命令的輸出裏面。PHP 會檢查當前執行的 configure 腳本里面有沒有–with-<modulename> 這個選項。 若是有則執行 unconditionaltest 語句(好比 –with-myext=yes 等), 此時,選項的值會被包含在 $withval 變量裏面。不然就執行 conditionaltest 語句。 it
PHP_EXTENSION(modulename, [shared])
這個是配置你的擴展時 PHP 一定調用的一個宏。你能夠在模塊名後面提供第二個參數,用來代表是否將其編譯爲動態共享模塊。這會致使在編譯時爲你的源碼提供一個 COMPILE_DL_<modulename> 的定義。 io