21.10 Adding Your File to the PHP Installation


You want to add your module to the PHP build system so that you can compile _PHP, --with-yourmodulename .

Technique

Add your file to its own folder in php4/ext/ and create files config.m4 and Makefile.in that look something like this (these are for the curl module earlier):

 FILE:  config.m4 dnl config.m4 for extension CURL PHP_ARG_WITH(curl, for CURL support, [  --with-curl[=DIR]       Include CURL support]) if test "$PHP_CURL" != "no"; then   if test -r $PHP_CURL/include/curl/easy.h; then     CURL_DIR=$PHP_CURL   else     AC_MSG_CHECKING(for CURL in default path)     for i in /usr/local /usr; do       if test -r $i/include/curl/easy.h; then         CURL_DIR=$i         AC_MSG_RESULT(found in $i)       fi     done   fi   if test -z "$CURL_DIR"; then     AC_MSG_RESULT(not found)     AC_MSG_ERROR(Please reinstall the libcurl distribution -     easy.h should be in <curl-dir>/include/curl/)   fi   AC_ADD_INCLUDE($CURL_DIR/include)   PHP_SUBST(CURL_SHARED_LIBADD)   AC_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/lib, CURL_SHARED_LIBADD)   AC_DEFINE(HAVE_CURL,1,[ ])   PHP_EXTENSION(curl, $ext_shared) fi FILE:  Makefile.in LTLIBRARY_NAME    = libcurl.la LTLIBRARY_SOURCES = curl.c LTLIBRARY_SHARED_NAME   = curl.la LTLIBRARY_SHARED_LIBADD = $(CURL_SHARED_LIBADD) include $(top_srcdir)/build/dynlib.mk 

Comments

I can't really cover the syntax of shell-scripting languages and makefiles in this small recipe, but I can explain the basic idea of the preceding code.

The basic idea of the config.m4 file is to verify that the necessary files are installed and add the directories for these files to the $PATH . So, when you enter

  #include <curl/curl.h>   #include <curl/easy.h>  

the compiler will look in the nonstandard directory for curl/curl.h and curl/easy.h as well as the standard directories.

Makefile.in is a basic makefile. It tells PHP what the final result will be and where the sources of the module will be located (in this case, curl.c).



PHP Developer's Cookbook
PHP Developers Cookbook (2nd Edition)
ISBN: 0672323257
EAN: 2147483647
Year: 2000
Pages: 351

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net