From 384a5e26fe9fd767e0f40465859472e1a6238147 Mon Sep 17 00:00:00 2001 From: Frederic Peters Date: Fri, 8 Dec 2006 10:05:39 +0000 Subject: [PATCH] added support for PHP5 --- Makefile.am | 5 ++- configure.ac | 79 ++++++++++++++++++++++++++++++++++++++++++++++-- php5/Makefile.am | 20 ++++++++++++ 3 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 php5/Makefile.am diff --git a/Makefile.am b/Makefile.am index f3764962..10bea975 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,9 @@ endif if PHP4_ENABLED PHP4_SD = php endif +if PHP5_ENABLED + PHP5_SD = php5 +endif if CSHARP_ENABLED CSHARP_SD = csharp endif @@ -16,7 +19,7 @@ endif SUBDIRS = lasso \ swig \ - $(PHP4_SD) $(PYTHON_SD) $(JAVA_SD) $(PERL_SD) \ + $(PHP4_SD) $(PHP5_SD) $(PYTHON_SD) $(JAVA_SD) $(PERL_SD) \ tests \ win32 \ docs diff --git a/configure.ac b/configure.ac index 3c6f0420..b33b8b44 100644 --- a/configure.ac +++ b/configure.ac @@ -103,7 +103,7 @@ AC_CHECK_PROGS(JAVAC, gcj javac) AC_CHECK_PROGS(JAR, fastjar jar) AC_CHECK_PROGS(PERL, perl) AC_CHECK_PROGS(PHP4, php4 php) -AC_CHECK_PROGS(PHP5, php4 php) +AC_CHECK_PROGS(PHP5, php5 php) AC_CHECK_PROGS(PHP4_CONFIG, php-config4 php-config) AC_CHECK_PROGS(PHP5_CONFIG, php-config5 php-config) AC_CHECK_PROGS(PYTHON, python) @@ -352,7 +352,7 @@ AC_MSG_RESULT($enable_python) AC_SUBST(PYTHON_VERSION) # ----------- -# PHP binding +# PHP 4 binding # ----------- dnl Check if php is explicitly disabled. @@ -424,6 +424,79 @@ AC_MSG_RESULT($enable_php4) AM_CONDITIONAL([PHP4_ENABLED], [test "x$enable_php4" = "xyes"]) AC_SUBST(PHP4_VERSION) +# ----------- +# PHP 5 binding +# ----------- + +dnl Check if php is explicitly disabled. +AC_ARG_ENABLE(php5, [ --disable-php5 disable the PHP 5 binding],, + enable_php5="yes") + +AC_ARG_ENABLE(php5-force, [ --enable-php5-force always enable of the PHP 5 binding (win32)], + [ENABLE_PHP5_FORCE="yes"], + [ENABLE_PHP5_FORCE="no"]) + +AC_ARG_WITH(php5-config, + [ --with-php5-config=(PHP5_CONFIG) Specify full path to php-config5.]) + +AC_ARG_WITH(php5-extension-dir, + [ --with-php5-extension-dir=(PHP5_EXTENSION_DIR) Specify full path to php 5 extension dir.], + [PHP5_EXTENSION_DIR="$withval"],[PHP5_EXTENSION_DIR=]) + +dnl Check if user passed a specific php-config program. +if test "X$with_php5_config" != "X" ; then + PHP5_CONFIG=$with_php5_config +fi + +if test "X$PHP5_CONFIG" != "X" ; then + PHP5_INCLUDES=`$PHP5_CONFIG --includes` + PHP5_LDFLAGS=`$PHP5_CONFIG --ldflags` + PHP5_LIBS=`$PHP5_CONFIG --libs` + PHP5_UNPREFIXED_EXTENSION_DIR=`$PHP5_CONFIG --extension-dir | $SED 's/\/usr//g'` + PHP5_PREFIX=`$PHP5_CONFIG --prefix` +else + # We assume PHP are in /usr/local directory. + if test $MINGW -eq 1; then + CFLAGS="$CFLAGS -DZTS -DZEND_WIN32 -DWIN32 -D_MBCS" + fi + PHP5_INCLUDES="-I/usr/local/include/php5 -I/usr/local/include/php5/main -I/usr/local/include/php5/Zend -I/usr/local/include/php5/TSRM -I/usr/local/include/php5/win32" + PHP5_LDFLAGS= + PHP5_LIBS=-lphp5ts -lxmlparse -lxmltok + PHP5_UNPREFIXED_EXTENSION_DIR= + PHP5_PREFIX= +fi +AC_SUBST(PHP5_INCLUDES) +AC_SUBST(PHP5_LDFLAGS) +AC_SUBST(PHP5_LIBS) +AC_SUBST(PHP5_UNPREFIXED_EXTENSION_DIR) +AC_SUBST(PHP5_EXTENSION_DIR) +AC_SUBST(PHP5_PREFIX) + +dnl Check for expat +have_expat_include=no +if test $MINGW -eq 1; then + AC_CHECK_LIB(xmlparse, XML_ParserCreate, have_expat_lib=yes, have_expat_lib=no) +else + AC_CHECK_LIB(expat, XML_ParserCreate, have_expat_lib=yes, have_expat_lib=no) +fi + +if test x$have_expat_lib = xno; then + enable_php5=no +fi + +AC_MSG_CHECKING(for PHP 5 development files) +if $PHP5_CONFIG --version | grep -q 5 || test "x$ENABLE_PHP5_FORCE" == "xyes" +then + PHP5_VERSION=`$PHP5_CONFIG --version 2> /dev/null` + languages_available="$languages_available php5($PHP5_VERSION)" +else + enable_php5=no +fi + +AC_MSG_RESULT($enable_php5) +AM_CONDITIONAL([PHP5_ENABLED], [test "x$enable_php5" = "xyes"]) +AC_SUBST(PHP5_VERSION) + ### # ---------- ### # C# binding (disabled for the moment) @@ -806,6 +879,7 @@ lasso/xml/Makefile lasso/xml/saml-2.0/Makefile perl/Makefile php/Makefile +php5/Makefile python/Makefile swig/Makefile swig/wsf-support.i @@ -856,6 +930,7 @@ Available languages: ${languages_available} Java binding: ${enable_java} Perl binding: ${enable_perl} PHP 4 binding: ${enable_php4} +PHP 5 binding: ${enable_php5} Python binding: ${enable_python} C API references: ${enable_gtk_doc} diff --git a/php5/Makefile.am b/php5/Makefile.am new file mode 100644 index 00000000..96e8d32d --- /dev/null +++ b/php5/Makefile.am @@ -0,0 +1,20 @@ +SWIG_OUTPUTS = lasso_wrap.c php_lasso.h lasso.php + +php_extension_LTLIBRARIES = lasso.la +lasso_la_CFLAGS = $(LASSO_CORE_CFLAGS) -I$(top_srcdir) -I$(top_builddir) $(PHP5_INCLUDES) +lasso_la_LDFLAGS = -export-dynamic -prefer-pic -module -avoid-version +lasso_la_LIBADD = $(top_builddir)/lasso/liblasso.la $(LASSO_LIBS) $(PHP5_LDFLAGS) +lasso_la_SOURCES = lasso_wrap.c + +php_extensiondir = ${prefix}@PHP5_UNPREFIXED_EXTENSION_DIR@ + +SWIG_I_FILES=$(shell find $(top_srcdir)/swig/ -name '*.[ih]') +lasso_wrap.c php_lasso.h lasso.php: $(SWIG_I_FILES) + $(SWIG) -v -php5 -module lasso -o lasso_wrap.c $(top_srcdir)/swig/Lasso.i + +test-php: lasso.la lasso.php + $(PHP5) -d extension_dir=.libs $(srcdir)/lasso.php + +MAINTAINERCLEANFILES = $(SWIG_OUTPUTS) +EXTRA_DIST = $(SWIG_OUTPUTS) +