cvs: php4 / acinclude.m4 configure.in dynlib.m4 /build library.mk rules.mk
| From: | Sascha Schumann | Date: | Sun, 09 Jul 2000 20:39:18 +0000 |
| Subject: | cvs: php4 / acinclude.m4 configure.in dynlib.m4 /build library.mk rules.mk | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-691@lists.php.net to get a copy of this message | ||
sas Sun Jul 9 13:39:18 2000 EDT
Modified files:
/php4 acinclude.m4 configure.in dynlib.m4
/php4/build library.mk rules.mk
Log:
Add support for building C++ sources.
In your extension's config.m4, you need to use the m4 macro
PHP_REQUIRE_CXX
This shall be called only, if your extension is enabled.
C++ source files shall not be put into the LTLIBRARY_SOURCES macro.
Instead, the filename of the object shall be put into
LTLIBRARY_OBJECTS_X. I.e. if your extension foo consists of foo.cxx, use
LTLIBRARY_OBJECTS_X = foo.lo
Index: php4/acinclude.m4
diff -u php4/acinclude.m4:1.98 php4/acinclude.m4:1.99
--- php4/acinclude.m4:1.98 Sat Jun 17 09:13:11 2000
+++ php4/acinclude.m4 Sun Jul 9 13:39:18 2000
@@ -1,4 +1,4 @@
-dnl $Id: acinclude.m4,v 1.98 2000/06/17 16:13:11 andrei Exp $
+dnl $Id: acinclude.m4,v 1.99 2000/07/09 20:39:18 sas Exp $
dnl
dnl This file contains local autoconf functions.
@@ -417,6 +417,14 @@
enable_experimental_zts=yes
if test "$pthreads_working" != "yes"; then
AC_MSG_ERROR(ZTS currently requires working POSIX threads. Your system does not support this.)
+ fi
+])
+
+AC_DEFUN(PHP_REQUIRE_CXX,[
+ if test -z "$php_cxx_done"; then
+ AC_PROG_CXX
+ AC_PROG_CXXCPP
+ php_cxx_done=yes
fi
])
Index: php4/configure.in
diff -u php4/configure.in:1.156 php4/configure.in:1.157
--- php4/configure.in:1.156 Thu Jun 29 10:37:58 2000
+++ php4/configure.in Sun Jul 9 13:39:18 2000
@@ -1,4 +1,4 @@
-dnl ## $Id: configure.in,v 1.156 2000/06/29 17:37:58 thies Exp $ -*- sh -*-
+dnl ## $Id: configure.in,v 1.157 2000/07/09 20:39:18 sas Exp $ -*- sh -*-
dnl ## Process this file with autoconf to produce a configure script.
divert(1)
@@ -694,6 +694,7 @@
PHP_SUBST(CPP)
PHP_SUBST(CPPFLAGS)
PHP_SUBST(CXX)
+PHP_SUBST(CXXFLAGS)
PHP_SUBST(DEBUG_CFLAGS)
PHP_SUBST(DEFS)
PHP_SUBST(EXTENSION_DIR)
@@ -751,6 +752,7 @@
fi
PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
+CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
if test "$enable_shared" = "yes"; then
SHARED_LIBTOOL='$(LIBTOOL)'
@@ -761,6 +763,7 @@
SHARED_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool'
else
PHP_COMPILE='$(COMPILE) -c $< && touch $@'
+ CXX_PHP_COMPILE='$(CXX_COMPILE) -c $< && touch $@'
fi
fi
Index: php4/dynlib.m4
diff -u php4/dynlib.m4:1.2 php4/dynlib.m4:1.3
--- php4/dynlib.m4:1.2 Fri May 12 00:37:41 2000
+++ php4/dynlib.m4 Sun Jul 9 13:39:18 2000
@@ -5,7 +5,7 @@
lib_target="\$(LTLIBRARY_NAME)"
cat >>$1<<EOF
\$(LTLIBRARY_NAME): \$(LTLIBRARY_SHARED_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
- \$(SHARED_LIBTOOL) --mode=link \$(CCLD) \$(CFLAGS) \$(EXTRA_CFLAGS) \$(LDFLAGS) -o \[$]@
\$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_SHARED_LIBADD)
+ \$(SHARED_LIBTOOL) --mode=link \$(COMPILE) \$(LDFLAGS) -o \[$]@ \$(LTLIBRARY_LDFLAGS)
\$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_SHARED_LIBADD)
EOF
])
@@ -14,7 +14,7 @@
lib_target="\$(LTLIBRARY_SHARED_NAME)"
cat >>$1<<EOF
\$(LTLIBRARY_SHARED_NAME): \$(LTLIBRARY_SHARED_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
- \$(SHARED_LIBTOOL) --mode=link \$(CCLD) \$(CFLAGS) \$(EXTRA_CFLAGS) \$(LDFLAGS) -o \[$]@
-avoid-version -module -rpath \$(phplibdir) \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS)
\$(LTLIBRARY_SHARED_LIBADD)
+ \$(SHARED_LIBTOOL) --mode=link \$(COMPILE) \$(LDFLAGS) -o \[$]@ -avoid-version -module -rpath
\$(phplibdir) \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_SHARED_LIBADD)
\$(SHARED_LIBTOOL) --mode=install cp \[$]@ \$(phplibdir)
EOF
@@ -37,7 +37,7 @@
$php_shtool mkdir -p $1
cat >$lib_makefile<<EOF
-LTLIBRARY_OBJECTS = \$(LTLIBRARY_SOURCES:.c=.lo)
+LTLIBRARY_OBJECTS = \$(LTLIBRARY_SOURCES:.c=.lo) \$(LTLIBRARY_OBJECTS_X)
LTLIBRARY_SHARED_OBJECTS = \$(LTLIBRARY_OBJECTS:.lo=.slo)
EOF
Index: php4/build/library.mk
diff -u php4/build/library.mk:1.6 php4/build/library.mk:1.7
--- php4/build/library.mk:1.6 Sun Apr 30 19:57:24 2000
+++ php4/build/library.mk Sun Jul 9 13:39:18 2000
@@ -21,10 +21,10 @@
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
##############################################################################
-# $Id: library.mk,v 1.6 2000/05/01 02:57:24 sas Exp $
+# $Id: library.mk,v 1.7 2000/07/09 20:39:18 sas Exp $
#
-LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo)
+LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo) $(LTLIBRARY_OBJECTS_X)
$(LTLIBRARY_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES)
$(LINK) $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_LIBADD)
Index: php4/build/rules.mk
diff -u php4/build/rules.mk:1.18 php4/build/rules.mk:1.19
--- php4/build/rules.mk:1.18 Sun Jun 11 12:53:19 2000
+++ php4/build/rules.mk Sun Jul 9 13:39:18 2000
@@ -21,40 +21,54 @@
# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
##############################################################################
-# $Id: rules.mk,v 1.18 2000/06/11 19:53:19 rasmus Exp $
+# $Id: rules.mk,v 1.19 2000/07/09 20:39:18 sas Exp $
#
include $(top_builddir)/config_vars.mk
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS)
$(CFLAGS) $(EXTRA_CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@
+COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS)
+COMPILE = $(CC) $(COMMON_FLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
+CXX_COMPILE = $(CXX) $(COMMON_FLAGS) $(CXXFLAGS) $(EXTRA_CXXFLAGS)
+
+SHARED_COMPILE = $(SHARED_LIBTOOL) --mode=compile $(COMPILE) -c $< && touch $@
+CXX_SHARED_COMPILE = $(SHARED_LIBTOOL) --mode=compile $(CXX_COMPILE) -c $< && touch $@
+
+LINK = $(LIBTOOL) --mode=link $(COMPILE) $(LDFLAGS) -o $@
+
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
-SHARED_COMPILE = $(SHARED_LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES)
$(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c $< && touch $@
+
DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I$(top_builddir) -I$(top_builddir)/main
moduledir = $(EXTENSION_DIR)
.SUFFIXES:
-.SUFFIXES: .slo .c .lo .o .s .y .l
+.SUFFIXES: .slo .c .cxx .lo .o .s .y .l
.c.o:
$(COMPILE) -c $<
+.cxx.o:
+ $(CXX_COMPILE) -c $<
+
.s.o:
$(COMPILE) -c $<
.c.lo:
$(PHP_COMPILE)
+.cxx.lo:
+ $(CXX_PHP_COMPILE)
+
.s.lo:
$(PHP_COMPILE)
.c.slo:
$(SHARED_COMPILE)
+
+.cxx.slo:
+ $(CXX_SHARED_COMPILE)
.y.c:
$(YACC) $(YFLAGS) $< && mv y.tab.c $*.c