Dear all, I'm asking your help because I'm not able to solve an issue probably related to some foolish mistake I have not yet discovered. I'm trying to develop an experimental extension to interface LIXA library (http:/lixa.sourceforge.net/).
I have created the basic stuff (config.m4, lixa.c, php_lixa.h and so on). If I use this sequence from the ext/lixa directory: /opt/php/bin/phpize ./configure --help I can see the lixa extension is available: [...] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-libdir=NAME Look for libraries in .../NAME rather than .../lib --with-php-config=PATH Path to php-config php-config --with-lixa=FILE Include LIXA support. File is the path to lixa-config [...] and I can compile with: ./configure --with-lixa=/opt/lixa/bin/lixa-config --with-php-config=/opt/php/bin/php-config the build process runs as expected and the extension is available after an addition to php.ini (extension=[...]/ext/lixa/modules/lixa.so). If I use this sequence from the PHP root directory: ./buildconf --force as described here: talks.somabo.de/200510_zend_conf_php_extension_development.pdf I cannot see "lixa" as an available option of my configure: ./configure --help|grep lixa is empty. If I try to build PHP anyway, I obtain: tiian@mojan:~/src/swig/php5.4-201202241630$ ./configure --with-lixa=/opt/lixa/bin/lixa-config configure: WARNING: unrecognized options: --with-lixa that's a reasonable result because "lixa" extension does not appear in configure help. It seems the global "configure" does not recognize my extension. Here's the config.m4 I have built in the last trials: dnl config.m4 start PHP_ARG_WITH(lixa, for LIXA support, [ --with-lixa=FILE Include LIXA support. File is the path to lixa-config program]) if test "$PHP_LIXA" != "no"; then LIXA_CONFIG=$PHP_LIXA dnl --with-lixa -> SWIG is a pre-requisite AC_CHECK_PROGS(SWIG, [swig], []) if test -z $SWIG then AC_MSG_ERROR([cannot find swig program]) fi dnl use lixa-config to determine LIXA include dir AC_MSG_CHECKING([for LIXA using $LIXA_CONFIG]) LIXA_INCLUDE="$($LIXA_CONFIG --include-dir)" if test -r "$LIXA_INCLUDE/tx.h" then AC_MSG_RESULT(found tx.h in $LIXA_INCLUDE) LIXA_DIR="$($PHP_LIXA --prefix)" fi if test -z "$LIXA_DIR" then AC_MSG_RESULT([not found]) AC_MSG_ERROR([Please specify a valid lixa-config utility program or reinstall the LIXA distribution]) fi dnl # --with-lixa -> add include path PHP_ADD_INCLUDE($($LIXA_CONFIG --include-dir)) AC_MSG_CHECKING([if LIXA is compiled with PostgreSQL support]) tmp=$($LIXA_CONFIG --include-dir-postgresql 2>/dev/null) if test $? -eq 0 then PHP_ADD_INCLUDE($tmp) HAVE_LIXA_POSTGRESQL=1 AC_DEFINE([HAVE_LIXA_POSTGRESQL], [1], [Define to 1 if LIXA is compiled with PostgreSQL support]) AC_MSG_RESULT([yes]) else HAVE_LIXA_POSTGRESQL=0 AC_MSG_RESULT([no]) fi AC_MSG_CHECKING([if LIXA is compiled with MySQL support]) tmp=$($LIXA_CONFIG --include-dir-mysql 2>/dev/null) if test $? -eq 0 then PHP_ADD_INCLUDE($tmp) HAVE_LIXA_MYSQL=1 AC_DEFINE([HAVE_LIXA_MYSQL], [1], [Define to 1 if LIXA is compiled with MySQL support]) AC_MSG_RESULT([yes]) else HAVE_LIXA_MYSQL=0 AC_MSG_RESULT([no]) fi dnl # --with-lixa -> dynamically generate lixa.i interface file for SWIG LIXA_INTERFACE="lixa.i" AC_MSG_NOTICE([Producing file $LIXA_INTERFACE dynamically...]) echo "%module lixa" > $LIXA_INTERFACE echo "%{" >> $LIXA_INTERFACE echo "#include \"tx.h\"" >> $LIXA_INTERFACE if test $HAVE_LIXA_POSTGRESQL -eq 1 then echo "#include \"lixapq.h\"" >> $LIXA_INTERFACE fi if test $HAVE_LIXA_MYSQL -eq 1 then echo "#include \"lixamy.h\"" >> $LIXA_INTERFACE fi echo "%}" >> $LIXA_INTERFACE echo "%include \"tx.h\"" >> $LIXA_INTERFACE if test $HAVE_LIXA_POSTGRESQL -eq 1 then echo "%include \"lixapq.h\"" >> $LIXA_INTERFACE fi if test $HAVE_LIXA_MYSQL -eq 1 then echo "%include \"lixamy.h\"" >> $LIXA_INTERFACE fi dnl # --with-lixa -> building LIXA interface using SWIG AC_MSG_CHECKING([if LIXA wrapper can be created with SWIG]) $SWIG -php -I$LIXA_INCLUDE -o lixa.c $LIXA_INTERFACE if test $? -eq 0 then AC_MSG_RESULT([yes]) else AC_MSG_ERROR([unable to create LIXA php wrapper using SWIG]) fi dnl # --with-lixa -> check for lib and symbol presence LIBNAME=lixac # you may want to change this LIBSYMBOL=tx_open # you most likely want to change this PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, [ PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $($PHP_LIXA --lib-dir), LIXA_SHARED_LIBADD) AC_DEFINE(HAVE_LIXALIB,1,[ ]) ],[ AC_MSG_ERROR([wrong lixac lib version or lib not found]) ],[ $($PHP_LIXA --libs) ]) dnl AC_DEFINE(HAVE_LIXA, 1, [Whether you have LIXA]) PHP_SUBST(LIXA_SHARED_LIBADD) PHP_NEW_EXTENSION(lixa, lixa.c, $ext_shared) fi dnl config.m4 end I did the same with a simpler test extension named "sample" with a trivial config.m4: PHP_ARG_ENABLE(sample, [Whether to enable the "sample" extension], [ --enable-sample Enable "sample" extension support]) if test $PHP_SAMPLE != "no"; then PHP_SUBST(SAMPLE_SHARED_LIBADD) PHP_NEW_EXTENSION(sample,sample.c,$ext_shared) fi but I've obtained the same result. Any hint will be very useful. Thanks in advance. Ch.F. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php