Файл config.m4 обрабатывается скриптом buildconf и обязан содержать все инструкции, исполняемые при конфигурировании. Например, сюда может входить проверка требуемых внешних файлов, таких как header-файлы, библиотеки и так далее. PHP определяет набор макросов, которые могут быть использованы в этом процессе. Наиболее часто используемые перечислены в Таблице 9.18.
Макрос | Описание |
---|---|
AC_MSG_CHECKING(message) | Печатает текст "checking <message>" в ходе работы configure. |
AC_MSG_RESULT(value) | Передаёт результат в AC_MSG_CHECKING; в качестве value должен специфицировать yes или no. |
AC_MSG_ERROR(message) | Печатает message как сообщение об ошибке в ходе configure и прерывает выполнение скрипта. |
AC_DEFINE(name,value,description) | Добавляет#define в php_config.h со значениемvalue и комментарием description (это используется при условной компиляции вашего модуля). |
AC_ADD_INCLUDE(path) | Добавляет include path/путь компилятора; например, используется, если необходимо добавить в модуль пути поиска header-файлов. |
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Специфицирует дополнительную библиотеку. |
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Весьма мощный макрос, добавляющий модуль с description/описанием в вывод
configure --help. PHP проверяет, задана ли опция --with-<modulename> скрипту configure.
Если да, запускает скрипт unconditionaltest (например, --with-myext=yes), и в этом случае значение опции содержится в переменной
$withval. Иначе - выполняет conditionaltest. |
PHP_EXTENSION(modulename,[shared]) | Этот макрос обязан вызываться в PHP для конфигурирования вашего расширения. Вы можете предоставить второй аргумент в дополнение к имени модуля, указывающий, намереваетесь ли вы компилировать его как shared-модуль. Это даст во время компиляции такое определение вашего исходника: COMPILE_DL_<modulename>. |