THRIFT-854. php: Provide configure option and make rules to build/install php extension
authorBryan Duxbury <bryanduxbury@apache.org>
Wed, 25 Aug 2010 17:09:02 +0000 (17:09 +0000)
committerBryan Duxbury <bryanduxbury@apache.org>
Wed, 25 Aug 2010 17:09:02 +0000 (17:09 +0000)
This patch adds a make target in lib/php that builds the php extension. By default configure will attempt to build this, but it can be disabled with --without-php_extension.

Patch: Anthony Molinaro

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@989226 13f79535-47bb-0310-9956-ffa450edef68

bootstrap.sh
configure.ac
lib/php/Makefile.am
lib/php/thrift_protocol.ini [new file with mode: 0644]

index 74ecdb8..52d5a51 100755 (executable)
@@ -20,6 +20,7 @@
 #
 
 ./cleanup.sh
+(cd lib/php/src/ext/thrift_protocol && phpize)
 
 autoscan || exit 1
 aclocal -I ./aclocal || exit 1
index 822fd1a..3175a7b 100644 (file)
@@ -48,6 +48,13 @@ AC_ARG_VAR([PHP_PREFIX], [Prefix for installing PHP modules.
                          Default = "/usr/lib/php"])
 AS_IF([test "x$PHP_PREFIX" = x], [PHP_PREFIX="/usr/lib/php"])
 
+AC_ARG_VAR([PHP_CONFIG_PREFIX],
+           [Prefix for installing PHP extension module .ini file.
+            (Normal --prefix is ignored for PHP because PHP has
+             different conventions.)
+           Default = "/etc/php.d"])
+AS_IF([test "x$PHP_CONFIG_PREFIX" = x], [PHP_CONFIG_PREFIX="/etc/php.d"])
+
 AC_ARG_VAR([PERL_PREFIX], [Prefix for installing Perl modules.
                            (Normal --prefix is ignored for Perl because
                            Perl has different conventions.)
@@ -137,6 +144,13 @@ if test "$with_php" = "yes"; then
 fi
 AM_CONDITIONAL(WITH_PHP, [test -n "$PHP"])
 
+AX_THRIFT_LIB(php_extension, [PHP_EXTENSION], yes)
+if test "$with_php_extension" = "yes"; then
+  AC_PATH_PROG([PHP_CONFIG], [php-config])
+  AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol])
+fi
+AM_CONDITIONAL(WITH_PHP_EXTENSION, [test -n "$PHP_CONFIG"])
+
 AX_THRIFT_LIB(ruby, [Ruby], yes)
 if test "$with_ruby" = "yes"; then
   AC_PATH_PROG([RUBY], [ruby])
index b8d7e93..02cd184 100644 (file)
 # under the License.
 #
 
+%.so:
+       cd src/ext/thrift_protocol/ \
+         && $(MAKE)
+
+if WITH_PHP_EXTENSION
+phpconfdir=$(PHP_CONFIG_PREFIX)
+phpconf_DATA=thrift_protocol.ini
+
+phpmoduledir = `php-config --extension-dir`
+phpmodule_SCRIPTS = src/ext/thrift_protocol/modules/thrift_protocol.so
+endif
+
 phpdir = $(PHP_PREFIX)
 php_DATA =  \
   src/autoload.php \
   src/Thrift.php
 
-phpextdir = $(phpdir)/ext/thrift_protocol
-phpext_DATA = \
-  src/ext/thrift_protocol/config.m4 \
-  src/ext/thrift_protocol/php_thrift_protocol.cpp \
-  src/ext/thrift_protocol/php_thrift_protocol.h
-
 phpprotocoldir = $(phpdir)/protocol
 phpprotocol_DATA = \
   src/protocol/TBinaryProtocol.php \
diff --git a/lib/php/thrift_protocol.ini b/lib/php/thrift_protocol.ini
new file mode 100644 (file)
index 0000000..a260d83
--- /dev/null
@@ -0,0 +1 @@
+extension=thrift_protocol.so