dnl
dnl This file contains local autoconf functions.
+sinclude(dynlib.m4)
+
dnl
dnl PHP_LIBGCC_LIBPATH(gcc)
dnl Stores the location of libgcc in libgcc_libpath
libgcc_libpath="`dirname $ac_data`"
])
+AC_DEFUN(PHP_ARG_ANALYZE,[
+case "[$]$1" in
+shared,*)
+ ext_output="yes, shared"
+ ext_shared=yes
+ $1=`echo $ac_n "[$]$1$ac_c"|sed s/^shared,//`
+ ;;
+shared)
+ ext_output="yes, shared"
+ ext_shared=yes
+ $1=yes
+ ;;
+no)
+ ext_output="no"
+ ext_shared=no
+ ;;
+*)
+ ext_output="yes"
+ ext_shared=no
+ ;;
+esac
+
+AC_MSG_RESULT($ext_output)
+])
+
dnl
dnl PHP_ARG_WITH(arg-name, check message, help text[, default-val])
dnl Sets PHP_ARG_NAME either to the user value or to the default value.
dnl default-val defaults to no.
dnl
AC_DEFUN(PHP_ARG_WITH,[
+PHP_REAL_ARG_WITH([$1],[$2],[$3],[$4],PHP_[]translit($1,a-z-,A-Z_))
+])
+
+AC_DEFUN(PHP_REAL_ARG_WITH,[
AC_MSG_CHECKING($2)
-AC_ARG_WITH($1,[$3],PHP_[]translit($1,a-z-,A-Z_)=[$]withval,PHP_[]translit($1,a-z-,A-Z_)=ifelse($4,,no,$4))
-AC_MSG_RESULT([$]PHP_[]translit($1,a-z-,A-Z_))
+AC_ARG_WITH($1,[$3],$5=[$]withval,$5=ifelse($4,,no,$4))
+PHP_ARG_ANALYZE($5)
])
dnl
dnl default-val defaults to no.
dnl
AC_DEFUN(PHP_ARG_ENABLE,[
+PHP_REAL_ARG_ENABLE([$1],[$2],[$3],[$4],PHP_[]translit($1,a-z-,A-Z_))
+])
+
+AC_DEFUN(PHP_REAL_ARG_ENABLE,[
AC_MSG_CHECKING($2)
-AC_ARG_ENABLE($1,[$3],PHP_[]translit($1,a-z-,A-Z_)=[$]enableval,PHP_[]translit($1,a-z-,A-Z_)=ifelse($4,,no,$4))
-AC_MSG_RESULT([$]PHP_[]translit($1,a-z-,A-Z_))
+AC_ARG_ENABLE($1,[$3],$5=[$]enableval,$5=ifelse($4,,no,$4))
+PHP_ARG_ANALYZE($5)
])
AC_DEFUN(PHP_MODULE_PTR,[
dnl a dynamically loadable library.
dnl
AC_DEFUN(PHP_EXTENSION,[
- if test -d "$abs_srcdir/ext/$1" ; then
- ext_src_base="$abs_srcdir/ext/$1/"
- ext_base="ext/$1/"
- EXT_SUBDIRS="$EXT_SUBDIRS $1"
- if test "$2" != "shared" && test "$2" != "yes" && test -z "$php_always_shared"; then
- _extlib="lib$1.a"
- EXT_LTLIBS="$EXT_LTLIBS ext/$1/lib$1.la"
- EXT_LIBS="$EXT_LIBS $1/$_extlib"
- EXT_STATIC="$EXT_STATIC $1"
- else
- AC_DEFINE_UNQUOTED([COMPILE_DL_]translit($1,a-z-,A-Z_), 1, Whether to build $1 as dynamic module)
- EXT_SHARED="$EXT_SHARED $1"
- fi
- PHP_FAST_OUTPUT(ext/$1/Makefile)
+ EXT_SUBDIRS="$EXT_SUBDIRS $1"
+
+ if test -d "$abs_srcdir/ext/$1"; then
+dnl ---------------------------------------------- Internal Module
+ ext_builddir="ext/$1"
+ ext_srcdir="$abs_srcdir/ext/$1"
+ else
+dnl ---------------------------------------------- External Module
+ ext_builddir="."
+ ext_srcdir="$abs_srcdir"
fi
+
+ if test "$2" != "shared" && test "$2" != "yes"; then
+dnl ---------------------------------------------- Static module
+ LIB_BUILD($ext_builddir)
+ EXT_LTLIBS="$EXT_LTLIBS $ext_builddir/lib$1.la"
+ EXT_STATIC="$EXT_STATIC $1"
+ else
+dnl ---------------------------------------------- Shared module
+ LIB_BUILD($ext_builddir,yes)
+ AC_DEFINE_UNQUOTED([COMPILE_DL_]translit($1,a-z-,A-Z_), 1, Whether to build $1 as dynamic module)
+ fi
+
+ PHP_FAST_OUTPUT($ext_builddir/Makefile)
])
PHP_SUBST(EXT_SUBDIRS)
targets = $(TOUCH_FILES) $(makefile_in_files) configure $(config_h_in)
-all: .deps Zend/Makefile.am TSRM/Makefile.am $(targets)
-
-.deps:
- @echo creating empty dependencies
- for i in `find ext sapi regex -type d \! -name \*CVS`; do \
- list="$$list $$i/.deps"; \
- done; \
- touch $$list pear/.deps ext/mysql/libmysql/.deps $@
+all: Zend/Makefile.am TSRM/Makefile.am $(targets)
Zend/Makefile.am:
test -d Zend || (test -d ../Zend && ln -s ../Zend Zend)
|| true >&2
@for i in $(LT_TARGETS); do mv $$i.bak $$i; done
-aclocal.m4: configure.in acinclude.m4
+aclocal.m4: configure.in acinclude.m4 dynlib.m4
aclocal
$(config_h_in): configure acconfig.h
--- /dev/null
+all: all-recursive
+
+include $(builddir)/libs.mk
+
+include $(top_srcdir)/build/rules.mk
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -f -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)
moduledir = $(libdir)/php/modules
.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .s .y .l
+.SUFFIXES: .slo .c .lo .o .s .y .l
.c.o:
$(COMPILE) -c $<
.s.o:
$(COMPILE) -c $<
-.S.o:
- $(COMPILE) -c $<
-
.c.lo:
$(PHP_COMPILE)
.s.lo:
$(PHP_COMPILE)
-.S.lo:
- $(PHP_COMPILE)
+.c.slo:
+ $(SHARED_COMPILE)
.y.c:
$(YACC) $(YFLAGS) $< && mv y.tab.c $*.c
distclean-recursive depend-recursive clean-recursive all-recursive install-recursive:
@otarget=`echo $@|sed s/-recursive//`; \
- if test '$(NO_RECURSION)' != "$$otarget"; then \
- list='$(SUBDIRS)'; for i in $$list; do \
- target="$$otarget"; \
- echo "Making $$target in $$i"; \
- if test "$$i" = "."; then \
- ok=yes; \
- target="$$target-p"; \
- fi; \
- (cd $$i && $(MAKE) $$target) || exit 1; \
- done; \
- if test "$$otarget" = "all" && test -z '$(targets)'; then ok=yes; fi; \
- if test "$$ok" != "yes"; then $(MAKE) "$$otarget-p" || exit 1; fi; \
- fi; \
- if test -n '$(make_shared)'; then \
- $(MAKE) shared || exit 1; \
- fi;
+ list='$(SUBDIRS)'; for i in $$list; do \
+ target="$$otarget"; \
+ echo "Making $$target in $$i"; \
+ if test "$$i" = "."; then \
+ ok=yes; \
+ target="$$target-p"; \
+ fi; \
+ if test ! -f $$i/.deps; then touch $$i/.deps; fi; \
+ (cd $$i && $(MAKE) $$target) || exit 1; \
+ done; \
+ if test "$$otarget" = "all" && test -z '$(targets)'; then ok=yes; fi; \
+ if test "$$ok" != "yes"; then $(MAKE) "$$otarget-p" || exit 1; fi
all-p: $(targets)
install-p: $(targets) $(install_targets)
distclean-p depend-p clean-p:
depend: depend-recursive
- test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) $(EXTRA_INCLUDES) *.c > .deps
+ test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) $(EXTRA_INCLUDES) *.c > $(builddir)/.deps
clean: clean-recursive clean-x
clean-x:
- rm -f $(targets) *.lo *.la *.o $(CLEANFILES)
+ rm -f $(targets) *.lo *.slo *.la *.o $(CLEANFILES)
rm -rf .libs
distclean: distclean-recursive clean-x
rm -f modules/*.la && \
cp modules/* $(moduledir) || true
-include $(srcdir)/.deps
+include $(builddir)/.deps
.PHONY: all-recursive clean-recursive install-recursive \
$(install_targets) install all clean depend depend-recursive shared \
phplibdir="`pwd`/modules"
+test -d $phplibdir || mkdir $phplibdir
phptempdir="`pwd`/libs"
AC_BUILD_RPATH
PHP_SUBST(PHP_VERSION)
PHP_SUBST(PROG_SENDMAIL)
PHP_SUBST(SHELL)
-PHP_SUBST(SHLIBTOOL)
+PHP_SUBST(SHARED_LIBTOOL)
PHP_SUBST(TSRM_DIR)
PHP_SUBST(TSRM_LIB)
PHP_SUBST(WARNING_LEVEL)
PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
if test "$enable_shared" = "yes"; then
- SHLIBTOOL='$(LIBTOOL)'
+ SHARED_LIBTOOL='$(LIBTOOL)'
else
- if test -n "$EXT_SHARED"; then
+ if test "$lib_build_shared" = "yes"; then
PHP_CONFIGURE_PART(Configuring shared libtool)
$SHELL $srcdir/ltconfig --output=shlibtool --disable-static --srcdir=$srcdir --cache-file=./config.cache $srcdir/ltmain.sh
- SHLIBTOOL='$(SHELL) $(top_builddir)/shlibtool'
+ SHARED_LIBTOOL='$(SHELL) $(top_builddir)/shlibtool'
else
PHP_COMPILE='$(COMPILE) -c $< && touch $@'
fi
PHP_CONFIGURE_PART(Generating files)
PHP_FAST_GENERATE
+touch .deps
#libphp4.module
AC_OUTPUT([php4.spec Zend/Makefile
--- /dev/null
+
+
+
+AC_DEFUN(LIB_SHARED_CONVENIENCE,[
+ 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)
+
+EOF
+])
+
+AC_DEFUN(LIB_SHARED_MODULE,[
+ 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=install cp \[$]@ \$(phplibdir)
+
+EOF
+])
+
+AC_DEFUN(LIB_STATIC_CONVENIENCE,[
+ lib_target="\$(LTLIBRARY_NAME)"
+ cat >>$1<<EOF
+\$(LTLIBRARY_NAME): \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
+ \$(LINK) \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_LIBADD)
+
+EOF
+])
+
+dnl LIB_BUILD(path, shared, convenience)
+dnl sets up path to build a shared/static convenience/module
+AC_DEFUN(LIB_BUILD,[
+ lib_makefile="$1/libs.mk"
+ lib_target=""
+
+ test -d $1 || $php_shtool mkdir -p $1
+ cat >$lib_makefile<<EOF
+LTLIBRARY_OBJECTS = \$(LTLIBRARY_SOURCES:.c=.lo)
+LTLIBRARY_SHARED_OBJECTS = \$(LTLIBRARY_OBJECTS:.lo=.slo)
+EOF
+
+ if test "$2" = "shared" || test "$2" = "yes"; then
+ lib_build_shared=yes
+ if test -n "$3"; then
+dnl ---------------------------------------- Shared Convenience
+ LIB_SHARED_CONVENIENCE($lib_makefile)
+ else
+dnl ---------------------------------------- Shared Module
+ LIB_SHARED_MODULE($lib_makefile)
+ fi
+ else
+dnl ---------------------------------------- Static Convenience = Static Module
+ LIB_STATIC_CONVENIENCE($lib_makefile)
+ fi
+
+dnl ---------------------------------------- Generate build targets
+ if test -n "$lib_target"; then
+ cat >>$lib_makefile<<EOF
+targets = $lib_target
+EOF
+ fi
+])
-SUBDIRS = $(EXT_STATIC) $(EXT_SHARED)
+SUBDIRS = $(EXT_SUBDIRS)
-all:
- @list='$(EXT_STATIC)'; for i in $$list; do \
- echo "Making all in $$i"; \
- (cd $$i && $(MAKE) all) || exit 1; \
- done
- @list='$(EXT_SHARED)'; for i in $$list; do \
- echo "Making shared in $$i"; \
- (cd $$i && $(MAKE) shared) || exit 1; \
- done
-
-NO_RECURSION = all
-
include $(top_srcdir)/build/rules.mk
LTLIBRARY_NAME = libaspell.la
LTLIBRARY_SOURCES = aspell.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libbcmath.la
LTLIBRARY_SOURCES = bcmath.c number.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libcalendar.la
LTLIBRARY_SOURCES = calendar.c dow.c french.c gregor.c jewish.c julian.c easter.c cal_unix.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libcpdf.la
LTLIBRARY_SOURCES = cpdf.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libcybercash.la
LTLIBRARY_SOURCES = cybercash.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libdav.la
LTLIBRARY_SOURCES = dav.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libdb.la
LTLIBRARY_SOURCES = db.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_SOURCES = dba.c dba_cdb.c dba_db2.c dba_dbm.c dba_gdbm.c \
dba_ndbm.c dba_db3.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libdbase.la
LTLIBRARY_SOURCES = dbf_head.c dbf_rec.c dbf_misc.c dbf_ndx.c dbase.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libdomxml.la
LTLIBRARY_SOURCES = domxml.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
if test "\$PHP_$EXTNAME" != "no"; then
dnl Action..
- PHP_EXTENSION($extname)
+ PHP_EXTENSION($extname, \$ext_shared)
fi
eof
cat >Makefile.in <<eof
# \$Id\$
-LTLIBRARY_NAME = lib$extname.la
-LTLIBRARY_SOURCES = $extname.c
+LTLIBRARY_NAME = lib$extname.la
+LTLIBRARY_SOURCES = $extname.c
+LTLIBRARY_SHARED_NAME = $extname.la
-include \$(top_srcdir)/build/ltlib.mk
+include \$(top_srcdir)/build/dynlib.mk
eof
*.lo
*.la
.libs
+libs.mk
eof
chmod 644 *
LTLIBRARY_NAME = libfdf.la
LTLIBRARY_SOURCES = fdf.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libfilepro.la
LTLIBRARY_SOURCES = filepro.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libftp.la
LTLIBRARY_SOURCES = php_ftp.c ftp.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_SHARED_NAME = gd.la
LTLIBRARY_SHARED_LIBADD = $(GD_LFLAGS) $(GD_LIBS)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libgettext.la
LTLIBRARY_SOURCES = gettext.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libhyperwave.la
LTLIBRARY_SOURCES = hw.c hg_comm.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libicap.la
LTLIBRARY_SOURCES = php_icap.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libimap.la
LTLIBRARY_SOURCES = php_imap.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_LIBADD = $(IFX_LIBS)
CLEANFILES = ifx.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
ifx.c: $(srcdir)/ifx.ec
(if test -d $(INFORMIXDIR); then \
LTLIBRARY_NAME = libinterbase.la
LTLIBRARY_SOURCES = interbase.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
make_shared = yes
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
php_java.jar : reflect.java
@test -d net || mkdir net
LTLIBRARY_NAME = libldap.la
LTLIBRARY_SOURCES = ldap.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libmcal.la
LTLIBRARY_SOURCES = php_mcal.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libmcrypt.la
LTLIBRARY_SOURCES = mcrypt.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libmhash.la
LTLIBRARY_SOURCES = mhash.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libmsql.la
LTLIBRARY_SOURCES = php_msql.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_SOURCES = php_mysql.c
LTLIBRARY_LIBADD = $(MYSQL_LIBADD)
LTLIBRARY_SHARED_NAME = mysql.la
-LTLIBRARY_SHARED_LIBADD = $(MYSQL_LFLAGS) -lmysqlclient
+LTLIBRARY_SHARED_LIBADD = $(MYSQL_SHARED_LIBADD)
SUBDIRS = $(MYSQL_SUBDIRS)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
if test "$PHP_MYSQL" != "no"; then
AC_DEFINE(HAVE_MYSQL, 1, [Whether you have MySQL])
- PHP_EXTENSION(mysql)
+ PHP_EXTENSION(mysql,$ext_shared)
fi
if test "$PHP_MYSQL" = "yes"; then
PHP_MYSQL_SOCK
MYSQL_CHECKS
MYSQL_LIBADD=libmysql/libmysql_client.la
+ MYSQL_SHARED_LIBADD=libmysql/libmysql_client.la
MYSQL_SUBDIRS=libmysql
PHP_SUBST(MYSQL_LIBADD)
PHP_SUBST(MYSQL_SUBDIRS)
-
- AC_ADD_INCLUDE(${ext_src_base}libmysql)
+ LIB_BUILD($ext_builddir/libmysql,$ext_shared,yes)
+ AC_ADD_INCLUDE($ext_srcdir/libmysql)
elif test "$PHP_MYSQL" != "no"; then
for i in $PHP_MYSQL; do
if test -r $i/include/mysql/mysql.h; then
AC_MSG_ERROR(Cannot find header files under $PHP_MYSQL)
fi
- AC_ADD_LIBPATH($MYSQL_DIR/lib/mysql)
- AC_ADD_LIBRARY(mysqlclient)
+
+ if test "$ext_shared" = "yes"; then
+ MYSQL_SHARED_LIBADD="-R$MYSQL_DIR/lib/mysql -L$MYSQL_DIR/lib/mysql -lmysqlclient"
+ else
+ AC_ADD_LIBPATH($MYSQL_DIR/lib/mysql)
+ AC_ADD_LIBRARY(mysqlclient)
+ fi
+
AC_ADD_INCLUDE($MYSQL_INC_DIR)
fi
+PHP_SUBST(MYSQL_SHARED_LIBADD)
strcont.c strcend.c bchange.c bmove.c bmove_upp.c \
longlong2str.c strtoull.c strtoll.c ctype-latin1.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_SHARED_NAME = oci8.la
LTLIBRARY_SHARED_LIBADD = $(OCI8_LFLAGS) $(OCI8_LIBS)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libodbc.la
LTLIBRARY_SOURCES = php_odbc.c velocis.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = liboracle.la
LTLIBRARY_SOURCES = oracle.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libpcre.la
LTLIBRARY_SOURCES = php_pcre.c
LTLIBRARY_LIBADD = $(PCRE_LIBADD)
+LTLIBRARY_SHARED_NAME = pcre.la
+LTLIBRARY_SHARED_LIBADD = $(PCRE_SHARED_LIBADD)
SUBDIRS = $(PCRE_SUBDIRS)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
dnl By default we'll compile and link against the bundled PCRE library
dnl if DIR is supplied, we'll use that for linking
-AC_MSG_CHECKING(whether to include PCRE support)
-AC_ARG_WITH(pcre-regex,
+PHP_ARG_WITH(pcre-regex,whether to include PCRE support,
[ --without-pcre-regex Do not include Perl Compatible Regular Expressions
support. Use --with-pcre-regex=DIR to specify DIR
where PCRE's include and library files are located,
- if not using bundled library.],
-[
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- yes)
- EXTRA_LIBS="-L$abs_builddir/ext/pcre/pcrelib -lpcre $EXTRA_LIBS"
- PCRE_SUBDIR="pcrelib"
- AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- PHP_FAST_OUTPUT(ext/pcre/pcrelib/Makefile)
- ;;
- *)
- test -f $withval/pcre.h && PCRE_INCDIR="$withval"
- test -f $withval/include/pcre.h && PCRE_INCDIR="$withval/include"
+ if not using bundled library.],yes)
- if test -n "$PCRE_INCDIR" ; then
- changequote({,})
- pcre_major=`grep PCRE_MAJOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
- pcre_minor=`grep PCRE_MINOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
- changequote([,])
- pcre_minor_length=`echo "$pcre_minor" | wc -c | sed -e 's/[^0-9]//g'`
- if test "$pcre_minor_length" -eq 2 ; then
- pcre_minor="$pcre_minor"0
- fi
- pcre_version=$pcre_major$pcre_minor
- if test "$pcre_version" -ge 208; then
- AC_ADD_INCLUDE($PCRE_INCDIR)
- else
- AC_MSG_ERROR(PCRE extension requires PCRE library version >= 2.08)
- fi
- else
- AC_MSG_ERROR(Could not find pcre.h in $withval)
- fi
+if test "$PHP_PCRE_REGEX" != "no"; then
+ PHP_EXTENSION(pcre, $ext_shared)
+ if test "$PHP_PCRE_REGEX" = "yes"; then
+ PCRE_LIBADD=pcrelib/libpcre.la
+ PCRE_SHARED_LIBADD=pcrelib/libpcre.la
+ PCRE_SUBDIRS=pcrelib
+ PHP_SUBST(PCRE_LIBADD)
+ PHP_SUBST(PCRE_SUBDIRS)
+ AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
+ PHP_FAST_OUTPUT($ext_builddir/pcrelib/Makefile)
+ LIB_BUILD($ext_builddir/pcrelib,$ext_shared,yes)
+ else
+ test -f $PHP_PCRE_REGEX/pcre.h && PCRE_INCDIR=$PHP_PCRE_REGEX
+ test -f $PHP_PCRE_REGEX/include/pcre.h && PCRE_INCDIR=$PHP_PCRE_REGEX/include
+
+ if test -z "$PCRE_INCDIR"; then
+ AC_MSG_RESULT(Could not find pcre.h in $PHP_PCRE_REGEX)
+ fi
- test -f $withval/libpcre.a && PCRE_LIBDIR="$withval"
- test -f $withval/lib/libpcre.a && PCRE_LIBDIR="$withval/lib"
- if test -n "$PCRE_LIBDIR" ; then
- AC_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR)
- else
- AC_MSG_ERROR(Could not find libpcre.a in $withval)
- fi
+ changequote({,})
+ pcre_major=`grep PCRE_MAJOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
+ pcre_minor=`grep PCRE_MINOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
+ changequote([,])
+ pcre_minor_length=`echo "$pcre_minor" | wc -c | sed -e 's/[^0-9]//g'`
+ if test "$pcre_minor_length" -eq 2 ; then
+ pcre_minor="$pcre_minor"0
+ fi
+ pcre_version=$pcre_major$pcre_minor
+ if test "$pcre_version" -lt 208; then
+ AC_MSG_ERROR(The PCRE extension requires PCRE library version >= 2.08)
+ fi
+
+ test -f $PHP_PCRE_REGEX/libpcre.a && PCRE_LIBDIR="$PHP_PCRE_REGEX"
+ test -f $PHP_PCRE_REGEX/lib/libpcre.a && PCRE_LIBDIR="$PHP_PCRE_REGEX/lib"
+
+ if test -z "$PCRE_LIBDIR" ; then
+ AC_MSG_ERROR(Could not find libpcre.a in $PHP_PCRE_REGEX)
+ fi
+
+ if test "$ext_shared" = "yes"; then
+ PCRE_SHARED_LIBADD="-R$PCRE_LIBDIR -L$PCRE_LIBDIR -lpcre"
+ else
+ AC_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR)
+ fi
+
+ AC_ADD_INCLUDE($PCRE_INCDIR)
+ AC_DEFINE(HAVE_PCRE, 1, [ ])
+ fi
+fi
+PHP_SUBST(PCRE_SHARED_LIBADD)
- AC_DEFINE(HAVE_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- ;;
- esac
-],[
- PCRE_LIBADD=pcrelib/libpcre.la
- PCRE_SUBDIRS=pcrelib
- AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- PHP_FAST_OUTPUT(ext/pcre/pcrelib/Makefile)
-])
-PHP_SUBST(PCRE_LIBADD)
-PHP_SUBST(PCRE_SUBDIRS)
AC_CHECK_FUNC(memmove, [], [AC_DEFINE(USE_BCOPY, 1, [ ])])
dnl By default we'll compile and link against the bundled PCRE library
dnl if DIR is supplied, we'll use that for linking
-AC_MSG_CHECKING(whether to include PCRE support)
-AC_ARG_WITH(pcre-regex,
+PHP_ARG_WITH(pcre-regex,whether to include PCRE support,
[ --without-pcre-regex Do not include Perl Compatible Regular Expressions
support. Use --with-pcre-regex=DIR to specify DIR
where PCRE's include and library files are located,
- if not using bundled library.],
-[
- case "$withval" in
- no)
- AC_MSG_RESULT(no)
- ;;
- yes)
- EXTRA_LIBS="-L$abs_builddir/ext/pcre/pcrelib -lpcre $EXTRA_LIBS"
- PCRE_SUBDIR="pcrelib"
- AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- PHP_FAST_OUTPUT(ext/pcre/pcrelib/Makefile)
- ;;
- *)
- test -f $withval/pcre.h && PCRE_INCDIR="$withval"
- test -f $withval/include/pcre.h && PCRE_INCDIR="$withval/include"
+ if not using bundled library.],yes)
- if test -n "$PCRE_INCDIR" ; then
- changequote({,})
- pcre_major=`grep PCRE_MAJOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
- pcre_minor=`grep PCRE_MINOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
- changequote([,])
- pcre_minor_length=`echo "$pcre_minor" | wc -c | sed -e 's/[^0-9]//g'`
- if test "$pcre_minor_length" -eq 2 ; then
- pcre_minor="$pcre_minor"0
- fi
- pcre_version=$pcre_major$pcre_minor
- if test "$pcre_version" -ge 208; then
- AC_ADD_INCLUDE($PCRE_INCDIR)
- else
- AC_MSG_ERROR(PCRE extension requires PCRE library version >= 2.08)
- fi
- else
- AC_MSG_ERROR(Could not find pcre.h in $withval)
- fi
+if test "$PHP_PCRE_REGEX" != "no"; then
+ PHP_EXTENSION(pcre, $ext_shared)
+ if test "$PHP_PCRE_REGEX" = "yes"; then
+ PCRE_LIBADD=pcrelib/libpcre.la
+ PCRE_SHARED_LIBADD=pcrelib/libpcre.la
+ PCRE_SUBDIRS=pcrelib
+ PHP_SUBST(PCRE_LIBADD)
+ PHP_SUBST(PCRE_SUBDIRS)
+ AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
+ PHP_FAST_OUTPUT($ext_builddir/pcrelib/Makefile)
+ LIB_BUILD($ext_builddir/pcrelib,$ext_shared,yes)
+ else
+ test -f $PHP_PCRE_REGEX/pcre.h && PCRE_INCDIR=$PHP_PCRE_REGEX
+ test -f $PHP_PCRE_REGEX/include/pcre.h && PCRE_INCDIR=$PHP_PCRE_REGEX/include
+
+ if test -z "$PCRE_INCDIR"; then
+ AC_MSG_RESULT(Could not find pcre.h in $PHP_PCRE_REGEX)
+ fi
- test -f $withval/libpcre.a && PCRE_LIBDIR="$withval"
- test -f $withval/lib/libpcre.a && PCRE_LIBDIR="$withval/lib"
- if test -n "$PCRE_LIBDIR" ; then
- AC_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR)
- else
- AC_MSG_ERROR(Could not find libpcre.a in $withval)
- fi
+ changequote({,})
+ pcre_major=`grep PCRE_MAJOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
+ pcre_minor=`grep PCRE_MINOR $PCRE_INCDIR/pcre.h | sed -e 's/[^0-9]//g'`
+ changequote([,])
+ pcre_minor_length=`echo "$pcre_minor" | wc -c | sed -e 's/[^0-9]//g'`
+ if test "$pcre_minor_length" -eq 2 ; then
+ pcre_minor="$pcre_minor"0
+ fi
+ pcre_version=$pcre_major$pcre_minor
+ if test "$pcre_version" -lt 208; then
+ AC_MSG_ERROR(The PCRE extension requires PCRE library version >= 2.08)
+ fi
+
+ test -f $PHP_PCRE_REGEX/libpcre.a && PCRE_LIBDIR="$PHP_PCRE_REGEX"
+ test -f $PHP_PCRE_REGEX/lib/libpcre.a && PCRE_LIBDIR="$PHP_PCRE_REGEX/lib"
+
+ if test -z "$PCRE_LIBDIR" ; then
+ AC_MSG_ERROR(Could not find libpcre.a in $PHP_PCRE_REGEX)
+ fi
+
+ if test "$ext_shared" = "yes"; then
+ PCRE_SHARED_LIBADD="-R$PCRE_LIBDIR -L$PCRE_LIBDIR -lpcre"
+ else
+ AC_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR)
+ fi
+
+ AC_ADD_INCLUDE($PCRE_INCDIR)
+ AC_DEFINE(HAVE_PCRE, 1, [ ])
+ fi
+fi
+PHP_SUBST(PCRE_SHARED_LIBADD)
- AC_DEFINE(HAVE_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- ;;
- esac
-],[
- PCRE_LIBADD=pcrelib/libpcre.la
- PCRE_SUBDIRS=pcrelib
- AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
- AC_MSG_RESULT(yes)
- PHP_EXTENSION(pcre)
- PHP_FAST_OUTPUT(ext/pcre/pcrelib/Makefile)
-])
-PHP_SUBST(PCRE_LIBADD)
-PHP_SUBST(PCRE_SUBDIRS)
AC_CHECK_FUNC(memmove, [], [AC_DEFINE(USE_BCOPY, 1, [ ])])
LTLIBRARY_NAME = libpcre.la
LTLIBRARY_SOURCES = maketables.c get.c study.c pcre.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
STANDARD_MODULE_PROPERTIES
};
+#ifdef COMPILE_DL_PCRE
+ZEND_DLEXPORT zend_module_entry *get_module(void) { return &pcre_module_entry; }
+#endif
+
/* }}} */
LTLIBRARY_NAME = libpdf.la
LTLIBRARY_SOURCES = pdf.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
EXTRA_INCLUDES = $(PGSQL_INCLUDE)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libposix.la
LTLIBRARY_SOURCES = posix.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libreadline.la
LTLIBRARY_SOURCES = readline.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = librecode.la
LTLIBRARY_SOURCES = recode.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
make_shared = yes
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
php_java.jar : reflect.java
@test -d net || mkdir net
make_shared = yes
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
php_java.jar : reflect.java
@test -d net || mkdir net
LTLIBRARY_NAME = libsession.la
LTLIBRARY_SOURCES = session.c mod_files.c mod_mm.c mod_user.c
+LTLIBRARY_SHARED_NAME = session.la
+LTLIBRARY_SHARED_LIBADD = $(SESSION_LIBADD)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
PHP_ARG_WITH(mm,for mm support,
[ --with-mm[=DIR] Include mm support for session storage])
-PHP_ARG_ENABLE(session, whether to enable session support,
-[ --disable-session Disable session support], yes)
-
PHP_ARG_ENABLE(trans-sid,whether to enable transparent session id propagation,
[ --enable-trans-sid Enable transparent session id propagation])
+PHP_ARG_ENABLE(session, whether to enable session support,
+[ --disable-session Disable session support], yes)
+
if test "$PHP_MM" != "no"; then
for i in /usr/local /usr $PHP_MM; do
if test -f "$i/include/mm.h"; then
if test -z "$MM_DIR" ; then
AC_MSG_ERROR(cannot find mm library)
fi
-
- AC_ADD_LIBRARY_WITH_PATH(mm, $MM_DIR/lib)
+
+ if test "$ext_shared" = "yes"; then
+ PHP_SUBST(SESSION_LIBADD)
+ SESSION_LIBADD="-R$MM_DIR/lib -L$MM_DIR/lib -lmm"
+ else
+ AC_ADD_LIBRARY_WITH_PATH(mm, $MM_DIR/lib)
+ fi
AC_ADD_INCLUDE($MM_DIR/include)
AC_DEFINE(HAVE_LIBMM, 1, [Whether you have libmm])
PHP_MODULE_PTR(phpext_ps_mm_ptr)
AC_DEFINE(TRANS_SID, 1, [Whether you want transparent session id propagation])
fi
-if test "$PHP_SESSION" = "yes"; then
- PHP_EXTENSION(session)
+if test "$PHP_SESSION" != "no"; then
+ PHP_EXTENSION(session,$ext_shared)
fi
STANDARD_MODULE_PROPERTIES
};
+#ifdef COMPILE_DL_SESSION
+ZEND_DLEXPORT zend_module_entry *get_module(void) { return &session_module_entry; }
+#endif
+
typedef struct {
char *name;
void (*func)(PSLS_D);
EXTRA_INCLUDES = $(SNMP_INCLUDE)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
syslog.c type.c uniqid.c url.c url_scanner.c var.c output.c assert.c \
strnatcmp.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
parsedate.c: $(srcdir)/parsedate.y
LTLIBRARY_NAME = libswf.la
LTLIBRARY_SOURCES = swf.c
+LTLIBRARY_SHARED_NAME = swf.la
+LTLIBRARY_SHARED_LIBADD = $(SWF_SHARED_LIBADD)
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
dnl in php4/ext/mcrypt
PHP_ARG_WITH(swf, for libswf support,
-[ --with-swf[=DIR] Include swf support])
+[ --with-swf[=DIR] Include swf support])
if test "$PHP_SWF" != "no"; then
for i in /usr/local /usr $PHP_SWF; do
- if test -f $i/libswf.a; then
+ if test -r $i/libswf.a; then
SWF_DIR=$i
fi
done
if test -z "$SWF_DIR"; then
AC_MSG_ERROR(Please reinstall libswf.a - I cannot find libswf.a)
fi
+
AC_ADD_INCLUDE($SWF_DIR)
- AC_ADD_LIBRARY_WITH_PATH(swf, $SWF_DIR)
+ if test "$ext_shared" = "yes"; then
+ SWF_SHARED_LIBADD="-R$SWF_DIR -L$SWF_DIR -lswf"
+ PHP_SUBST(SWF_SHARED_LIBADD)
+ else
+ AC_ADD_LIBRARY_WITH_PATH(swf, $SWF_DIR)
+ fi
AC_DEFINE(HAVE_SWF,1,[ ])
- PHP_EXTENSION(swf)
+ PHP_EXTENSION(swf, $ext_shared)
fi
#ifndef _PHP_SWF_H
#define _PHP_SWF_H
-#if COMPILE_DL
+#ifdef COMPILE_DL_SWF
#undef HAVE_SWF
#define HAVE_SWF 1
#endif
STANDARD_MODULE_PROPERTIES
};
+#ifdef COMPILE_DL_SWF
+ZEND_DLEXPORT zend_module_entry *get_module(void) { return &swf_module_entry; }
+#endif
+
PHP_MINFO_FUNCTION(swf)
{
php_info_print_table_start();
}
/* }}} */
-#endif
\ No newline at end of file
+#endif
LTLIBRARY_NAME = libsybase.la
LTLIBRARY_SOURCES = sybase.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libsybase_ct.la
LTLIBRARY_SOURCES = php_sybase_ct.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libsysvsem.la
LTLIBRARY_SOURCES = sysvsem.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libsysvshm.la
LTLIBRARY_SOURCES = sysvshm.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libwddx.la
LTLIBRARY_SOURCES = wddx.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
SUBDIRS = expat
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
order=12
fi
-AC_MSG_CHECKING(for XML support)
-AC_ARG_ENABLE(xml,
-[ --disable-xml Disable XML support using bundled expat lib],[
- PHP_XML=$enableval
-],[
- PHP_XML=yes
-])
-AC_MSG_RESULT($PHP_XML)
+PHP_ARG_ENABLE(xml,for XML support,
+[ --disable-xml Disable XML support using bundled expat lib], yes)
if test "$PHP_XML" != "no"; then
AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
CPPFLAGS="$CPPFLAGS -DXML_BYTE_ORDER=$order"
- if test "$PHP_XML" = "shared"; then
- shared=yes
- else
- shared=
- fi
- PHP_EXTENSION(xml, $shared)
- AC_ADD_INCLUDE(${ext_src_base}expat/xmltok)
- AC_ADD_INCLUDE(${ext_src_base}expat/xmlparse)
- PHP_FAST_OUTPUT(${ext_base}expat/Makefile ${ext_base}expat/xmlparse/Makefile ${ext_base}expat/xmltok/Makefile)
+ PHP_EXTENSION(xml, $ext_shared)
+ LIB_BUILD($ext_builddir/expat,$ext_shared,yes)
+ LIB_BUILD($ext_builddir/expat/xmlparse,$ext_shared,yes)
+ LIB_BUILD($ext_builddir/expat/xmltok,$ext_shared,yes)
+ AC_ADD_INCLUDE($ext_srcdir/expat/xmltok)
+ AC_ADD_INCLUDE($ext_srcdir/expat/xmlparse)
+ PHP_FAST_OUTPUT($ext_builddir/expat/Makefile $ext_builddir/expat/xmlparse/Makefile $ext_builddir/expat/xmltok/Makefile)
fi
SUBDIRS = xmltok xmlparse
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
EXTRA_INCLUDES = -I$(srcdir)/../xmltok
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libexpat_tok.la
LTLIBRARY_SOURCES = xmltok.c xmlrole.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libyp.la
LTLIBRARY_SOURCES = yp.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk
LTLIBRARY_NAME = libzlib.la
LTLIBRARY_SOURCES = zlib.c
-include $(top_srcdir)/build/ltlib.mk
+include $(top_srcdir)/build/dynlib.mk