Each SAPI backend has to contain: config.m4: just like for extensions, this file contains autoconf/automake directives that end up in the configure script. The only difference is that the sapi config.m4 files are read in diversion (output block) 2 instead of 3. The sapi config.m4 files should set two variables: PHP_SAPI (which sapi backend to choose) and INSTALL_IT (the actions performed when "make install" is executed). If they are not specified, they will default to "cgi" and "do nothing," respectively. Additionally, the following m4 macros can be used to influence what is created during "make": PHP_BUILD_SHARED -- build shared target libs/libphp4.so PHP_BUILD_STATIC -- build static target libs/libphp4.a PHP_BUILD_PROGRAM -- build executable php (paths relative to top build dir) Makefile.am: just what you think. Make sure your target is called "libphpsapi_NNN.la", where NNN is the value of PHP_SAPI.