PHP Manual
Prev | Chapter 46. Zend API: Hacking the Core of PHP | Next

# Reference: Some Configuration Macros

## `config.m4`

The file `config.m4` is processed by `buildconf` and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Table 46-18.

Table 46-18. M4 Macros for `config.m4`

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during `configure`.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during `configure` and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to `php_config.h` with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the `configure --help` output. PHP checks whether the option --with-<modulename> is given to the `configure` script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Prev | Home | Next
Where to Go from Here | Up | API Macros