From f2f8d38efa3ccbaa05affaf8fcab24786ef452de Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Thu, 30 Dec 1999 02:59:53 +0000 Subject: [PATCH] Integration of -ng changes. Changes: - added support for externally built modules, - improved support for in-tree shared modules, - fixed diversion bugs, - configure displays some informative messages, - faster static build (libtool isn't used anymore for compiling non-PIC objects), - dependencies comparable to automake's without requiring GNU make or GCC, - working make clean for non-GNU makes. --- Makefile.am | 41 - Makefile.in | 54 ++ acinclude.m4 | 176 ++++- build.mk | 49 -- build/build.mk | 78 ++ build/build2.mk | 88 +++ buildcheck.sh => build/buildcheck.sh | 0 build/fastgen.sh | 51 ++ build/library.mk | 42 ++ build/ltlib.mk | 31 + build/mkdep.perl | 91 +++ build/program.mk | 30 + build/rules.mk | 106 +++ build/rules_pear.mk | 114 +++ build/shtool | 707 ++++++++++++++++++ build2.mk | 56 -- buildconf | 2 +- configure.in | 211 +++--- ext/Makefile.am | 3 - ext/Makefile.in | 21 + ext/apache/Makefile.am | 5 - ext/apache/Makefile.in | 10 + ext/aspell/Makefile.am | 5 - ext/aspell/Makefile.in | 10 + ext/bcmath/Makefile.am | 5 - ext/bcmath/Makefile.in | 11 + ext/cpdf/Makefile.am | 5 - ext/cpdf/Makefile.in | 10 + ext/cybercash/Makefile.am | 2 - ext/cybercash/Makefile.in | 10 + ext/dav/Makefile.am | 5 - ext/dav/Makefile.in | 10 + ext/db/Makefile.am | 5 - ext/db/Makefile.in | 10 + ext/db/config.m4 | 8 +- ext/dba/Makefile.am | 6 - ext/dba/Makefile.in | 11 + ext/dbase/Makefile.am | 3 - ext/dbase/Makefile.in | 10 + ext/dbase/config.m4 | 3 - ext/domxml/Makefile.am | 5 - ext/domxml/Makefile.in | 10 + ext/ereg/regex/Makefile.am | 3 - ext/ereg/regex/Makefile.in | 10 + ext/ext_skel | 14 +- ext/fdf/Makefile.am | 5 - ext/fdf/Makefile.in | 10 + ext/filepro/Makefile.am | 5 - ext/filepro/Makefile.in | 10 + ext/ftp/Makefile.am | 4 - ext/ftp/Makefile.in | 10 + ext/gd/Makefile.am | 12 - ext/gd/Makefile.in | 13 + ext/gd/config.m4 | 6 +- ext/gettext/Makefile.am | 5 - ext/gettext/Makefile.in | 11 + ext/hyperwave/Makefile.am | 5 - ext/hyperwave/Makefile.in | 10 + ext/icap/Makefile.am | 5 - ext/icap/Makefile.in | 10 + ext/imap/Makefile.am | 5 - ext/imap/Makefile.in | 10 + ext/informix/Makefile.am | 15 - ext/informix/Makefile.in | 21 + ext/informix/config.m4 | 10 +- ext/interbase/Makefile.am | 5 - ext/interbase/Makefile.in | 10 + .../java/Makefile.am => java/Makefile.in} | 22 +- ext/java/config.m4 | 12 +- ext/ldap/Makefile.am | 5 - ext/ldap/Makefile.in | 11 + ext/mcal/Makefile.am | 5 - ext/mcal/Makefile.in | 10 + ext/mcrypt/Makefile.am | 5 - ext/mcrypt/Makefile.in | 10 + ext/mhash/Makefile.am | 5 - ext/mhash/Makefile.in | 10 + ext/msql/Makefile.am | 5 - ext/msql/Makefile.in | 10 + ext/mysql/Makefile.am | 13 - ext/mysql/Makefile.in | 12 + ext/mysql/config.h.stub | 3 - ext/mysql/config.m4 | 11 +- ext/oci8/Makefile.am | 5 - ext/oci8/Makefile.in | 10 + ext/oci8/config.m4 | 4 +- ext/odbc/Makefile.am | 2 - ext/odbc/Makefile.in | 10 + ext/odbc/config.m4 | 14 +- ext/oracle/Makefile.am | 4 - ext/oracle/Makefile.in | 10 + ext/oracle/config.m4 | 4 +- ext/pcre/Makefile.am | 7 - ext/pcre/Makefile.in | 13 + ext/pcre/config.m4 | 8 +- ext/pcre/config0.m4 | 8 +- ext/pcre/pcrelib/Makefile.am | 2 - ext/pcre/pcrelib/Makefile.in | 11 + ext/pdf/Makefile.am | 5 - ext/pdf/Makefile.in | 11 + ext/pgsql/Makefile.am | 13 - ext/pgsql/Makefile.in | 14 + ext/pgsql/config.m4 | 8 +- ext/posix/Makefile.am | 5 - ext/posix/Makefile.in | 10 + ext/readline/Makefile.am | 5 - ext/readline/Makefile.in | 10 + ext/readline/config.m4 | 2 +- ext/{java/Makefile.am => rpc/Makefile.in} | 22 +- ext/rpc/{Makefile.am => java/Makefile.in} | 22 +- ext/rpc/java/config.m4 | 12 +- ext/session/Makefile.am | 5 - ext/session/Makefile.in | 10 + ext/session/config.h.stub | 4 - ext/session/config.m4 | 4 +- ext/snmp/Makefile.am | 12 - ext/snmp/Makefile.in | 13 + ext/snmp/config.m4 | 8 +- ext/standard/{Makefile.am => Makefile.in} | 19 +- ext/standard/config.m4 | 4 +- ext/sybase/Makefile.am | 5 - ext/sybase/Makefile.in | 10 + ext/sybase_ct/Makefile.am | 5 - ext/sybase_ct/Makefile.in | 10 + ext/sysvsem/Makefile.am | 5 - ext/sysvsem/Makefile.in | 10 + ext/sysvshm/Makefile.am | 5 - ext/sysvshm/Makefile.in | 10 + ext/wddx/Makefile.am | 5 - ext/wddx/Makefile.in | 10 + ext/xml/Makefile.am | 12 - ext/xml/Makefile.in | 14 + ext/xml/config.m4 | 6 +- ext/yp/Makefile.am | 5 - ext/yp/Makefile.in | 10 + ext/zlib/Makefile.am | 5 - ext/zlib/Makefile.in | 10 + main/internal_functions_win32.c | 2 +- pear/Makefile.am | 10 - pear/Makefile.in | 89 +++ pear/pear.m4 | 76 ++ pear/php-config.in | 16 + pear/phpize.in | 26 + regex/Makefile.am | 3 - regex/Makefile.in | 10 + sapi/Makefile.am | 3 - sapi/Makefile.in | 9 + sapi/aolserver/Makefile.am | 3 - sapi/aolserver/Makefile.in | 10 + sapi/aolserver/config.m4 | 2 +- sapi/apache/Makefile.am | 5 - sapi/apache/Makefile.in | 12 + sapi/apache/config.m4 | 18 +- sapi/cgi/Makefile.am | 3 - sapi/cgi/Makefile.in | 10 + sapi/cgi/config.m4 | 2 +- sapi/isapi/Makefile.am | 4 - sapi/isapi/Makefile.in | 10 + sapi/phttpd/Makefile.am | 2 - sapi/phttpd/Makefile.in | 10 + sapi/phttpd/config.m4 | 2 +- sapi/roxen/Makefile.am | 3 - sapi/roxen/Makefile.in | 10 + sapi/servlet/{Makefile.am => Makefile.in} | 17 +- sapi/servlet/config.m4 | 2 +- sapi/thttpd/Makefile.am | 2 - sapi/thttpd/Makefile.in | 10 + sapi/thttpd/config.m4 | 8 +- snapshot | 7 + 169 files changed, 2627 insertions(+), 719 deletions(-) delete mode 100644 Makefile.am create mode 100644 Makefile.in delete mode 100644 build.mk create mode 100644 build/build.mk create mode 100644 build/build2.mk rename buildcheck.sh => build/buildcheck.sh (100%) create mode 100755 build/fastgen.sh create mode 100644 build/library.mk create mode 100644 build/ltlib.mk create mode 100644 build/mkdep.perl create mode 100644 build/program.mk create mode 100644 build/rules.mk create mode 100644 build/rules_pear.mk create mode 100755 build/shtool delete mode 100644 build2.mk delete mode 100644 ext/Makefile.am create mode 100644 ext/Makefile.in delete mode 100644 ext/apache/Makefile.am create mode 100644 ext/apache/Makefile.in delete mode 100644 ext/aspell/Makefile.am create mode 100644 ext/aspell/Makefile.in delete mode 100644 ext/bcmath/Makefile.am create mode 100644 ext/bcmath/Makefile.in delete mode 100644 ext/cpdf/Makefile.am create mode 100644 ext/cpdf/Makefile.in delete mode 100644 ext/cybercash/Makefile.am create mode 100644 ext/cybercash/Makefile.in delete mode 100644 ext/dav/Makefile.am create mode 100644 ext/dav/Makefile.in delete mode 100644 ext/db/Makefile.am create mode 100644 ext/db/Makefile.in delete mode 100644 ext/dba/Makefile.am create mode 100644 ext/dba/Makefile.in delete mode 100644 ext/dbase/Makefile.am create mode 100644 ext/dbase/Makefile.in delete mode 100644 ext/domxml/Makefile.am create mode 100644 ext/domxml/Makefile.in delete mode 100644 ext/ereg/regex/Makefile.am create mode 100644 ext/ereg/regex/Makefile.in delete mode 100644 ext/fdf/Makefile.am create mode 100644 ext/fdf/Makefile.in delete mode 100644 ext/filepro/Makefile.am create mode 100644 ext/filepro/Makefile.in delete mode 100644 ext/ftp/Makefile.am create mode 100644 ext/ftp/Makefile.in delete mode 100644 ext/gd/Makefile.am create mode 100644 ext/gd/Makefile.in delete mode 100644 ext/gettext/Makefile.am create mode 100644 ext/gettext/Makefile.in delete mode 100644 ext/hyperwave/Makefile.am create mode 100644 ext/hyperwave/Makefile.in delete mode 100644 ext/icap/Makefile.am create mode 100644 ext/icap/Makefile.in delete mode 100644 ext/imap/Makefile.am create mode 100644 ext/imap/Makefile.in delete mode 100644 ext/informix/Makefile.am create mode 100644 ext/informix/Makefile.in delete mode 100644 ext/interbase/Makefile.am create mode 100644 ext/interbase/Makefile.in rename ext/{rpc/java/Makefile.am => java/Makefile.in} (55%) delete mode 100644 ext/ldap/Makefile.am create mode 100644 ext/ldap/Makefile.in delete mode 100644 ext/mcal/Makefile.am create mode 100644 ext/mcal/Makefile.in delete mode 100644 ext/mcrypt/Makefile.am create mode 100644 ext/mcrypt/Makefile.in delete mode 100644 ext/mhash/Makefile.am create mode 100644 ext/mhash/Makefile.in delete mode 100644 ext/msql/Makefile.am create mode 100644 ext/msql/Makefile.in delete mode 100644 ext/mysql/Makefile.am create mode 100644 ext/mysql/Makefile.in delete mode 100644 ext/mysql/config.h.stub delete mode 100644 ext/oci8/Makefile.am create mode 100644 ext/oci8/Makefile.in delete mode 100644 ext/odbc/Makefile.am create mode 100644 ext/odbc/Makefile.in delete mode 100644 ext/oracle/Makefile.am create mode 100644 ext/oracle/Makefile.in delete mode 100644 ext/pcre/Makefile.am create mode 100644 ext/pcre/Makefile.in delete mode 100644 ext/pcre/pcrelib/Makefile.am create mode 100644 ext/pcre/pcrelib/Makefile.in delete mode 100644 ext/pdf/Makefile.am create mode 100644 ext/pdf/Makefile.in delete mode 100644 ext/pgsql/Makefile.am create mode 100644 ext/pgsql/Makefile.in delete mode 100644 ext/posix/Makefile.am create mode 100644 ext/posix/Makefile.in delete mode 100644 ext/readline/Makefile.am create mode 100644 ext/readline/Makefile.in rename ext/{java/Makefile.am => rpc/Makefile.in} (55%) rename ext/rpc/{Makefile.am => java/Makefile.in} (55%) delete mode 100644 ext/session/Makefile.am create mode 100644 ext/session/Makefile.in delete mode 100644 ext/session/config.h.stub delete mode 100644 ext/snmp/Makefile.am create mode 100644 ext/snmp/Makefile.in rename ext/standard/{Makefile.am => Makefile.in} (62%) delete mode 100644 ext/sybase/Makefile.am create mode 100644 ext/sybase/Makefile.in delete mode 100644 ext/sybase_ct/Makefile.am create mode 100644 ext/sybase_ct/Makefile.in delete mode 100644 ext/sysvsem/Makefile.am create mode 100644 ext/sysvsem/Makefile.in delete mode 100644 ext/sysvshm/Makefile.am create mode 100644 ext/sysvshm/Makefile.in delete mode 100644 ext/wddx/Makefile.am create mode 100644 ext/wddx/Makefile.in delete mode 100644 ext/xml/Makefile.am create mode 100644 ext/xml/Makefile.in delete mode 100644 ext/yp/Makefile.am create mode 100644 ext/yp/Makefile.in delete mode 100644 ext/zlib/Makefile.am create mode 100644 ext/zlib/Makefile.in delete mode 100644 pear/Makefile.am create mode 100644 pear/Makefile.in create mode 100644 pear/pear.m4 create mode 100644 pear/php-config.in create mode 100644 pear/phpize.in delete mode 100644 regex/Makefile.am create mode 100644 regex/Makefile.in delete mode 100644 sapi/Makefile.am create mode 100644 sapi/Makefile.in delete mode 100644 sapi/aolserver/Makefile.am create mode 100644 sapi/aolserver/Makefile.in delete mode 100644 sapi/apache/Makefile.am create mode 100644 sapi/apache/Makefile.in delete mode 100644 sapi/cgi/Makefile.am create mode 100644 sapi/cgi/Makefile.in delete mode 100644 sapi/isapi/Makefile.am create mode 100644 sapi/isapi/Makefile.in delete mode 100644 sapi/phttpd/Makefile.am create mode 100644 sapi/phttpd/Makefile.in delete mode 100644 sapi/roxen/Makefile.am create mode 100644 sapi/roxen/Makefile.in rename sapi/servlet/{Makefile.am => Makefile.in} (75%) delete mode 100644 sapi/thttpd/Makefile.am create mode 100644 sapi/thttpd/Makefile.in create mode 100755 snapshot diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 134a8b6cb2f27..0000000000000 --- a/Makefile.am +++ /dev/null @@ -1,41 +0,0 @@ -AUTOMAKE_OPTIONS = foreign - -ZEND_DIR = $(srcdir)/Zend -SUBDIRS = Zend ext sapi $(TSRM_DIR) $(REGEX_DIR) . $(PEAR_DIR) - -BUILDLDFLAGS = $(EXTRA_LDFLAGS) $(LDFLAGS) - -phptemp_LTLIBRARIES = libphp4.la -libphp4_la_SOURCES = \ - main.c internal_functions.c snprintf.c php_sprintf.c \ - configuration-parser.y configuration-scanner.l request_info.c \ - safe_mode.c fopen-wrappers.c php_realpath.c alloca.c \ - php_ini.c SAPI.c rfc1867.c dlist.c php_content_types.c strlcpy.c \ - strlcat.c mergesort.c reentrancy.c - -libphp4_la_DEPENDENCIES = \ - Zend/libZend.la \ - sapi/$(PHP_SAPI)/libphpsapi_$(PHP_SAPI).la \ - $(REGEX_LIB) \ - $(EXT_LTLIBS) \ - $(TSRM_LIB) - -libphp4_la_LIBADD = $(libphp4_la_DEPENDENCIES) $(EXTRA_LIBS) - -libphp4_la_LDFLAGS = $(BUILDLDFLAGS) $(PHP_RPATHS) - -configuration-parser.h configuration-parser.c: configuration-parser.y - $(YACC) -p cfg -v -d $< -o configuration-parser.c - -configuration-scanner.c: configuration-scanner.l - $(LEX) -Pcfg -o$@ -i $< - -EXTRA_PROGRAMS = php - -noinst_PROGRAMS = $(PHP_PROGRAM) -php_SOURCES = stub.c -php_LDADD = libphp4.la -php_LDFLAGS = -export-dynamic - -install-data-local: - $(INSTALL_IT) diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000000000..68599409afdbf --- /dev/null +++ b/Makefile.in @@ -0,0 +1,54 @@ + +DEPTH = . +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +ZEND_DIR = $(srcdir)/Zend +SUBDIRS = Zend ext sapi $(TSRM_DIR) $(REGEX_DIR) . $(PEAR_DIR) + +LTLIBRARY_NAME = libphp4.la + +LTLIBRARY_SOURCES = \ + main.c internal_functions.c snprintf.c php_sprintf.c \ + configuration-parser.c configuration-scanner.c request_info.c \ + safe_mode.c fopen-wrappers.c php_realpath.c alloca.c \ + php_ini.c SAPI.c rfc1867.c dlist.c php_content_types.c strlcpy.c \ + strlcat.c mergesort.c reentrancy.c + +LTLIBRARY_DEPENDENCIES = \ + Zend/libZend.la \ + sapi/$(PHP_SAPI)/libsapi.la \ + $(REGEX_LIB) \ + $(EXT_LTLIBS) \ + $(TSRM_LIB) + +LTLIBRARY_LDFLAGS = -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) +LTLIBRARY_LIBADD = $(LTLIBRARY_DEPENDENCIES) $(EXTRA_LIBS) + +PROGRAM_NAME = $(PHP_PROGRAM) +PROGRAM_SOURCES = stub.c +PROGRAM_LDADD = libphp4.la +PROGRAM_LDFLAGS = -export-dynamic +PROGRAM_DEPENDENCIES = $(PROGRAM_LDADD) + +targets = $(LTLIBRARY_NAME) $(PROGRAM_NAME) + +install_targets = install-local install-modules + +include $(topsrcdir)/build/rules.mk +include $(topsrcdir)/build/library.mk +include $(topsrcdir)/build/program.mk + +install-local: + @$(LIBTOOL) --silent --mode=install install libphp4.la $(phptempdir)/libphp4.la >/dev/null 2>&1 + -@$(mkinstalldirs) $(bindir) + $(INSTALL_IT) + +configuration-parser.h configuration-parser.c: configuration-parser.y + $(YACC) -p cfg -v -d $< -o configuration-parser.c + +configuration-scanner.c: configuration-scanner.l + $(LEX) -Pcfg -o$@ -i $< + +.NOEXPORT: diff --git a/acinclude.m4 b/acinclude.m4 index 7a0477b5abb2f..08305faf83f52 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2,6 +2,126 @@ dnl $Id$ dnl dnl This file contains local autoconf functions. +AC_DEFUN(PHP_SUBST,[ + PHP_VAR_SUBST="$PHP_VAR_SUBST $1" + AC_SUBST($1) +]) + +AC_DEFUN(PHP_FAST_OUTPUT,[ + PHP_FAST_OUTPUT_FILES="$PHP_FAST_OUTPUT_FILES $1" +]) + +AC_DEFUN(PHP_MKDIR_P_CHECK,[ + AC_CACHE_CHECK(for working mkdir -p, ac_cv_mkdir_p,[ + test -d conftestdir && rm -rf conftestdir + mkdir -p conftestdir/somedir >/dev/null 2>&1 + if test -d conftestdir/somedir; then + ac_cv_mkdir_p=yes + else + ac_cv_mkdir_p=no + fi + rm -rf conftestdir + ]) +]) + +AC_DEFUN(PHP_FAST_GENERATE,[ + PHP_MKDIR_P_CHECK + echo creating config_vars.mk + > config_vars.mk + for i in $PHP_VAR_SUBST; do + eval echo "$i = \$$i" >> config_vars.mk + done + $SHELL $srcdir/build/fastgen.sh $srcdir $ac_cv_mkdir_p $PHP_FAST_OUTPUT_FILES +]) + +AC_DEFUN(PHP_TM_GMTOFF,[ +AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, +[AC_TRY_COMPILE([#include +#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;], + ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)]) + +if test "$ac_cv_struct_tm_gmtoff" = yes; then + AC_DEFINE(HAVE_TM_GMTOFF) +fi +]) + +dnl PHP_CONFIGURE_PART(MESSAGE) +dnl Idea borrowed from mm +AC_DEFUN(PHP_CONFIGURE_PART,[ + AC_MSG_RESULT() + AC_MSG_RESULT(${T_MD}$1${T_ME}) +]) + +AC_DEFUN(PHP_PROG_SENDMAIL,[ +AC_PATH_PROG(PROG_SENDMAIL, sendmail, /usr/lib/sendmail, $PATH /usr/bin /usr/sbin /usr/etc /etc /usr/ucblib) +if test -n "$PROG_SENDMAIL"; then + AC_DEFINE(HAVE_SENDMAIL) +fi +]) + +AC_DEFUN(PHP_RUNPATH_SWITCH,[ +dnl check for -R, etc. switch +AC_MSG_CHECKING(if compiler supports -R) +AC_CACHE_VAL(php_cv_cc_dashr,[ + SAVE_LIBS="${LIBS}" + LIBS="-R /usr/lib ${LIBS}" + AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no) + LIBS="${SAVE_LIBS}"]) +AC_MSG_RESULT($php_cv_cc_dashr) +if test $php_cv_cc_dashr = "yes"; then + ld_runpath_switch="-R" +else + AC_MSG_CHECKING([if compiler supports -Wl,-rpath,]) + AC_CACHE_VAL(php_cv_cc_rpath,[ + SAVE_LIBS="${LIBS}" + LIBS="-Wl,-rpath,/usr/lib ${LIBS}" + AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no) + LIBS="${SAVE_LIBS}"]) + AC_MSG_RESULT($php_cv_cc_rpath) + if test $php_cv_cc_rpath = "yes"; then + ld_runpath_switch="-Wl,-rpath," + else + dnl something innocuous + ld_runpath_switch="-L" + fi +fi +]) + +AC_DEFUN(PHP_STRUCT_FLOCK,[ +AC_CACHE_CHECK(for struct flock,ac_cv_struct_flock, + AC_TRY_COMPILE([ +#include +#include + ], + [struct flock x;], + [ + ac_cv_struct_flock=yes + ],[ + ac_cv_struct_flock=no + ]) +) +if test "$ac_cv_struct_flock" = "yes" ; then + AC_DEFINE(HAVE_STRUCT_FLOCK, 1) +fi +]) + +AC_DEFUN(PHP_SOCKLEN_T,[ +AC_CACHE_CHECK(for socklen_t,ac_cv_socklen_t, + AC_TRY_COMPILE([ +#include +#include +],[ +socklen_t x; +],[ + ac_cv_socklen_t=yes +],[ + ac_cv_socklen_t=no +])) +if test "$ac_cv_socklen_t" = "no"; then + AC_DEFINE(socklen_t, unsigned int) +fi +]) + dnl dnl PHP_SET_SYM_FILE(path) dnl @@ -176,7 +296,7 @@ if test "$REGEX_TYPE" = "php"; then REGEX_DIR=regex AC_DEFINE(HSREGEX) AC_DEFINE(REGEX,1) - PHP_OUTPUT(regex/Makefile) + PHP_FAST_OUTPUT(regex/Makefile) elif test "$REGEX_TYPE" = "system"; then AC_DEFINE(REGEX,0) elif test "$REGEX_TYPE" = "apache"; then @@ -186,9 +306,9 @@ fi AC_MSG_CHECKING(which regex library to use) AC_MSG_RESULT($REGEX_TYPE) -AC_SUBST(REGEX_DIR) -AC_SUBST(REGEX_LIB) -AC_SUBST(HSREGEX) +PHP_SUBST(REGEX_DIR) +PHP_SUBST(REGEX_LIB) +PHP_SUBST(HSREGEX) ]) dnl @@ -209,17 +329,20 @@ dnl dnl Check for broken sprintf() dnl AC_DEFUN(AC_BROKEN_SPRINTF,[ - AC_MSG_CHECKING([for broken sprintf]) - AC_TRY_RUN([main() { char buf[20]; exit (sprintf(buf,"testing 123")!=11); }],[ - AC_DEFINE(BROKEN_SPRINTF,0) - AC_MSG_RESULT(ok) - ],[ - AC_DEFINE(BROKEN_SPRINTF,1) - AC_MSG_RESULT(broken) - ],[ - AC_DEFINE(BROKEN_SPRINTF,0) - AC_MSG_RESULT(cannot check, guessing ok) + AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[ + AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[ + ac_cv_broken_sprintf=no + ],[ + ac_cv_broken_sprintf=yes + ],[ + ac_cv_broken_sprintf=no + ]) ]) + if test "$ac_cv_broken_sprintf" = "yes"; then + AC_DEFINE(BROKEN_SPRINTF, 1) + else + AC_DEFINE(BROKEN_SPRINTF, 0) + fi ]) dnl @@ -234,24 +357,24 @@ dnl AC_DEFUN(PHP_EXTENSION,[ if test -d "$cwd/$srcdir/ext/$1" ; then EXT_SUBDIRS="$EXT_SUBDIRS $1" - if test "$2" != "shared" -a "$2" != "yes"; then - _extlib="libphpext_$1.a" - EXT_LTLIBS="$EXT_LTLIBS ext/$1/libphpext_$1.la" + 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_`echo $1|tr a-z A-Z`, 1, Whether to build $1 as dynamic module) + 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_OUTPUT(ext/$1/Makefile) + PHP_FAST_OUTPUT(ext/$1/Makefile) fi ]) -AC_SUBST(EXT_SUBDIRS) -AC_SUBST(EXT_STATIC) -AC_SUBST(EXT_SHARED) -AC_SUBST(EXT_LIBS) -AC_SUBST(EXT_LTLIBS) +PHP_SUBST(EXT_SUBDIRS) +PHP_SUBST(EXT_STATIC) +PHP_SUBST(EXT_SHARED) +PHP_SUBST(EXT_LIBS) +PHP_SUBST(EXT_LTLIBS) dnl dnl Solaris requires main code to be position independent in order @@ -298,6 +421,9 @@ AC_DEFUN(PHP_WITH_SHARED,[ shared=no ;; esac + if test -n "$php_always_shared"; then + shared=yes + fi ]) dnl The problem is that the default compilation flags in Solaris 2.6 won't @@ -354,9 +480,11 @@ AC_DEFUN(AC_SOCKADDR_SA_LEN,[ ]) ]) + dnl ## PHP_AC_OUTPUT(file) dnl ## adds "file" to the list of files generated by AC_OUTPUT dnl ## This macro can be used several times. AC_DEFUN(PHP_OUTPUT,[ PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES $1" ]) + diff --git a/build.mk b/build.mk deleted file mode 100644 index 2e167053b8de5..0000000000000 --- a/build.mk +++ /dev/null @@ -1,49 +0,0 @@ -# Makefile to generate build tools -# -# Standard usage: -# make -f build.mk -# -# To prepare a self-contained distribution: -# make -f build.mk dist -# -# -# Written by Sascha Schumann -# -# $Id$ - - -SUBDIRS = Zend TSRM - -STAMP = buildmk.stamp - -ALWAYS = generated_lists - -all: $(STAMP) $(ALWAYS) - @$(MAKE) -s -f build2.mk - -generated_lists: - @echo makefile_am_files = Makefile.am Zend/Makefile.am \ - TSRM/Makefile.am `find ext sapi regex pear -name Makefile.am` > $@ - @echo config_h_files = Zend/acconfig.h TSRM/acconfig.h \ - ext/*/config.h.stub >> $@ - @echo config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 \ - Zend/acinclude.m4 ext/*/config.m4 sapi/*/config.m4 >> $@ - -$(STAMP): buildcheck.sh - @./buildcheck.sh && touch $(STAMP) - -dist: - @rm -f $(SUBDIRS) 2>/dev/null || true - @for i in $(SUBDIRS); do \ - test -d $$i || (test -d ../$$i && cp -rp ../$$i $$i); \ - done - @find . -type l -exec rm {} \; - $(MAKE) AMFLAGS=--copy -f build.mk - -cvsclean: - @for i in `find . -follow -name .cvsignore`; do \ - (cd `dirname $$i` 2>/dev/null && (rm -f `cat .cvsignore` *.o *.a; rm -rf .libs .deps) || true); \ - done - @rm -f $(SUBDIRS) 2>/dev/null || true - -.PHONY: $(ALWAYS) diff --git a/build/build.mk b/build/build.mk new file mode 100644 index 0000000000000..74b9ef212cd0f --- /dev/null +++ b/build/build.mk @@ -0,0 +1,78 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# +# Makefile to generate build tools +# + +SUBDIRS = Zend TSRM + +STAMP = buildmk.stamp + +ALWAYS = generated_lists + +all: $(STAMP) $(ALWAYS) + @$(MAKE) AMFLAGS=$(AMFLAGS) -s -f build/build2.mk + +generated_lists: + @echo makefile_am_files = Zend/Makefile.am \ + TSRM/Makefile.am > $@ + @echo config_h_files = Zend/acconfig.h TSRM/acconfig.h \ + ext/*/config.h.stub >> $@ + @echo config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 \ + Zend/acinclude.m4 ext/*/config.m4 sapi/*/config.m4 >> $@ + +$(STAMP): build/buildcheck.sh + @build/buildcheck.sh && touch $(STAMP) + +snapshot: + distname='$(DISTNAME)'; \ + if test -z "$$distname"; then \ + distname='php4-snapshot'; \ + fi; \ + myname=`basename \`pwd\`` ; \ + cd .. && cp -rp $$myname $$distname; \ + cd $$distname; \ + rm -f $(SUBDIRS) 2>/dev/null || true; \ + for i in $(SUBDIRS); do \ + test -d $$i || (test -d ../$$i && cp -rp ../$$i $$i); \ + done; \ + find . -type l -exec rm {} \; ; \ + $(MAKE) AMFLAGS=--copy -f build/build.mk; \ + cd ..; \ + tar cf $$distname.tar $$distname; \ + rm -rf $$distname $$distname.tar.*; \ + bzip2 -9 $$distname.tar; \ + md5sum $$distname.tar.bz2; \ + sync; sleep 2; \ + md5sum $$distname.tar.bz2; \ + bzip2 -t $$distname.tar.bz2 + +cvsclean: + @for i in `find . -follow -name .cvsignore`; do \ + (cd `dirname $$i` 2>/dev/null && rm -rf `cat .cvsignore` *.o *.a || true); \ + done + @rm -f $(SUBDIRS) 2>/dev/null || true + +.PHONY: $(ALWAYS) snapshot cvsclean diff --git a/build/build2.mk b/build/build2.mk new file mode 100644 index 0000000000000..76f3f02c68091 --- /dev/null +++ b/build/build2.mk @@ -0,0 +1,88 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ + +include generated_lists + +TOUCH_FILES = mkinstalldirs install-sh missing + +LT_TARGETS = ltconfig ltmain.sh config.guess config.sub + +makefile_in_files = $(makefile_am_files:.am=.in) +makefile_files = $(makefile_am_files:e.am=e) + +config_h_in = php_config.h.in + +acconfig_h_SOURCES = acconfig.h.in $(config_h_files) + +targets = $(makefile_in_files) configure $(config_h_in) $(TOUCH_FILES) + + +all: .deps Zend/Makefile.am TSRM/Makefile.am $(targets) + +.deps: + @echo creating empty dependencies + find ext sapi -type d \! -name \*CVS -exec touch {}/.deps {} \; + touch pear/.deps + touch $@ + +Zend/Makefile.am: + test -d Zend || (test -d ../Zend && ln -s ../Zend Zend) + +TSRM/Makefile.am: + test -d TSRM || (test -d ../TSRM && ln -s ../TSRM TSRM) + +acconfig.h: $(acconfig_h_SOURCES) + @echo rebuilding $@ + @cat $(acconfig_h_SOURCES) > $@ + +$(makefile_in_files): $(makefile_am_files) aclocal.m4 configure.in $(config_m4_files) + @echo rebuilding Makefile.in\'s + @for i in $(LT_TARGETS); do \ + if test -f "$$i"; then \ + mv $$i $$i.bak; \ + cp $$i.bak $$i; \ + fi; \ + done + @test -f want_dependencies || flag=-i; \ + automake -a $$flag $(AMFLAGS) $(makefile_files) \ + || true >&2 + @for i in $(LT_TARGETS); do mv $$i.bak $$i; done + +aclocal.m4: configure.in acinclude.m4 + aclocal + +$(config_h_in): configure.in acconfig.h +# explicitly remove target since autoheader does not seem to work +# correctly otherwise (timestamps are not updated) + @echo rebuilding $@ + @rm -f $@ + autoheader + +$(TOUCH_FILES): + touch $(TOUCH_FILES) + +configure: aclocal.m4 configure.in $(config_m4_files) + @echo rebuilding $@ + autoconf diff --git a/buildcheck.sh b/build/buildcheck.sh similarity index 100% rename from buildcheck.sh rename to build/buildcheck.sh diff --git a/build/fastgen.sh b/build/fastgen.sh new file mode 100755 index 0000000000000..66f5a80f749d3 --- /dev/null +++ b/build/fastgen.sh @@ -0,0 +1,51 @@ +#! /bin/sh +# +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id: fastgen.sh,v 1.1 1999-12-30 02:58:32 sas Exp $ +# + +srcdir=$1 +shift + +topsrcdir=`(cd $srcdir; pwd)` + +mkdir_p=$1 +shift + +if test "$mkdir_p" = "yes"; then + mkdir_p="mkdir -p" +else + mkdir_p="$topsrcdir/build/shtool mkdir -f -p" +fi + +for i in $@ ; do + echo "creating $i" + dir=`dirname $i` + $mkdir_p $dir + sed \ + -e s#@topsrcdir@#$topsrcdir# \ + -e s#@srcdir@#$topsrcdir/$dir# \ + < $topsrcdir/$i.in > $i +done diff --git a/build/library.mk b/build/library.mk new file mode 100644 index 0000000000000..0a0ad7e9c9b77 --- /dev/null +++ b/build/library.mk @@ -0,0 +1,42 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# + +LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo) + +$(LTLIBRARY_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES) + $(LINK) $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_LIBADD) + +$(LTLIBRARY_SHARED_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES) + @test -d $(phplibdir) || $(mkinstalldirs) $(phplibdir) + $(LINK) -avoid-version -module -rpath $(phplibdir) $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_SHARED_LIBADD) + $(SHLIBTOOL) --mode=install install $@ $(phplibdir) + +shared: + @if test '$(SHLIBTOOL)' != '$(LIBTOOL)'; then \ + $(MAKE) 'LIBTOOL=$(SHLIBTOOL)' $(LTLIBRARY_SHARED_NAME); \ + else \ + $(MAKE) $(LTLIBRARY_SHARED_NAME); \ + fi; \ diff --git a/build/ltlib.mk b/build/ltlib.mk new file mode 100644 index 0000000000000..1474621afa64a --- /dev/null +++ b/build/ltlib.mk @@ -0,0 +1,31 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# + +targets = $(LTLIBRARY_NAME) + +include $(topsrcdir)/build/rules.mk +include $(topsrcdir)/build/library.mk + diff --git a/build/mkdep.perl b/build/mkdep.perl new file mode 100644 index 0000000000000..fdac834c20052 --- /dev/null +++ b/build/mkdep.perl @@ -0,0 +1,91 @@ +#!/usr/bin/perl +# +# $Id$ +# +# Created: Thu Aug 15 11:57:33 1996 too +# Last modified: Mon Dec 27 09:23:56 1999 too +# +# Copyright (c) 1996-1999 Tomi Ollila. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +die "Usage: mkdep CPP-command [CPP options] file1 [file2...]\n" + if ($#ARGV < 1); + +$cmdl = shift(@ARGV); + +$cmdl = "$cmdl " . shift (@ARGV) while ($ARGV[0] =~ /^-[A-Z]/); + +while ($file = shift(@ARGV)) +{ + $file =~ s/\.o$/.c/; + + open(F, "$cmdl $file|"); + + &parseout; + + close(F); +} + + +sub initinit +{ + %used = (); + $of = $file; + $of =~ s/\.c$/.lo/; + $str = "$of:\t$file"; + $len = length $str; +} + +sub initstr +{ + $str = "\t"; + $len = length $str; +} + +sub parseout +{ + &initinit; + while () + { + next unless (/^# [0-9]* "(.*\.h)"/); + + next if ($1 =~ /^\//); + + next if $used{$1}; + + $used{$1} = 1; + + $nlen = length($1) + 1; + + if ($len + $nlen > 72) + { + print $str, "\\\n"; + &initstr; + $str = $str . $1; + } + else { $str = $str . " " . $1; } + + $len += $nlen; + + } + print $str, "\n"; +} diff --git a/build/program.mk b/build/program.mk new file mode 100644 index 0000000000000..6365f63cfdd90 --- /dev/null +++ b/build/program.mk @@ -0,0 +1,30 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# + +PROGRAM_OBJECTS = $(PROGRAM_SOURCES:.c=.lo) + +$(PROGRAM_NAME): $(PROGRAM_DEPENDENCIES) $(PROGRAM_OBJECTS) + $(LINK) $(PROGRAM_LDFLAGS) $(PROGRAM_OBJECTS) $(PROGRAM_LDADD) diff --git a/build/rules.mk b/build/rules.mk new file mode 100644 index 0000000000000..f589dc5da706a --- /dev/null +++ b/build/rules.mk @@ -0,0 +1,106 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# + +include $(DEPTH)/config_vars.mk + +INCLUDES += $(EXTRA_INCLUDES) +CFLAGS += $(EXTRA_CFLAGS) +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ +mkinstalldirs = $(top_srcdir)/build/shtool mkdir -f -p +INSTALL = $(top_srcdir)/build/shtool install -c +INSTALL_DATA = $(INSTALL) -m 644 + +DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I$(DEPTH) + +moduledir = $(libdir)/php/modules +top_srcdir = $(topsrcdir) +top_builddir = $(DEPTH) + +.SUFFIXES: +.SUFFIXES: .S .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) + +.y.c: + $(YACC) $(YFLAGS) $< && mv y.tab.c $*.c + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi + +.l.c: + $(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ + + +all: all-recursive $(targets) + +depend-recursive clean-recursive all-recursive install-recursive: + @target=`echo $@|sed s/-recursive//`; \ + if test '$(NO_RECURSION)' != "$$target"; then \ + list='$(SUBDIRS)'; for i in $$list; do \ + echo "Making $$target in $$i"; \ + test "$$i" = "." || (cd $$i && $(MAKE) $$target) || exit 1; \ + done; \ + fi; + +depend: depend-recursive + test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) *.c > .deps + +clean: clean-recursive + rm -f $(targets) *.lo *.la *.o $(CLEANFILES) + rm -rf .libs + +install: install-recursive $(targets) $(install_targets) + +install-modules: + @test -d modules && \ + $(mkinstalldirs) $(moduledir) && \ + echo "installing shared modules into $(moduledir)" && \ + rm -f modules/*.la && \ + cp modules/* $(moduledir) || true + +include $(srcdir)/.deps + +.PHONY: all-recursive clean-recursive install-recursive \ +$(install_targets) install all clean depend depend-recursive shared diff --git a/build/rules_pear.mk b/build/rules_pear.mk new file mode 100644 index 0000000000000..72fab825aaba0 --- /dev/null +++ b/build/rules_pear.mk @@ -0,0 +1,114 @@ +# Copyright (c) 1999 Sascha Schumann. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +############################################################################## +# $Id$ +# + +include $(DEPTH)/config_vars.mk + +INCLUDES += $(EXTRA_INCLUDES) +CFLAGS += $(EXTRA_CFLAGS) +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@ +mkinstalldirs = $(top_srcdir)/build/shtool mkdir -f -p +INSTALL = $(top_srcdir)/build/shtool install -c +INSTALL_DATA = $(INSTALL) -m 644 + +DEFS = -DHAVE_CONFIG_H -I. -I$(srcdir) -I$(DEPTH) + +moduledir = $(libdir)/php/modules +top_srcdir = $(topsrcdir) +top_builddir = $(DEPTH) + +.SUFFIXES: +.SUFFIXES: .S .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) + +.y.c: + $(YACC) $(YFLAGS) $< && mv y.tab.c $*.c + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi + +.l.c: + $(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ + + +################################# +# Simplified Makefile + +all: shared +install: shared install-modules + +################################# + +#all: all-recursive $(targets) + +depend-recursive clean-recursive all-recursive install-recursive: + @target=`echo $@|sed s/-recursive//`; \ + if test '$(NO_RECURSION)' != "$$target"; then \ + list='$(SUBDIRS)'; for i in $$list; do \ + echo "Making $$target in $$i"; \ + test "$$i" = "." || (cd $$i && $(MAKE) $$target) || exit 1; \ + done; \ + fi; + +depend: depend-recursive + test "`echo *.c`" = '*.c' || perl $(top_srcdir)/build/mkdep.perl $(CPP) $(INCLUDES) *.c > .deps + +clean: clean-recursive + rm -f $(targets) *.lo *.la *.o $(CLEANFILES) + rm -rf .libs + +#install: install-recursive $(targets) $(install_targets) + +install-modules: + @test -d modules && \ + $(mkinstalldirs) $(moduledir) && \ + echo "installing shared modules into $(moduledir)" && \ + rm -f modules/*.la && \ + cp modules/* $(moduledir) || true + +include $(srcdir)/.deps + +.PHONY: all-recursive clean-recursive install-recursive \ +$(install_targets) install all clean depend depend-recursive shared diff --git a/build/shtool b/build/shtool new file mode 100755 index 0000000000000..0f2ab5552b585 --- /dev/null +++ b/build/shtool @@ -0,0 +1,707 @@ +#!/bin/sh +## +## GNU shtool -- The GNU Portable Shell Tool +## Copyright (c) 1994-1999 Ralf S. Engelschall +## +## See http://www.gnu.org/software/shtool/ for more information. +## See ftp://ftp.gnu.org/gnu/shtool/ for latest version. +## +## Version 1.4.7 (24-Dec-1999) +## Ingredients: 3/17 available modules +## + +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, +## USA, or contact Ralf S. Engelschall . +## +## Notice: Given that you include this file verbatim into your own +## source tree, you are justified in saying that it remains separate +## from your package, and that this way you are simply just using GNU +## shtool. So, in this situation, there is no requirement that your +## package itself is licensed under the GNU General Public License in +## order to take advantage of GNU shtool. +## + +## +## Usage: shtool [] [ [] []] +## +## Available commands: +## echo Print string with optional construct expansion +## install Install a program, script or datafile +## mkdir Make one or more directories +## +## Not available commands (because module was not built-in): +## mdate Pretty-print modification time of a file or dir +## table Pretty print a field-separated list as a table +## prop Display progress with a running propeller +## move Move files with simultan substitution +## mkln Make link with calculation of relative paths +## mkshadow Make a shadow tree +## fixperm Fix file permissions inside a source tree +## tarball Roll distribution tarballs +## guessos Simple OS/platform guesser +## arx Extended archive command +## slo Separate linker options by library class +## scpp Sharing C Pre-Processor +## version Generate and maintain a version information file +## path Deal with program paths +## + +if [ $# -eq 0 ]; then + echo "$0:Error: invalid command line" 1>&2 + echo "$0:Hint: run \`$0 -h' for usage" 1>&2 + exit 1 +fi +if [ ".$1" = ".-h" -o ".$1" = ".--help" ]; then + echo "This is GNU shtool, version 1.4.7 (24-Dec-1999)" + echo "Copyright (c) 1994-1999 Ralf S. Engelschall " + echo "Report bugs to " + echo '' + echo "Usage: shtool [] [ [] []]" + echo '' + echo 'Available global :' + echo ' -v, --version display shtool version information' + echo ' -h, --help display shtool usage help page (this one)' + echo ' -d, --debug display shell trace information' + echo '' + echo 'Available [] []:' + echo ' echo [-n] [-e] [ ...]' + echo ' install [-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g]' + echo ' [-e] ' + echo ' mkdir [-t] [-f] [-p] [-m] [ ...]' + echo '' + echo 'Not available (because module was not built-in):' + echo ' mdate [-n] [-z] [-s] [-d] [-f] [-o] ' + echo ' table [-F] [-w] [-c] [-s] ...' + echo ' prop [-p]' + echo ' move [-v] [-t] [-e] [-p] ' + echo ' mkln [-t] [-f] [-s] [ ...] ' + echo ' mkshadow [-v] [-t] [-a] ' + echo ' fixperm [-v] [-t] [ ...]' + echo ' tarball [-t] [-v] [-o ] [-c ] [-d ] [-u' + echo ' ] [-g ] [-e ] [ ...]' + echo ' guessos ' + echo ' arx [-t] [-C] [ ...]' + echo ' slo -- -L -l [ -L -l ... ]' + echo ' scpp [-v] [-p] [-o] [-t] [-M] [-D]' + echo ' [-C] [ ...]' + echo ' version [-l] [-n] [-p] [-s] [-i]' + echo ' [-d] ' + echo ' path [-s] [-r] [-d] [-b] [-m] [-p] [ ...]' + echo '' + exit 0 +fi +if [ ".$1" = ".-v" -o ".$1" = ."--version" ]; then + echo "GNU shtool 1.4.7 (24-Dec-1999)" + exit 0 +fi +if [ ".$1" = ".-d" -o ".$1" = ."--debug" ]; then + shift + set -x +fi +name=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'` +case "$name" in + echo|install|mkdir ) + # implicit tool command selection + tool="$name" + ;; + * ) + # explicit tool command selection + tool="$1" + shift + ;; +esac +arg_spec="" +opt_spec="" +gen_tmpfile=no + +## +## DISPATCH INTO SCRIPT PROLOG +## + +case $tool in + echo ) + str_tool="echo" + str_usage="[-n] [-e] [ ...]" + arg_spec="0+" + opt_spec="ne" + ;; + install ) + str_tool="install" + str_usage="[-v] [-t] [-c] [-C] [-s] [-m] [-o] [-g] [-e] " + arg_spec="2" + opt_spec="vtcCsm:o:g:e:" + opt_m="" + opt_o="" + opt_g="" + opt_e="" + ;; + mkdir ) + str_tool="mkdir" + str_usage="[-t] [-f] [-p] [-m] [ ...]" + arg_spec="1+" + opt_spec="tfpm:" + opt_m="" + ;; + * ) + echo "$0:Error: unknown command \`$tool'" 2>&1 + echo "$0:Hint: run \`$0 -h' for usage" 2>&1 + exit 1 + ;; +esac + +## +## COMMON UTILITY CODE +## + +# determine name of tool +if [ ".$tool" != . ]; then + # inside shtool + toolcmd="$0 $tool" + toolcmdhelp="shtool $tool" + msgprefix="shtool:$tool" +else + # standalone + toolcmd="$0" + toolcmdhelp="sh.$tool" + msgprefix="$str_tool" +fi + +# parse argument specification string +eval `echo $arg_spec | sed -e 's/^\([0-9]*\)\(.*\)/arg_NUMS="\1"; arg_MODE="\2"/'` +test ".$arg_MODE" = . && arg_MODE="=" + +# parse option specification string +for opt in `echo "h$opt_spec" | sed -e 's/\([a-zA-Z0-9][:+]*\)/\1 /g'`; do + opt_MODE="." + eval `echo $opt |\ + sed -e 's/^\([a-zA-Z0-9]\)/opt_THIS="\1";/' \ + -e 's/";\([:+]\)/"; opt_MODE="\1";/'` + eval "opt_MODE_${opt_THIS}=${opt_MODE}" + test "$opt_MODE" = . && eval "opt_${opt_THIS}=no" +done + +# interate over argument line +opt_PREV='' +while [ $# -gt 0 ]; do + # special option stops processing + if [ ".$1" = ".--" ]; then + shift + break + fi + + # determine option and argument + opt_ARG_OK=no + if [ ".$opt_PREV" != . ]; then + # merge previous seen option with argument + opt_OPT="$opt_PREV" + opt_ARG="$1" + opt_ARG_OK=yes + opt_PREV="" + else + # split argument into option and argument + case "$1" in + -[a-zA-Z0-9]*) + eval `echo "x$1" |\ + sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \ + -e 's/";\(.*\)$/"; opt_ARG="\1"/'` + ;; + -[a-zA-Z0-9]) + opt_OPT=`awk 'BEGIN { printf("%s", substr(OPT, 2)); }' \ + "OPT=$1" &2 + echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 + exit 1 + ;; + esac +done +if [ ".$opt_PREV" != . ]; then + echo "$msgprefix:Error: missing argument to option \`-$opt_PREV'" 1>&2 + echo "$msgprefix:Hint: run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2 + exit 1 +fi + +# process help option +if [ ".$opt_h" = .yes ]; then + echo "Usage: $toolcmdhelp $str_usage" + exit 0 +fi + +# complain about incorrect number of arguments +case $arg_MODE in + "=" ) + if [ $# -ne $arg_NUMS ]; then + echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2 + echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 + exit 1 + fi + ;; + "+" ) + if [ $# -lt $arg_NUMS ]; then + echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2 + echo "$msgprefix:Hint: run \`$toolcmd -h' or \`man shtool' for details" 1>&2 + exit 1 + fi + ;; +esac + +# establish a temporary file on request +if [ ".$gen_tmpfile" = .yes ]; then + tmpdir="/tmp" + if [ ".$TMPDIR" != . ]; then + tmpdir="$TMPDIR" + else + if [ ".$TEMPDIR" != . ]; then + tmpdir="$TEMPDIR" + fi + fi + tmpfile="$tmpdir/.shtool.$$" + rm -f $tmpfile >/dev/null 2>&1 + touch $tmpfile +fi + +## +## DISPATCH INTO SCRIPT BODY +## + +case $tool in + +echo ) + ## + ## echo -- Print string with optional construct expansion + ## Copyright (c) 1998-1999 Ralf S. Engelschall + ## Originally written for WML as buildinfo + ## + + text="$*" + + # check for broken escape sequence expansion + seo='' + bytes=`echo '\1' | wc -c | awk '{ printf("%s", $1); }'` + if [ ".$bytes" != .3 ]; then + bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'` + if [ ".$bytes" = .3 ]; then + seo='-E' + fi + fi + + # check for existing -n option (to suppress newline) + minusn='' + bytes=`echo -n 123 2>/dev/null | wc -c | awk '{ printf("%s", $1); }'` + if [ ".$bytes" = .3 ]; then + minusn='-n' + fi + + # determine terminal bold sequence + term_bold='' + term_norm='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[Bb]'`" != . ]; then + # the most important terminals we directly know + case $TERM in + xterm|xterm*|vt220|vt220*) + term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' /dev/null` + term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' /dev/null` + ;; + vt100|vt100*) + term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' /dev/null` + term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' /dev/null` + ;; + esac + # then try a possibly existing "tput" or "tcout" utility + paths=`echo $PATH | sed -e 's/:/ /g'` + for tool in tput tcout; do + for dir in $paths; do + if [ -r "$dir/$tool" ]; then + for seq in bold md smso; do # smso is last + bold="`$dir/$tool $seq 2>/dev/null`" + if [ ".$bold" != . ]; then + term_bold="$bold" + break + fi + done + if [ ".$term_bold" != . ]; then + for seq in sgr0 me rmso reset; do # 'reset' is last + norm="`$dir/$tool $seq 2>/dev/null`" + if [ ".$norm" != . ]; then + term_norm="$norm" + break + fi + done + fi + break + fi + done + if [ ".$term_bold" != . -a ".$term_norm" != . ]; then + break; + fi + done + if [ ".$term_bold" = . -o ".$term_norm" = . ]; then + echo "$msgprefix:Warning: unable to determine terminal sequence for bold mode" 1>&2 + fi + fi + + # determine user name + username='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[uU]'`" != . ]; then + username="$LOGNAME" + if [ ".$username" = . ]; then + username="$USER" + if [ ".$username" = . ]; then + username="`(whoami) 2>/dev/null |\ + awk '{ printf("%s", $1); }'`" + if [ ".$username" = . ]; then + username="`(who am i) 2>/dev/null |\ + awk '{ printf("%s", $1); }'`" + if [ ".$username" = . ]; then + username='unknown' + fi + fi + fi + fi + fi + + # determine user id + userid='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%U'`" != . ]; then + userid="`(id -u) 2>/dev/null`" + if [ ".$userid" = . ]; then + str="`(id) 2>/dev/null`" + if [ ".`echo $str | grep '^uid[ ]*=[ ]*[0-9]*('`" != . ]; then + userid=`echo $str | sed -e 's/^uid[ ]*=[ ]*//' -e 's/(.*//'` + fi + if [ ".$userid" = . ]; then + userid=`egrep "^${username}:" /etc/passwd 2>/dev/null | \ + sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` + if [ ".$userid" = . ]; then + userid=`(ypcat passwd) 2>/dev/null | + egrep "^${username}:" | \ + sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'` + if [ ".$userid" = . ]; then + userid='?' + fi + fi + fi + fi + fi + + # determine host name + hostname='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%h'`" != . ]; then + hostname="`(uname -n) 2>/dev/null |\ + awk '{ printf("%s", $1); }'`" + if [ ".$hostname" = . ]; then + hostname="`(hostname) 2>/dev/null |\ + awk '{ printf("%s", $1); }'`" + if [ ".$hostname" = . ]; then + hostname='unknown' + fi + fi + case $hostname in + *.* ) + domainname=".`echo $hostname | cut -d. -f2-`" + hostname="`echo $hostname | cut -d. -f1`" + ;; + esac + fi + + # determine domain name + domainname='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%d'`" != . ]; then + if [ ".$domainname" = . ]; then + if [ -f /etc/resolv.conf ]; then + domainname="`egrep '^[ ]*domain' /etc/resolv.conf | head -1 |\ + sed -e 's/.*domain//' \ + -e 's/^[ ]*//' -e 's/^ *//' -e 's/^ *//' \ + -e 's/^\.//' -e 's/^/./' |\ + awk '{ printf("%s", $1); }'`" + if [ ".$domainname" = . ]; then + domainname="`egrep '^[ ]*search' /etc/resolv.conf | head -1 |\ + sed -e 's/.*search//' \ + -e 's/^[ ]*//' -e 's/^ *//' -e 's/^ *//' \ + -e 's/ .*//' -e 's/ .*//' \ + -e 's/^\.//' -e 's/^/./' |\ + awk '{ printf("%s", $1); }'`" + fi + fi + fi + fi + + # determine current time + time_day='' + time_month='' + time_year='' + time_monthname='' + if [ ".$opt_e" = .yes -a ".`echo $text | egrep '%[DMYm]'`" != . ]; then + time_day=`date '+%d'` + time_month=`date '+%m'` + time_year=`date '+%Y' 2>/dev/null` + if [ ".$time_year" = . ]; then + time_year=`date '+%y'` + case $time_year in + [5-9][0-9]) time_year="19$time_year" ;; + [0-4][0-9]) time_year="20$time_year" ;; + esac + fi + case $time_month in + 1|01) time_monthname='Jan' ;; + 2|02) time_monthname='Feb' ;; + 3|03) time_monthname='Mar' ;; + 4|04) time_monthname='Apr' ;; + 5|05) time_monthname='May' ;; + 6|06) time_monthname='Jun' ;; + 7|07) time_monthname='Jul' ;; + 8|08) time_monthname='Aug' ;; + 9|09) time_monthname='Sep' ;; + 10) time_monthname='Oct' ;; + 11) time_monthname='Nov' ;; + 12) time_monthname='Dec' ;; + esac + fi + + # expand special ``%x'' constructs + if [ ".$opt_e" = .yes ]; then + text=`echo $seo "$text" |\ + sed -e "s/%B/${term_bold}/g" \ + -e "s/%b/${term_norm}/g" \ + -e "s/%u/${username}/g" \ + -e "s/%U/${userid}/g" \ + -e "s/%h/${hostname}/g" \ + -e "s/%d/${domainname}/g" \ + -e "s/%D/${time_day}/g" \ + -e "s/%M/${time_month}/g" \ + -e "s/%Y/${time_year}/g" \ + -e "s/%m/${time_monthname}/g" 2>/dev/null` + fi + + # create output + if [ .$opt_n = .no ]; then + echo $seo "$text" + else + # the harder part: echo -n is best, because + # awk complains about some \xx sequences. + if [ ".$minusn" != . ]; then + echo $seo $minusn "$text" + else + echo dummy | awk '{ printf("%s", TEXT); }' TEXT="$text" + fi + fi + ;; + +install ) + ## + ## install -- Install a program, script or datafile + ## Copyright (c) 1997-1999 Ralf S. Engelschall + ## Originally written for shtool + ## + + src="$1" + dst="$2" + + # If destination is a directory, append the input filename + if [ -d $dst ]; then + dst=`echo "$dst" | sed -e 's:/$::'` + dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'` + dst="$dst/$dstfile" + fi + + # Add a possible extension to src and dst + if [ ".$opt_e" != . ]; then + src="$src$opt_e" + dst="$dst$opt_e" + fi + + # Check for correct arguments + if [ ".$src" = ".$dst" ]; then + echo "$msgprefix:Error: source and destination are the same" 1>&2 + exit 1 + fi + + # Make a temp file name in the destination directory + dstdir=`echo $dst | sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;'` + dsttmp="$dstdir/#INST@$$#" + + # Verbosity + if [ ".$opt_v" = .yes ]; then + echo "$src -> $dst" 1>&2 + fi + + # Copy or move the file name to the temp name + # (because we might be not allowed to change the source) + if [ ".$opt_C" = .yes ]; then + opt_c=yes + fi + if [ ".$opt_c" = .yes ]; then + if [ ".$opt_t" = .yes ]; then + echo "cp $src $dsttmp" 1>&2 + fi + cp $src $dsttmp || exit $? + else + if [ ".$opt_t" = .yes ]; then + echo "mv $src $dsttmp" 1>&2 + fi + mv $src $dsttmp || exit $? + fi + + # Adjust the target file + # (we do chmod last to preserve setuid bits) + if [ ".$opt_s" = .yes ]; then + if [ ".$opt_t" = .yes ]; then + echo "strip $dsttmp" 1>&2 + fi + strip $dsttmp || exit $? + fi + if [ ".$opt_o" != . ]; then + if [ ".$opt_t" = .yes ]; then + echo "chown $opt_o $dsttmp" 1>&2 + fi + chown $opt_o $dsttmp || exit $? + fi + if [ ".$opt_g" != . ]; then + if [ ".$opt_t" = .yes ]; then + echo "chgrp $opt_g $dsttmp" 1>&2 + fi + chgrp $opt_g $dsttmp || exit $? + fi + if [ ".$opt_m" != . ]; then + if [ ".$opt_t" = .yes ]; then + echo "chmod $opt_m $dsttmp" 1>&2 + fi + chmod $opt_m $dsttmp || exit $? + fi + + # Determine whether to do a quick install + # (has to be done _after_ the strip was already done) + quick=no + if [ ".$opt_C" = .yes ]; then + if [ -r $dst ]; then + if cmp -s $src $dst; then + quick=yes + fi + fi + fi + + # Finally install the file to the real destination + if [ $quick = yes ]; then + if [ ".$opt_t" = .yes ]; then + echo "rm -f $dsttmp" 1>&2 + fi + rm -f $dsttmp + else + if [ ".$opt_t" = .yes ]; then + echo "rm -f $dst && mv $dsttmp $dst" 1>&2 + fi + rm -f $dst && mv $dsttmp $dst + fi + ;; + +mkdir ) + ## + ## mkdir -- Make one or more directories + ## Copyright (c) 1996-1999 Ralf S. Engelschall + ## Originally written for public domain by Noah Friedman + ## Cleaned up and enhanced for shtool + ## + + errstatus=0 + for p in ${1+"$@"}; do + # when the directory already exists... + if [ -d "$p" ]; then + if [ ".$opt_f" = .no ]; then + echo "$msgprefix:Error: file exists: $p" 1>&2 + errstatus=1 + break + else + continue + fi + fi + # when the directory has to be created + if [ ".$opt_p" = .no ]; then + if [ ".$opt_t" = .yes ]; then + echo "mkdir $p" 1>&2 + fi + mkdir $p || errstatus=$? + else + # the smart situation + set fnord `echo ":$p" |\ + sed -e 's/^:\//%/' \ + -e 's/^://' \ + -e 's/\// /g' \ + -e 's/^%/\//'` + shift + pathcomp= + for d in ${1+"$@"}; do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp="./$pathcomp" ;; + esac + if [ ! -d "$pathcomp" ]; then + if [ ".$opt_t" = .yes ]; then + echo "mkdir $pathcomp" 1>&2 + fi + mkdir $pathcomp || errstatus=$? + if [ ".$opt_m" != . ]; then + if [ ".$opt_t" = .yes ]; then + echo "chmod $opt_m $pathcomp" 1>&2 + fi + chmod $opt_m $pathcomp || errstatus=$? + fi + fi + pathcomp="$pathcomp/" + done + fi + done + exit $errstatus + ;; + +esac + +exit 0 + +##EOF## diff --git a/build2.mk b/build2.mk deleted file mode 100644 index fdbfd2c8508de..0000000000000 --- a/build2.mk +++ /dev/null @@ -1,56 +0,0 @@ -# Workhorse for build.mk -# -# $Id$ - -include generated_lists - -LT_TARGETS = ltconfig ltmain.sh config.guess config.sub - -makefile_in_files = $(makefile_am_files:.am=.in) -makefile_files = $(makefile_am_files:e.am=e) - -config_h_in = php_config.h.in - -acconfig_h_SOURCES = acconfig.h.in $(config_h_files) - -targets = $(makefile_in_files) configure $(config_h_in) - - -all: Zend/Makefile.am TSRM/Makefile.am $(targets) - -Zend/Makefile.am: - test -d Zend || (test -d ../Zend && ln -s ../Zend Zend) - -TSRM/Makefile.am: - test -d TSRM || (test -d ../TSRM && ln -s ../TSRM TSRM) - -acconfig.h: $(acconfig_h_SOURCES) - @echo rebuilding $@ - @cat $(acconfig_h_SOURCES) > $@ - -$(makefile_in_files): $(makefile_am_files) aclocal.m4 configure.in $(config_m4_files) - @echo rebuilding Makefile.in\'s - @for i in $(LT_TARGETS); do \ - if test -f "$$i"; then \ - mv $$i $$i.bak; \ - cp $$i.bak $$i; \ - fi; \ - done - @test -f want_dependencies || flag=-i; \ - automake -a $$flag $(AMFLAGS) $(makefile_files) 2>&1 \ - | grep -v PHP_OUTPUT_FILES || true >&2 - @for i in $(LT_TARGETS); do mv $$i.bak $$i; done - -aclocal.m4: configure.in acinclude.m4 - aclocal - -$(config_h_in): configure.in acconfig.h -# explicitly remove target since autoheader does not seem to work -# correctly otherwise (timestamps are not updated) - @echo rebuilding $@ - @rm -f $@ - autoheader - -configure: aclocal.m4 configure.in $(config_m4_files) - @echo rebuilding $@ - autoconf diff --git a/buildconf b/buildconf index 0dd249756b4b9..63ad650af1058 100755 --- a/buildconf +++ b/buildconf @@ -26,4 +26,4 @@ else subdirs='' fi -${MAKE:-make} -s -f build.mk AMFLAGS="$automake_flags" $subdirs +${MAKE:-make} -s -f build/build.mk AMFLAGS="$automake_flags" diff --git a/configure.in b/configure.in index 261959af3e377..a38c564f45128 100644 --- a/configure.in +++ b/configure.in @@ -1,10 +1,12 @@ dnl ## $Id$ -*- sh -*- dnl ## Process this file with autoconf to produce a configure script. -divert(0) +divert(1) AC_INIT(main.c) +PHP_FAST_OUTPUT(sapi/Makefile ext/Makefile Makefile pear/Makefile) + dnl Because ``make install'' is often performed by the superuser, dnl we create the libs subdirectory as the user who configures PHP. dnl Otherwise, the current user will not be able to delete libs @@ -25,25 +27,30 @@ CONFIGURE_COMMAND=$0 for arg in "$@"; do CONFIGURE_COMMAND="$CONFIGURE_COMMAND '$arg'" done -AC_SUBST(CONFIGURE_COMMAND) -dnl ## Diversion 1 is the initial checking of OS features, programs, +php_shtool="$srcdir/build/shtool" +T_MD=`$php_shtool echo -n -e %B` +T_ME=`$php_shtool echo -n -e %b` + +dnl ## Diversion 2 is the initial checking of OS features, programs, dnl ## libraries and so on. -dnl ## In diversion 2 we check for compile-time options to the PHP +dnl ## In diversion 3 we check for compile-time options to the PHP dnl ## core and how to deal with different system dependencies. This dnl ## includes what regex library is used and whether debugging or short dnl ## tags are enabled, and the default behaviour of php.ini options. dnl ## This is also where an SAPI interface is selected (choosing between dnl ## Apache module, CGI etc.) -dnl ## In diversion 3 we check which extensions should be compiled. +dnl ## In diversion 4 we check which extensions should be compiled. dnl ## All of these are normally in the extension directories. -dnl ## Diversion 4 is the last one. Here we generate files and clean up. +dnl ## Diversion 5 is the last one. Here we generate files and clean up. -divert(1) +divert(2) +PHP_CONFIGURE_PART(Running system checks) + dnl ## This is where the version number is changed from now on! AM_INIT_AUTOMAKE(php, 4.0b4-dev) @@ -62,10 +69,6 @@ fi AM_CONFIG_HEADER(php_config.h) AM_MAINTAINER_MODE -phplibdir=$libdir/php -AC_SUBST(phplibdir) -AC_SUBST(PHP_VERSION) - dnl We want this one before the checks, so the checks can modify CFLAGS. test -z "$CFLAGS" && auto_cflags=1 @@ -109,14 +112,13 @@ AC_C_CONST if test "$ac_cv_c_const" = "yes" ; then LEX_CFLAGS="-DYY_USE_CONST" fi -AC_SUBST(LEX_CFLAGS) sinclude(Zend/acinclude.m4) sinclude(Zend/Zend.m4) sinclude(TSRM/tsrm.m4) dnl check for -R, etc. switch -AC_MSG_CHECKING(if compiler supports -R) +AC_MSG_CHECKING(whether compiler supports -R) AC_CACHE_VAL(php_cv_cc_dashr,[ SAVE_LIBS="${LIBS}" LIBS="-R /usr/lib ${LIBS}" @@ -126,7 +128,7 @@ AC_MSG_RESULT($php_cv_cc_dashr) if test $php_cv_cc_dashr = "yes"; then ld_runpath_switch="-R" else - AC_MSG_CHECKING([if compiler supports -Wl,-rpath,]) + AC_MSG_CHECKING([whether compiler supports -Wl,-rpath,]) AC_CACHE_VAL(php_cv_cc_rpath,[ SAVE_LIBS="${LIBS}" LIBS="-Wl,-rpath,/usr/lib ${LIBS}" @@ -157,7 +159,6 @@ if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then fi INCLUDES="-I\$(top_builddir)/Zend -I\$(top_srcdir)" -AC_SUBST(INCLUDES) AC_CHECK_LIB(nsl, gethostname, [ AC_ADD_LIBRARY(nsl) @@ -250,48 +251,9 @@ dnl Checks for typedefs, structures, and compiler characteristics. AC_STRUCT_TM AC_STRUCT_TIMEZONE -AC_CACHE_CHECK([for tm_gmtoff in struct tm], ac_cv_struct_tm_gmtoff, -[AC_TRY_COMPILE([#include -#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;], - ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no)]) - -if test "$ac_cv_struct_tm_gmtoff" = yes; then - AC_DEFINE(HAVE_TM_GMTOFF) -fi - -AC_CACHE_CHECK(for struct flock,ac_cv_struct_flock, - AC_TRY_COMPILE([ -#include -#include - ], - [struct flock x;], - [ - ac_cv_struct_flock=yes - ],[ - ac_cv_struct_flock=no - ]) -) - -AC_CACHE_CHECK(for socklen_t,ac_cv_socklen_t, - AC_TRY_COMPILE([ -#include -#include -],[ -socklen_t x; -],[ - ac_cv_socklen_t=yes -],[ - ac_cv_socklen_t=no -])) - - -if test "$ac_cv_struct_flock" = "yes" ; then - AC_DEFINE(HAVE_STRUCT_FLOCK, 1) -fi - -if test "$ac_cv_socklen_t" = "no"; then - AC_CHECK_TYPE(socklen_t, unsigned int) -fi +PHP_TM_GMTOFF +PHP_STRUCT_FLOCK +PHP_SOCKLEN_T AC_CHECK_SIZEOF(long, 8) AC_CHECK_SIZEOF(int, 4) @@ -307,7 +269,6 @@ if test "`uname -s 2>/dev/null`" != "QNX"; then else AC_MSG_WARN(warnings level for cc set to 0) WARNING_LEVEL=0 - AC_SUBST(WARNING_LEVEL) fi AC_STRUCT_ST_RDEV @@ -395,12 +356,12 @@ if test $ac_cv_type_in_addr_t = no; then AC_DEFINE(in_addr_t, u_int) fi -divert(2) +divert(3) + + abs_srcdir=`(cd $srcdir; pwd)` abs_builddir=`pwd` -AC_SUBST(abs_srcdir) -AC_SUBST(abs_builddir) AC_MSG_CHECKING(whether to use a configuration file) AC_ARG_WITH(config-file-path, @@ -451,7 +412,6 @@ else fi -AC_SUBST(DEBUG_CFLAGS) test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS" @@ -606,26 +566,30 @@ if test "$PHP_PEAR" = "yes"; then PEAR_DIR=pear fi -AC_SUBST(PEAR_DIR) PHP_SAPI=cgi PHP_BUILD_PROGRAM dnl paths to the targets relative to the build directory SAPI_PROGRAM=php +dnl on HP-UX, the extension is .sl. Need to improve this SAPI_SHARED=libs/libphp4.so SAPI_STATIC=libs/libphp4.a -esyscmd(./scripts/config-stubs sapi) +PHP_CONFIGURE_PART(Configuring SAPI modules) -divert(3) +esyscmd(./scripts/config-stubs sapi) -AC_SUBST(EXTRA_LIBS) -AC_SUBST(EXTRA_LDFLAGS) +AC_MSG_CHECKING(for chosen SAPI module) +AC_MSG_RESULT($PHP_SAPI) + +divert(4) +PHP_CONFIGURE_PART(Configuring extensions) + # reading config stubs esyscmd(./scripts/config-stubs ext) -PHP_OUTPUT(sapi/$PHP_SAPI/Makefile) +PHP_FAST_OUTPUT(sapi/$PHP_SAPI/Makefile) AC_MSG_CHECKING(whether to enable versioning) AC_ARG_ENABLE(versioning, @@ -644,7 +608,7 @@ if test "$PHP_VERSIONING" = "yes"; then fi fi -divert(4) +divert(5) enable_shared=yes enable_static=yes @@ -663,13 +627,6 @@ static) ;; esac - - -AM_PROG_LIBTOOL -if test "$enable_debug" != "yes"; then - AM_SET_LIBTOOL_VARIABLE([--silent]) -fi - PHP_REGEX case "`uname -s`" in @@ -679,6 +636,7 @@ esac CPPFLAGS="$CPPFLAGS -D_REENTRANT" +PHP_CONFIGURE_PART(Configuring Zend) LIBZEND_BASIC_CHECKS LIBZEND_OTHER_CHECKS @@ -688,7 +646,6 @@ if test "$ZEND_EXPERIMENTAL_ZTS" = "yes"; then AC_DEFINE(ZTS) INCLUDES="$INCLUDES -I\$(top_builddir)/TSRM" PHP_THREAD_SAFETY=yes - PHP_OUTPUT(TSRM/Makefile) else PHP_THREAD_SAFETY=no fi @@ -700,9 +657,6 @@ if test "$abs_srcdir" != "$abs_builddir"; then fi fi -AC_SUBST(TSRM_DIR) -AC_SUBST(TSRM_LIB) - dnl *** Commented out - generates slow code and consumes a lot of dnl *** resources during compilation - we need to figure out how dnl *** to supply it only when absolutely necessary @@ -716,47 +670,109 @@ EXTRA_LIBS="$EXTRA_LIBS $LIBS" LIBS="" LDFLAGS="" if test "$PHP_THREAD_SAFETY" = "yes"; then + PHP_CONFIGURE_PART(Configuring TSRM) TSRM_BASIC_CHECKS TSRM_OTHER_CHECKS EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS" EXTRA_LIBS="$EXTRA_LIBS $LIBS" LDFLAGS="" LIBS="" + PHP_OUTPUT(TSRM/Makefile) fi phplibdir="`pwd`/modules" phptempdir="`pwd`/libs" -AC_SUBST(phplibdir) -AC_SUBST(phptempdir) AC_BUILD_RPATH EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS" - -AC_SUBST(CFLAGS) -AC_SUBST(PROG_SENDMAIL) -AC_SUBST(PHP_RPATHS) -AC_SUBST(NATIVE_RPATHS) -AC_SUBST(PHP_PROGRAM) PHP_BUILD_DATE=`date '+%Y-%m-%d'` -AC_SUBST(PHP_BUILD_DATE) AC_DEFINE_UNQUOTED(PHP_BUILD_DATE,"$PHP_BUILD_DATE") PHP_UNAME=`uname -a` AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME") PHP_OS=`uname` AC_DEFINE_UNQUOTED(PHP_OS,"$PHP_OS") -AC_SUBST(PHP_LDFLAGS) -AC_SUBST(PHP_LIBS) -AC_SUBST(PHP_SAPI) -AC_SUBST(INSTALL_IT) + +PHP_SUBST(abs_builddir) +PHP_SUBST(abs_srcdir) +PHP_SUBST(bindir) +PHP_SUBST(exec_prefix) +PHP_SUBST(includedir) +PHP_SUBST(libdir) +PHP_SUBST(phplibdir) +PHP_SUBST(phptempdir) +PHP_SUBST(prefix) + +PHP_SUBST(CC) +PHP_SUBST(CFLAGS) +PHP_SUBST(CONFIGURE_COMMAND) +PHP_SUBST(CPP) +PHP_SUBST(CPPFLAGS) +PHP_SUBST(CXX) +PHP_SUBST(DEBUG_CFLAGS) +PHP_SUBST(DEFS) +PHP_SUBST(EXTRA_LDFLAGS) +PHP_SUBST(EXTRA_LIBS) +PHP_SUBST(INCLUDES) +PHP_SUBST(INSTALL_IT) +PHP_SUBST(LEX) +PHP_SUBST(LEX_OUTPUT_ROOT) +PHP_SUBST(LFLAGS) +PHP_SUBST(LIBTOOL) +PHP_SUBST(NATIVE_RPATHS) +PHP_SUBST(PEAR_DIR) +PHP_SUBST(PHP_BUILD_DATE) +PHP_SUBST(PHP_COMPILE) +PHP_SUBST(PHP_LDFLAGS) +PHP_SUBST(PHP_LIBS) +PHP_SUBST(PHP_PROGRAM) +PHP_SUBST(PHP_RPATHS) +PHP_SUBST(PHP_SAPI) +PHP_SUBST(PHP_VERSION) +PHP_SUBST(PROG_SENDMAIL) +PHP_SUBST(SHELL) +PHP_SUBST(SHLIBTOOL) +PHP_SUBST(TSRM_DIR) +PHP_SUBST(TSRM_LIB) +PHP_SUBST(WARNING_LEVEL) +PHP_SUBST(YACC) + +PHP_CONFIGURE_PART(Configuring libtool) +AM_PROG_LIBTOOL +if test "$enable_debug" != "yes"; then + AM_SET_LIBTOOL_VARIABLE([--silent]) +fi + +PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<' + +if test "$enable_shared" = "yes"; then + SHLIBTOOL='$(LIBTOOL)' +else + if test -n "$EXT_SHARED"; 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' + else + PHP_COMPILE='$(COMPILE) -c $< && touch $@' + fi +fi + +test "$prefix" = "NONE" && prefix="/usr/local" +test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)' + +PHP_CONFIGURE_PART(Generating files) + +PHP_FAST_GENERATE + #libphp4.module -AC_OUTPUT([Makefile php4.spec Zend/Makefile ext/Makefile sapi/Makefile pear/Makefile - $PHP_OUTPUT_FILES - scripts/mkextlib build-defs.h], [], [ +AC_OUTPUT([php4.spec Zend/Makefile + scripts/mkextlib build-defs.h + $PHP_OUTPUT_FILES + ], [], [ if test ! -f $srcdir/ext/bcmath/number.c; then echo "creating number.c" @@ -817,11 +833,8 @@ if true; then echo "+--------------------------------------------------------------------+" fi - ]) -divert - dnl ## Local Variables: dnl ## tab-width: 4 dnl ## End: diff --git a/ext/Makefile.am b/ext/Makefile.am deleted file mode 100644 index 6bad8560f8e22..0000000000000 --- a/ext/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -SUBDIRS = @EXT_SUBDIRS@ - diff --git a/ext/Makefile.in b/ext/Makefile.in new file mode 100644 index 0000000000000..9ec7373d60d7c --- /dev/null +++ b/ext/Makefile.in @@ -0,0 +1,21 @@ + +DEPTH = .. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +SUBDIRS = $(EXT_STATIC) $(EXT_SHARED) + +all: + @list='$(EXT_STATIC)'; for i in $$list; do \ + echo "Making all in $$i"; \ + (cd $$i && $(MAKE) all); \ + done + @list='$(EXT_SHARED)'; for i in $$list; do \ + echo "Making shared in $$i"; \ + (cd $$i && $(MAKE) shared); \ + done + +NO_RECURSION = all + +include $(topsrcdir)/build/rules.mk diff --git a/ext/apache/Makefile.am b/ext/apache/Makefile.am deleted file mode 100644 index 32b246cf00437..0000000000000 --- a/ext/apache/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_apache.la -libphpext_apache_la_SOURCES=apache.c - diff --git a/ext/apache/Makefile.in b/ext/apache/Makefile.in new file mode 100644 index 0000000000000..8a27bb166c758 --- /dev/null +++ b/ext/apache/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libapache.la +LTLIBRARY_SOURCES = apache.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/aspell/Makefile.am b/ext/aspell/Makefile.am deleted file mode 100644 index 355308958b775..0000000000000 --- a/ext/aspell/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_aspell.la -libphpext_aspell_la_SOURCES=aspell.c - diff --git a/ext/aspell/Makefile.in b/ext/aspell/Makefile.in new file mode 100644 index 0000000000000..1c5ad5182287d --- /dev/null +++ b/ext/aspell/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libaspell.la +LTLIBRARY_SOURCES = aspell.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/bcmath/Makefile.am b/ext/bcmath/Makefile.am deleted file mode 100644 index 762104ad759b9..0000000000000 --- a/ext/bcmath/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -INCLUDES=@INCLUDES@ -I@top_srcdir@ -I@top_srcdir@/Zend -noinst_LTLIBRARIES=libphpext_bcmath.la -libphpext_bcmath_la_SOURCES=bcmath.c number.c diff --git a/ext/bcmath/Makefile.in b/ext/bcmath/Makefile.in new file mode 100644 index 0000000000000..63953d35e08da --- /dev/null +++ b/ext/bcmath/Makefile.in @@ -0,0 +1,11 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libbcmath.la +LTLIBRARY_SOURCES = bcmath.c number.c + +include $(topsrcdir)/build/ltlib.mk + diff --git a/ext/cpdf/Makefile.am b/ext/cpdf/Makefile.am deleted file mode 100644 index 5118f95250cb6..0000000000000 --- a/ext/cpdf/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_cpdf.la -libphpext_cpdf_la_SOURCES=cpdf.c - diff --git a/ext/cpdf/Makefile.in b/ext/cpdf/Makefile.in new file mode 100644 index 0000000000000..11961fe66eff3 --- /dev/null +++ b/ext/cpdf/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libcpdf.la +LTLIBRARY_SOURCES = cpdf.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/cybercash/Makefile.am b/ext/cybercash/Makefile.am deleted file mode 100644 index 486524e47c4b8..0000000000000 --- a/ext/cybercash/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -noinst_LTLIBRARIES=libphpext_cybercash.la -libphpext_cybercash_la_SOURCES=cybercash.c diff --git a/ext/cybercash/Makefile.in b/ext/cybercash/Makefile.in new file mode 100644 index 0000000000000..fc24880d42f26 --- /dev/null +++ b/ext/cybercash/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libcybercash.la +LTLIBRARY_SOURCES = cybercash.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/dav/Makefile.am b/ext/dav/Makefile.am deleted file mode 100644 index 63d0510a9789a..0000000000000 --- a/ext/dav/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_dav.la -libphpext_dav_la_SOURCES=dav.c - diff --git a/ext/dav/Makefile.in b/ext/dav/Makefile.in new file mode 100644 index 0000000000000..c3522068b49bd --- /dev/null +++ b/ext/dav/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libdav.la +LTLIBRARY_SOURCES = dav.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/db/Makefile.am b/ext/db/Makefile.am deleted file mode 100644 index 7dc6e32d07d72..0000000000000 --- a/ext/db/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_db.la -libphpext_db_la_SOURCES=db.c - diff --git a/ext/db/Makefile.in b/ext/db/Makefile.in new file mode 100644 index 0000000000000..a2856cdfc3800 --- /dev/null +++ b/ext/db/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libdb.la +LTLIBRARY_SOURCES = db.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/db/config.m4 b/ext/db/config.m4 index 319174dd51842..a7042d141bb48 100644 --- a/ext/db/config.m4 +++ b/ext/db/config.m4 @@ -2,7 +2,7 @@ dnl $Id$ dnl config.m4 for extension db dnl don't forget to call PHP_EXTENSION(db) -divert(1) +divert(2)dnl AC_CHECK_HEADERS(db1/ndbm.h) @@ -21,13 +21,13 @@ AC_DEFUN(AC_PREFERRED_DB_LIB,[ else AC_MSG_RESULT($DBM_TYPE chosen) fi - AC_SUBST(DBM_LIB) - AC_SUBST(DBM_TYPE) + PHP_SUBST(DBM_LIB) + PHP_SUBST(DBM_TYPE) ]) AC_PREFERRED_DB_LIB -divert(3) +divert(4)dnl if test "$DBM_LIB" = "-lgdbm"; then AC_CHECK_HEADER(gdbm.h, [ GDBM_INCLUDE="" ], [ diff --git a/ext/dba/Makefile.am b/ext/dba/Makefile.am deleted file mode 100644 index 2ab929391ee59..0000000000000 --- a/ext/dba/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_dba.la -libphpext_dba_la_SOURCES=dba.c dba_cdb.c dba_db2.c dba_dbm.c dba_gdbm.c \ - dba_ndbm.c dba_db3.c - diff --git a/ext/dba/Makefile.in b/ext/dba/Makefile.in new file mode 100644 index 0000000000000..1e45ed519ffee --- /dev/null +++ b/ext/dba/Makefile.in @@ -0,0 +1,11 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libdba.la +LTLIBRARY_SOURCES = dba.c dba_cdb.c dba_db2.c dba_dbm.c dba_gdbm.c \ + dba_ndbm.c dba_db3.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/dbase/Makefile.am b/ext/dbase/Makefile.am deleted file mode 100644 index ddce0d08db462..0000000000000 --- a/ext/dbase/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -noinst_LTLIBRARIES=libphpext_dbase.la -libphpext_dbase_la_SOURCES=dbf_head.c dbf_rec.c dbf_misc.c dbf_ndx.c dbase.c - diff --git a/ext/dbase/Makefile.in b/ext/dbase/Makefile.in new file mode 100644 index 0000000000000..b3b93f3ee8935 --- /dev/null +++ b/ext/dbase/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libdbase.la +LTLIBRARY_SOURCES = dbf_head.c dbf_rec.c dbf_misc.c dbf_ndx.c dbase.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/dbase/config.m4 b/ext/dbase/config.m4 index 29f54923bf0d6..1241888987cfe 100644 --- a/ext/dbase/config.m4 +++ b/ext/dbase/config.m4 @@ -11,11 +11,8 @@ AC_ARG_WITH(dbase, else AC_MSG_RESULT(no) AC_DEFINE(DBASE,0) - DBASE_LIB= fi ],[ AC_MSG_RESULT(no) AC_DEFINE(DBASE,0) - DBASE_LIB= ]) -AC_SUBST(DBASE_LIB) diff --git a/ext/domxml/Makefile.am b/ext/domxml/Makefile.am deleted file mode 100644 index 36775910d36cb..0000000000000 --- a/ext/domxml/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_domxml.la -libphpext_domxml_la_SOURCES=domxml.c - diff --git a/ext/domxml/Makefile.in b/ext/domxml/Makefile.in new file mode 100644 index 0000000000000..76745b9644bd6 --- /dev/null +++ b/ext/domxml/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libdomxml.la +LTLIBRARY_SOURCES = domxml.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/ereg/regex/Makefile.am b/ext/ereg/regex/Makefile.am deleted file mode 100644 index 993db56b1ac15..0000000000000 --- a/ext/ereg/regex/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -noinst_LTLIBRARIES = libregex.la - -libregex_la_SOURCES = regcomp.c regexec.c regerror.c regfree.c diff --git a/ext/ereg/regex/Makefile.in b/ext/ereg/regex/Makefile.in new file mode 100644 index 0000000000000..f3215ab42ff98 --- /dev/null +++ b/ext/ereg/regex/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = .. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libregex.la +LTLIBRARY_SOURCES = regcomp.c regexec.c regerror.c regfree.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/ext_skel b/ext/ext_skel index a1b0406e6b845..eadab951b95e2 100755 --- a/ext/ext_skel +++ b/ext/ext_skel @@ -46,13 +46,19 @@ PHP_EXTENSION($extname) eof -$ECHO_N " Makefile.am$ECHO_C" -cat >Makefile.am <Makefile.in < $@.new && mv $@.new $@ - -#number.o: number.c -# $(CC) $(CFLAGS) -w@WARNING_LEVEL@ -c $< -o $@ diff --git a/ext/standard/config.m4 b/ext/standard/config.m4 index a637f2789d56e..8225bb7ec1534 100644 --- a/ext/standard/config.m4 +++ b/ext/standard/config.m4 @@ -1,6 +1,6 @@ dnl $Id$ -*- sh -*- -divert(1) +divert(2)dnl dnl dnl Check for crypt() capabilities @@ -129,7 +129,7 @@ AC_CHECK_LIB(crypt, crypt, [ AC_CHECK_FUNCS(getcwd) AC_CHECK_FUNCS(getwd) -divert(3) +divert(4)dnl AC_ARG_WITH(regex, [ --with-regex=TYPE regex library type: system, apache, php], diff --git a/ext/sybase/Makefile.am b/ext/sybase/Makefile.am deleted file mode 100644 index 00c2c0d592c26..0000000000000 --- a/ext/sybase/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_sybase.la -libphpext_sybase_la_SOURCES=sybase.c - diff --git a/ext/sybase/Makefile.in b/ext/sybase/Makefile.in new file mode 100644 index 0000000000000..864711f164faa --- /dev/null +++ b/ext/sybase/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsybase.la +LTLIBRARY_SOURCES = sybase.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/sybase_ct/Makefile.am b/ext/sybase_ct/Makefile.am deleted file mode 100644 index aac8cf7bcecc5..0000000000000 --- a/ext/sybase_ct/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_sybase_ct.la -libphpext_sybase_ct_la_SOURCES=php_sybase_ct.c - diff --git a/ext/sybase_ct/Makefile.in b/ext/sybase_ct/Makefile.in new file mode 100644 index 0000000000000..af189f2be907e --- /dev/null +++ b/ext/sybase_ct/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsybase_ct.la +LTLIBRARY_SOURCES = php_sybase_ct.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/sysvsem/Makefile.am b/ext/sysvsem/Makefile.am deleted file mode 100644 index c6cceb0f549cf..0000000000000 --- a/ext/sysvsem/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_sysvsem.la -libphpext_sysvsem_la_SOURCES=sysvsem.c - diff --git a/ext/sysvsem/Makefile.in b/ext/sysvsem/Makefile.in new file mode 100644 index 0000000000000..6988e43b3a769 --- /dev/null +++ b/ext/sysvsem/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsysvsem.la +LTLIBRARY_SOURCES = sysvsem.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/sysvshm/Makefile.am b/ext/sysvshm/Makefile.am deleted file mode 100644 index e539b095451ec..0000000000000 --- a/ext/sysvshm/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_sysvshm.la -libphpext_sysvshm_la_SOURCES=sysvshm.c - diff --git a/ext/sysvshm/Makefile.in b/ext/sysvshm/Makefile.in new file mode 100644 index 0000000000000..263ec993e79bb --- /dev/null +++ b/ext/sysvshm/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsysvshm.la +LTLIBRARY_SOURCES = sysvshm.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/wddx/Makefile.am b/ext/wddx/Makefile.am deleted file mode 100644 index c9bdf3bf71821..0000000000000 --- a/ext/wddx/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_wddx.la -libphpext_wddx_la_SOURCES=wddx.c - diff --git a/ext/wddx/Makefile.in b/ext/wddx/Makefile.in new file mode 100644 index 0000000000000..f437cb248fbf3 --- /dev/null +++ b/ext/wddx/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libwddx.la +LTLIBRARY_SOURCES = wddx.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/xml/Makefile.am b/ext/xml/Makefile.am deleted file mode 100644 index 504e4c6d9b191..0000000000000 --- a/ext/xml/Makefile.am +++ /dev/null @@ -1,12 +0,0 @@ -# $Id$ - -SRC=xml.c -INCLUDES=@INCLUDES@ @XML_INCLUDE@ -I@top_srcdir@ -I@top_srcdir@/Zend -noinst_LTLIBRARIES=@XML_STATIC@ -EXTRA_LTLIBRARIES=libphpext_xml.la xml.la -libphpext_xml_la_SOURCES=$(SRC) -phplib_LTLIBRARIES=@XML_SHARED@ -xml_la_SOURCES=$(SRC) -xml_la_LIBADD=@XML_LIBS@ -xml_la_LDFLAGS=-avoid-version -module -rpath $(phplibdir) -EXTRA_LIBS= diff --git a/ext/xml/Makefile.in b/ext/xml/Makefile.in new file mode 100644 index 0000000000000..634eede7aae11 --- /dev/null +++ b/ext/xml/Makefile.in @@ -0,0 +1,14 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libxml.la +LTLIBRARY_SOURCES = xml.c +LTLIBRARY_SHARED_NAME = xml.la +LTLIBRARY_SHARED_LIBADD = $(XML_LIBS) + +EXTRA_INCLUDES = $(XML_INCLUDE) + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/xml/config.m4 b/ext/xml/config.m4 index 8c55e8eac3e5d..64e7f70732ace 100644 --- a/ext/xml/config.m4 +++ b/ext/xml/config.m4 @@ -52,7 +52,5 @@ AC_ARG_WITH(xml, ],[ AC_MSG_RESULT(no) ]) -AC_SUBST(XML_LIBS) -AC_SUBST(XML_INCLUDE) -AC_SUBST(XML_STATIC) -AC_SUBST(XML_SHARED) +PHP_SUBST(XML_LIBS) +PHP_SUBST(XML_INCLUDE) diff --git a/ext/yp/Makefile.am b/ext/yp/Makefile.am deleted file mode 100644 index 46da2fbd736ca..0000000000000 --- a/ext/yp/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_yp.la -libphpext_yp_la_SOURCES=yp.c - diff --git a/ext/yp/Makefile.in b/ext/yp/Makefile.in new file mode 100644 index 0000000000000..bb3b8f46f14a2 --- /dev/null +++ b/ext/yp/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libyp.la +LTLIBRARY_SOURCES = yp.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/ext/zlib/Makefile.am b/ext/zlib/Makefile.am deleted file mode 100644 index 830739ede3750..0000000000000 --- a/ext/zlib/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ -# $Id$ - -noinst_LTLIBRARIES=libphpext_zlib.la -libphpext_zlib_la_SOURCES=zlib.c - diff --git a/ext/zlib/Makefile.in b/ext/zlib/Makefile.in new file mode 100644 index 0000000000000..b860cbce8a8c5 --- /dev/null +++ b/ext/zlib/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libzlib.la +LTLIBRARY_SOURCES = zlib.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/main/internal_functions_win32.c b/main/internal_functions_win32.c index b4666e8703080..a2b58a125c9cc 100644 --- a/main/internal_functions_win32.c +++ b/main/internal_functions_win32.c @@ -49,7 +49,7 @@ #include "ext/standard/php_output.h" #include "ext/standard/php_array.h" #include "ext/standard/php_assert.h" -#include "ext/COM/php_COM.h" +#include "ext/com/php_COM.h" #include "ext/standard/reg.h" #include "ext/pcre/php_pcre.h" #include "ext/odbc/php_odbc.h" diff --git a/pear/Makefile.am b/pear/Makefile.am deleted file mode 100644 index cf92330f7dc2d..0000000000000 --- a/pear/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ - -peardir=$(prefix)/lib/php -pear_DBdir=$(prefix)/lib/php/DB - -install-data-local: - -$(mkinstalldirs) $(peardir) $(pear_DBdir) && \ - $(INSTALL_DATA) $(srcdir)/DB.php $(peardir) && \ - $(INSTALL_DATA) $(srcdir)/DB/common.php $(pear_DBdir) && \ - $(INSTALL_DATA) $(srcdir)/DB/odbc.php $(pear_DBdir) && \ - $(INSTALL_DATA) $(srcdir)/DB/mysql.php $(pear_DBdir) diff --git a/pear/Makefile.in b/pear/Makefile.in new file mode 100644 index 0000000000000..3074fc69d1023 --- /dev/null +++ b/pear/Makefile.in @@ -0,0 +1,89 @@ + +DEPTH = .. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +install_targets = install-data-local install-headers install-build + +include $(topsrcdir)/build/rules.mk + +peardir=$(prefix)/lib/php +pear_DBdir=$(prefix)/lib/php/DB + + +install-data-local: + -@$(mkinstalldirs) $(peardir) $(pear_DBdir) && \ + $(INSTALL_DATA) $(srcdir)/DB.php $(peardir) && \ + $(INSTALL_DATA) $(srcdir)/DB/common.php $(pear_DBdir) && \ + $(INSTALL_DATA) $(srcdir)/DB/odbc.php $(pear_DBdir) && \ + $(INSTALL_DATA) $(srcdir)/DB/mysql.php $(pear_DBdir) + +phpincludedir = $(includedir)/php +builddir = $(prefix)/lib/php/build + +BUILD_FILES = \ + pear/pear.m4 \ + build/fastgen.sh \ + build/library.mk \ + build/ltlib.mk \ + build/program.mk \ + build/rules.mk \ + build/rules_pear.mk \ + build/shtool \ + acinclude.m4 + +install-build: + -@$(mkinstalldirs) $(builddir) $(bindir) && \ + (cd $(topsrcdir) && cp $(BUILD_FILES) $(builddir)) && \ + echo "creating phpize" && \ + sed \ + -e 's#@PREFIX@#$(prefix)#' \ + < $(srcdir)/phpize.in > $(bindir)/phpize && \ + chmod +x $(bindir)/phpize && \ + echo "creating php-config" && \ + sed \ + -e 's#@PREFIX@#$(prefix)#' \ + -e 's#@PHPINCLUDEDIR@#$(phpincludedir)#g' \ + < $(srcdir)/php-config.in > $(bindir)/php-config && \ + chmod +x $(bindir)/php-config + +SRC_HEADERS = \ + php.h \ + php_regex.h \ + request_info.h \ + php3_compat.h \ + safe_mode.h \ + fopen-wrappers.h \ + php_version.h \ + php_globals.h \ + php_reentrancy.h \ + php_ini.h \ + SAPI.h + +BUILD_HEADERS = \ + php_config.h \ + Zend/zend_config.h \ + build-defs.h + +STANDARD_HEADERS = \ + php_output.h + +HEADER_DIRS = \ + Zend \ + TSRM \ + ext/standard \ + regex + +install-headers: + -@for i in $(HEADER_DIRS); do \ + paths="$$paths $(phpincludedir)/$$i"; \ + done; \ + $(mkinstalldirs) $$paths && \ + echo "creating header file hierarchy" && \ + (cd $(topsrcdir) && cp $(SRC_HEADERS) $(phpincludedir)) && \ + (cd $(topsrcdir)/ext/standard && cp *.h $(phpincludedir)/ext/standard) && \ + (cd $(topsrcdir) && cp regex/regex.h regex/regex_extra.h $(phpincludedir)/regex) && \ + (cd $(topsrcdir) && cp TSRM/TSRM.h $(phpincludedir)/TSRM) && \ + (cd $(topsrcdir)/Zend && cp *.h $(phpincludedir)/Zend) && \ + (cd $(DEPTH) && cp $(BUILD_HEADERS) $(phpincludedir)) diff --git a/pear/pear.m4 b/pear/pear.m4 new file mode 100644 index 0000000000000..fc552e4acb337 --- /dev/null +++ b/pear/pear.m4 @@ -0,0 +1,76 @@ + +AC_INIT(Makefile.in) + +AC_DEFUN(PHP_WITH_PHP_CONFIG,[ + AC_ARG_WITH(php-config, +[ --with-php-config=[PATH]],[ + PHP_CONFIG=$withval +],[ + PHP_CONFIG=php-config +]) + + prefix=`$PHP_CONFIG --prefix 2>/dev/null` + INCLUDES=`$PHP_CONFIG --includes 2>/dev/null` + + if test -z "$prefix"; then + AC_MSG_ERROR(Cannot find php-config. Please use --with-php-config=[PATH]) + fi + AC_MSG_CHECKING(PHP prefix) + AC_MSG_RESULT($prefix) + AC_MSG_CHECKING(PHP includes) + AC_MSG_RESULT($INCLUDES) +]) + +php_always_shared=yes + +AC_PROG_CC +AC_PROG_CC_C_O + +PHP_WITH_PHP_CONFIG + +AC_PREFIX_DEFAULT() + +sinclude(config.m4) + +enable_static=no +enable_shared=yes + +AC_PROG_LIBTOOL + +SHLIBTOOL='$(LIBTOOL)' +PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<' +phplibdir="`pwd`/modules" + +test "$prefix" = "NONE" && prefix="/usr/local" +test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)' + +PHP_SUBST(prefix) +PHP_SUBST(exec_prefix) +PHP_SUBST(libdir) +PHP_SUBST(prefix) +PHP_SUBST(phplibdir) + +PHP_SUBST(PHP_COMPILE) +PHP_SUBST(CC) +PHP_SUBST(CFLAGS) +PHP_SUBST(CPP) +PHP_SUBST(CPPFLAGS) +PHP_SUBST(CXX) +PHP_SUBST(DEFS) +PHP_SUBST(EXTRA_LDFLAGS) +PHP_SUBST(EXTRA_LIBS) +PHP_SUBST(INCLUDES) +PHP_SUBST(LEX) +PHP_SUBST(LEX_OUTPUT_ROOT) +PHP_SUBST(LFLAGS) +PHP_SUBST(SHLIBTOOL) +PHP_SUBST(LIBTOOL) +PHP_SUBST(SHELL) + +PHP_FAST_OUTPUT(Makefile) + +PHP_FAST_GENERATE + +AC_CONFIG_HEADER(php_config.h) + +AC_OUTPUT() diff --git a/pear/php-config.in b/pear/php-config.in new file mode 100644 index 0000000000000..5058c75e1c2b6 --- /dev/null +++ b/pear/php-config.in @@ -0,0 +1,16 @@ +#! /bin/sh + +prefix='@PREFIX@' +includes='-I@PHPINCLUDEDIR@ -I@PHPINCLUDEDIR@/Zend -I@PHPINCLUDEDIR@/TSRM' + +case "$1" in +--prefix) + echo $prefix;; +--includes) + echo $includes;; +*) + echo "Usage: $0 [--prefix|--includes]" + exit 1;; +esac + +exit 0 diff --git a/pear/phpize.in b/pear/phpize.in new file mode 100644 index 0000000000000..ac4424dd1cc7a --- /dev/null +++ b/pear/phpize.in @@ -0,0 +1,26 @@ +#! /bin/sh + +prefix='@PREFIX@' + +phpdir="$prefix/lib/php/build" + +test -d build || mkdir build + +for i in fastgen.sh library.mk ltlib.mk program.mk rules.mk rules_pear.mk shtool; do + cp $phpdir/$i build +done + +mv build/rules_pear.mk build/rules.mk + +cp $phpdir/acinclude.m4 . + +sed \ +-e "s#@prefix@#$prefix#" \ +< $phpdir/pear.m4 > configure.in + +touch .deps install-sh mkinstalldirs missing + +aclocal +autoconf +autoheader +libtoolize -f -c diff --git a/regex/Makefile.am b/regex/Makefile.am deleted file mode 100644 index 993db56b1ac15..0000000000000 --- a/regex/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -noinst_LTLIBRARIES = libregex.la - -libregex_la_SOURCES = regcomp.c regexec.c regerror.c regfree.c diff --git a/regex/Makefile.in b/regex/Makefile.in new file mode 100644 index 0000000000000..f3215ab42ff98 --- /dev/null +++ b/regex/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = .. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libregex.la +LTLIBRARY_SOURCES = regcomp.c regexec.c regerror.c regfree.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/Makefile.am b/sapi/Makefile.am deleted file mode 100644 index 58d6fae73831c..0000000000000 --- a/sapi/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -SUBDIRS = $(PHP_SAPI) - diff --git a/sapi/Makefile.in b/sapi/Makefile.in new file mode 100644 index 0000000000000..de717b6e58f3c --- /dev/null +++ b/sapi/Makefile.in @@ -0,0 +1,9 @@ + +DEPTH = .. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +SUBDIRS = $(PHP_SAPI) + +include $(topsrcdir)/build/rules.mk diff --git a/sapi/aolserver/Makefile.am b/sapi/aolserver/Makefile.am deleted file mode 100644 index 357d9bf151b38..0000000000000 --- a/sapi/aolserver/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -noinst_LTLIBRARIES=libphpsapi_aolserver.la -libphpsapi_aolserver_la_SOURCES=aolserver.c diff --git a/sapi/aolserver/Makefile.in b/sapi/aolserver/Makefile.in new file mode 100644 index 0000000000000..599ea22135e17 --- /dev/null +++ b/sapi/aolserver/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = aolserver.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/aolserver/config.m4 b/sapi/aolserver/config.m4 index e38fa3796ac82..e2377a473bb92 100644 --- a/sapi/aolserver/config.m4 +++ b/sapi/aolserver/config.m4 @@ -14,7 +14,7 @@ AC_ARG_WITH(aolserver, AC_DEFINE(HAVE_AOLSERVER,1,[Whether you have AOLserver]) PHP_SAPI=aolserver PHP_BUILD_SHARED - INSTALL_IT="\$(SHELL) \$(srcdir)/install-sh -m 0755 $SAPI_SHARED $NS_DIR/root/bin/" + INSTALL_IT="\$(INSTALL) -m 0755 $SAPI_SHARED $NS_DIR/root/bin/" RESULT=yes ]) AC_MSG_RESULT($RESULT) diff --git a/sapi/apache/Makefile.am b/sapi/apache/Makefile.am deleted file mode 100644 index ba36956a5ff24..0000000000000 --- a/sapi/apache/Makefile.am +++ /dev/null @@ -1,5 +0,0 @@ - -APACHE_INCLUDE=@APACHE_INCLUDE@ -INCLUDES=@INCLUDES@ -I@top_srcdir@ -I@top_srcdir@/Zend $(APACHE_INCLUDE) -noinst_LTLIBRARIES=libphpsapi_apache.la -libphpsapi_apache_la_SOURCES=sapi_apache.c mod_php4.c diff --git a/sapi/apache/Makefile.in b/sapi/apache/Makefile.in new file mode 100644 index 0000000000000..e591d4a8bb0e9 --- /dev/null +++ b/sapi/apache/Makefile.in @@ -0,0 +1,12 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = sapi_apache.c mod_php4.c + +include $(topsrcdir)/build/ltlib.mk + +INCLUDES += $(APACHE_INCLUDE) diff --git a/sapi/apache/config.m4 b/sapi/apache/config.m4 index 4f1a65b2c9ba5..a9c26ee3bdc41 100644 --- a/sapi/apache/config.m4 +++ b/sapi/apache/config.m4 @@ -193,20 +193,20 @@ AC_ARG_WITH(apache, ]) INCLUDES="$INCLUDES $APACHE_INCLUDE" -dnl## AC_SUBST(APACHE_INCLUDE) +dnl## PHP_SUBST(APACHE_INCLUDE) fi if test "x$APXS" != "x" -a "`uname -sv`" = "AIX 4" -a "$GCC" != "yes"; then APXS_EXP="-bE:sapi/apache/mod_php4.exp" fi -AC_SUBST(APXS_EXP) -AC_SUBST(APACHE_INCLUDE) -AC_SUBST(APACHE_TARGET) -AC_SUBST(APXS) -AC_SUBST(APXS_LDFLAGS) -AC_SUBST(APACHE_INSTALL) -AC_SUBST(STRONGHOLD) +PHP_SUBST(APXS_EXP) +PHP_SUBST(APACHE_INCLUDE) +PHP_SUBST(APACHE_TARGET) +PHP_SUBST(APXS) +PHP_SUBST(APXS_LDFLAGS) +PHP_SUBST(APACHE_INSTALL) +PHP_SUBST(STRONGHOLD) AC_MSG_CHECKING(for mod_charset compatibility option) AC_ARG_WITH(mod_charset, @@ -232,7 +232,7 @@ if test -n "$APACHE_MODULE"; then else APACHE_WANT_HSREGEX=no fi - AC_SUBST(APACHE_WANT_HSREGEX) + PHP_SUBST(APACHE_WANT_HSREGEX) PHP_APACHE_CHECK_RDYNAMIC PHP_EXTENSION(apache) PHP_OUTPUT(sapi/apache/libphp4.module) diff --git a/sapi/cgi/Makefile.am b/sapi/cgi/Makefile.am deleted file mode 100644 index 63ec80dc4cc35..0000000000000 --- a/sapi/cgi/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -noinst_LTLIBRARIES=libphpsapi_cgi.la -libphpsapi_cgi_la_SOURCES=cgi_main.c diff --git a/sapi/cgi/Makefile.in b/sapi/cgi/Makefile.in new file mode 100644 index 0000000000000..3519692fd1797 --- /dev/null +++ b/sapi/cgi/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = cgi_main.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/cgi/config.m4 b/sapi/cgi/config.m4 index cd872d5cbc86f..09d4aa93625b4 100644 --- a/sapi/cgi/config.m4 +++ b/sapi/cgi/config.m4 @@ -46,7 +46,7 @@ AC_ARG_ENABLE(discard_path, fi if test "$PHP_SAPI" = "cgi" ; then - INSTALL_IT="\$(SHELL) \$(srcdir)/install-sh -m 0755 $SAPI_PROGRAM \$(bindir)/$SAPI_CGI" + INSTALL_IT="\$(INSTALL) -m 0755 $SAPI_PROGRAM \$(bindir)/$SAPI_CGI" fi AC_MSG_CHECKING(for fhttpd module support) diff --git a/sapi/isapi/Makefile.am b/sapi/isapi/Makefile.am deleted file mode 100644 index f0fb1f9daabcd..0000000000000 --- a/sapi/isapi/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ - -noinst_LTLIBRARIES=libphpsapi_isapi.la -libphpsapi_isapi_la_SOURCES=php4isapi.c - diff --git a/sapi/isapi/Makefile.in b/sapi/isapi/Makefile.in new file mode 100644 index 0000000000000..f1425b164541f --- /dev/null +++ b/sapi/isapi/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = php4isapi.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/phttpd/Makefile.am b/sapi/phttpd/Makefile.am deleted file mode 100644 index 6430c64bc5a48..0000000000000 --- a/sapi/phttpd/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -noinst_LTLIBRARIES=libphpsapi_phttpd.la -libphpsapi_phttpd_la_SOURCES=phttpd.c diff --git a/sapi/phttpd/Makefile.in b/sapi/phttpd/Makefile.in new file mode 100644 index 0000000000000..ab0413fad0b50 --- /dev/null +++ b/sapi/phttpd/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = phttpd.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/phttpd/config.m4 b/sapi/phttpd/config.m4 index 21dbe1fb313f3..10460b84e0418 100644 --- a/sapi/phttpd/config.m4 +++ b/sapi/phttpd/config.m4 @@ -14,7 +14,7 @@ AC_ARG_WITH(phttpd, AC_DEFINE(HAVE_PHTTPD,1,[Whether you have phttpd]) PHP_SAPI=phttpd PHP_BUILD_SHARED - INSTALL_IT="\$(SHELL) \$(srcdir)/install-sh -m 0755 $SAPI_SHARED $PHTTPD_DIR/modules/" + INSTALL_IT="\$(INSTALL) -m 0755 $SAPI_SHARED $PHTTPD_DIR/modules/" RESULT=yes ]) AC_MSG_RESULT($RESULT) diff --git a/sapi/roxen/Makefile.am b/sapi/roxen/Makefile.am deleted file mode 100644 index 1b24bb6e4f3b6..0000000000000 --- a/sapi/roxen/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ - -noinst_LTLIBRARIES=libphpsapi_roxen.la -libphpsapi_roxen_la_SOURCES=roxen.c diff --git a/sapi/roxen/Makefile.in b/sapi/roxen/Makefile.in new file mode 100644 index 0000000000000..02afc96179d5a --- /dev/null +++ b/sapi/roxen/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = roxen.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/servlet/Makefile.am b/sapi/servlet/Makefile.in similarity index 75% rename from sapi/servlet/Makefile.am rename to sapi/servlet/Makefile.in index 11103e5541f6e..d0fd7a29b231c 100644 --- a/sapi/servlet/Makefile.am +++ b/sapi/servlet/Makefile.in @@ -1,11 +1,16 @@ -# $Id$ -SRC=servlet.c java.c +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ -CFLAGS=@CFLAGS@ @JAVA_CFLAGS@ -INCLUDES=@INCLUDES@ @JAVA_INCLUDE@ -I@top_srcdir@ -I@top_srcdir@/Zend -noinst_LTLIBRARIES=libphpsapi_servlet.la -libphpsapi_servlet_la_SOURCES=$(SRC) +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = servlet.c java.c + +include $(topsrcdir)/build/ltlib.mk + +CFLAGS += $(JAVA_CFLAGS) +INCLUDES += $(JAVA_INCLUDE) java.c : ../../ext/java/java.c @cp ../../ext/java/java.c . diff --git a/sapi/servlet/config.m4 b/sapi/servlet/config.m4 index 28c3ed1ba28c7..3259fe86d6082 100644 --- a/sapi/servlet/config.m4 +++ b/sapi/servlet/config.m4 @@ -37,4 +37,4 @@ AC_ARG_WITH(servlet, AC_MSG_RESULT(no) ]) -AC_SUBST(SERVLET_CLASSPATH) +PHP_SUBST(SERVLET_CLASSPATH) diff --git a/sapi/thttpd/Makefile.am b/sapi/thttpd/Makefile.am deleted file mode 100644 index 3affcbf4ff5ba..0000000000000 --- a/sapi/thttpd/Makefile.am +++ /dev/null @@ -1,2 +0,0 @@ -noinst_LTLIBRARIES = libphpsapi_thttpd.la -libphpsapi_thttpd_la_SOURCES = thttpd.c diff --git a/sapi/thttpd/Makefile.in b/sapi/thttpd/Makefile.in new file mode 100644 index 0000000000000..4ebb9d6a1a323 --- /dev/null +++ b/sapi/thttpd/Makefile.in @@ -0,0 +1,10 @@ + +DEPTH = ../.. +topsrcdir = @topsrcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +LTLIBRARY_NAME = libsapi.la +LTLIBRARY_SOURCES = thttpd.c + +include $(topsrcdir)/build/ltlib.mk diff --git a/sapi/thttpd/config.m4 b/sapi/thttpd/config.m4 index 79ae3dbde1ad7..50d37a87e35c3 100644 --- a/sapi/thttpd/config.m4 +++ b/sapi/thttpd/config.m4 @@ -8,9 +8,13 @@ AC_ARG_WITH(thttpd, cp $abs_srcdir/sapi/thttpd/php_thttpd.h $SAPI_STATIC $THTTPD;\ test -f $THTTPD/php_patched || \ (cd $THTTPD && patch < $abs_srcdir/sapi/thttpd/thttpd_patch && touch php_patched)" - AC_MSG_CHECKING(for thttpd) - AC_MSG_RESULT(yes - $THTTPD) + PHP_THTTPD="yes, using $THTTPD" AC_ADD_INCLUDE($THTTPD) PHP_BUILD_STATIC PHP_SAPI=thttpd +],[ + PHP_THTTPD="no" ]) + +AC_MSG_CHECKING(for thttpd) +AC_MSG_RESULT($PHP_THTTPD) diff --git a/snapshot b/snapshot new file mode 100755 index 0000000000000..f8e13ef9d9f89 --- /dev/null +++ b/snapshot @@ -0,0 +1,7 @@ +#! /bin/sh + +if test -n "$1"; then + flags="DISTNAME=$1" +fi + +${MAKE:-make} $flags -f build/build.mk snapshot