|
|
dnl $Id$dnldnl This file contains local autoconf functions.
sinclude(dynlib.m4)
dnldnl PHP_LIBGCC_LIBPATH(gcc)dnl Stores the location of libgcc in libgcc_libpathdnlAC_DEFUN(PHP_LIBGCC_LIBPATH,[ changequote({,}) libgcc_libpath="`$1 --print-libgcc-file-name|sed 's%[^/][^/]*$%%'`" changequote([,])])
AC_DEFUN(PHP_ARG_ANALYZE,[case "[$]$1" inshared,*) ext_output="yes, shared" ext_shared=yes $1=`echo $ac_n "[$]$1$ac_c"|sed s/^shared,//` ;;shared) ext_output="yes, shared" ext_shared=yes $1=yes ;;no) ext_output="no" ext_shared=no ;;*) ext_output="yes" ext_shared=no ;;esac
AC_MSG_RESULT($ext_output)])
dnldnl PHP_ARG_WITH(arg-name, check message, help text[, default-val])dnl Sets PHP_ARG_NAME either to the user value or to the default value.dnl default-val defaults to no. dnlAC_DEFUN(PHP_ARG_WITH,[PHP_REAL_ARG_WITH([$1],[$2],[$3],[$4],PHP_[]translit($1,a-z-,A-Z_))])
AC_DEFUN(PHP_REAL_ARG_WITH,[AC_MSG_CHECKING($2)AC_ARG_WITH($1,[$3],$5=[$]withval,$5=ifelse($4,,no,$4))PHP_ARG_ANALYZE($5)])
dnldnl PHP_ARG_ENABLE(arg-name, check message, help text[, default-val])dnl Sets PHP_ARG_NAME either to the user value or to the default value.dnl default-val defaults to no. dnlAC_DEFUN(PHP_ARG_ENABLE,[PHP_REAL_ARG_ENABLE([$1],[$2],[$3],[$4],PHP_[]translit($1,a-z-,A-Z_))])
AC_DEFUN(PHP_REAL_ARG_ENABLE,[AC_MSG_CHECKING($2)AC_ARG_ENABLE($1,[$3],$5=[$]enableval,$5=ifelse($4,,no,$4))PHP_ARG_ANALYZE($5)])
AC_DEFUN(PHP_MODULE_PTR,[ EXTRA_MODULE_PTRS="$EXTRA_MODULE_PTRS $1,"]) AC_DEFUN(PHP_CONFIG_NICE,[ rm -f $1 cat >$1<<EOF#! /bin/sh## Created by configure
EOF
for arg in [$]0 "[$]@"; do echo "\"[$]arg\" \\" >> $1 done echo '"[$]@"' >> $1 chmod +x $1])
AC_DEFUN(PHP_TIME_R_TYPE,[AC_CACHE_CHECK(for time_r type, ac_cv_time_r_type,[AC_TRY_RUN([#include <time.h>#include <stdlib.h>
main() {char buf[27];struct tm t;time_t old = 0;int r, s;
s = gmtime_r(&old, &t);r = (int) asctime_r(&t, buf, 26);if (r == s && s == 0) exit(0);exit(1);}],[ ac_cv_time_r_type=hpux],[ ac_cv_time_r_type=normal],[ ac_cv_time_r_type=normal])])if test "$ac_cv_time_r_type" = "hpux"; then AC_DEFINE(PHP_HPUX_TIME_R,1,[Whether you have HP-SUX 10.x])fi])
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 <sys/types.h>#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 mmAC_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. switchAC_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" fifi])
AC_DEFUN(PHP_STRUCT_FLOCK,[AC_CACHE_CHECK(for struct flock,ac_cv_struct_flock, AC_TRY_COMPILE([#include <unistd.h>#include <fcntl.h> ], [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 <sys/types.h>#include <sys/socket.h>],[socklen_t x;],[ ac_cv_socklen_t=yes],[ ac_cv_socklen_t=no]))if test "$ac_cv_socklen_t" = "yes"; then AC_DEFINE(HAVE_SOCKLEN_T, 1, [Whether you have socklen_t])fi])
dnldnl PHP_SET_SYM_FILE(path)dnldnl set the path of the file which contains the symbol export listdnlAC_DEFUN(PHP_SET_SYM_FILE,[ PHP_SYM_FILE="$1"])
dnldnl PHP_BUILD_THREAD_SAFEdnlAC_DEFUN(PHP_BUILD_THREAD_SAFE,[ enable_experimental_zts=yes])
dnldnl PHP_BUILD_SHAREDdnlAC_DEFUN(PHP_BUILD_SHARED,[ php_build_target=shared])
dnldnl PHP_BUILD_STATICdnlAC_DEFUN(PHP_BUILD_STATIC,[ php_build_target=static])
dnldnl PHP_BUILD_PROGRAMdnlAC_DEFUN(PHP_BUILD_PROGRAM,[ php_build_target=program])
dnldnl AC_PHP_ONCE(namespace, variable, code)dnldnl execute code, if variable is not set in namespacednlAC_DEFUN(AC_PHP_ONCE,[ unique=`echo $ac_n "$2$ac_c" | tr -cd a-zA-Z0-9` cmd="echo $ac_n \"\$$1$unique$ac_c\"" if test -n "$unique" && test "`eval $cmd`" = "" ; then eval "$1$unique=set" $3 fi])
dnldnl AC_EXPAND_PATH(path, variable)dnldnl expands path to an absolute path and assigns it to variablednlAC_DEFUN(AC_EXPAND_PATH,[ if test -z "$1" || echo "$1" | grep '^/' >/dev/null ; then $2="$1" else ep_dir="`dirname \"$1\"`" ep_realdir="`(cd \"$ep_dir\" && pwd)`" $2="$ep_realdir/`basename \"$1\"`" fi])
dnldnl AC_ADD_LIBPATH(path)dnldnl add a library to linkpath/runpathdnlAC_DEFUN(AC_ADD_LIBPATH,[ if test "$1" != "/usr/lib"; then AC_EXPAND_PATH($1, ai_p) AC_PHP_ONCE(LIBPATH, $ai_p, [ test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" LDFLAGS="$LDFLAGS -L$ai_p" PHP_RPATHS="$PHP_RPATHS $ai_p" ]) fi])
dnldnl AC_BUILD_RPATH()dnldnl builds RPATH from PHP_RPATHSdnlAC_DEFUN(AC_BUILD_RPATH,[ if test "$PHP_RPATH" = "yes" && test -n "$PHP_RPATHS"; then OLD_RPATHS="$PHP_RPATHS" PHP_RPATHS="" for i in $OLD_RPATHS; do PHP_LDFLAGS="$PHP_LDFLAGS -L$i" PHP_RPATHS="$PHP_RPATHS -R $i" NATIVE_RPATHS="$NATIVE_RPATHS ${ld_runpath_switch}$i" done fi])
dnldnl AC_ADD_INCLUDE(path)dnldnl add a include pathdnlAC_DEFUN(AC_ADD_INCLUDE,[ if test "$1" != "/usr/include"; then AC_EXPAND_PATH($1, ai_p) AC_PHP_ONCE(INCLUDEPATH, $ai_p, [ INCLUDES="$INCLUDES -I$ai_p" ]) fi])
dnldnl AC_ADD_LIBRARY(library[, append])dnldnl add a library to the link linednlAC_DEFUN(AC_ADD_LIBRARY,[ AC_PHP_ONCE(LIBRARY, $1, [ ifelse($#, 1, LIBS="-l$1 $LIBS", LIBS="$LIBS -l$1") ])])
dnldnl AC_ADD_LIBRARY_DEFER(library[, append])dnldnl add a library to the link line (deferred)AC_DEFUN(AC_ADD_LIBRARY_DEFER,[ AC_PHP_ONCE(LIBRARY, $1, [ ifelse($#, 1, DLIBS="-l$1 $DLIBS", DLIBS="$DLIBS -l$1") ])])
dnldnl AC_ADD_LIBRARY_WITH_PATH(library, path[, shared-libadd])dnldnl add a library to the link line and path to linkpath/runpath.dnl if shared-libadd is not empty and $ext_shared is yes,dnl shared-libadd will be assigned the library informationdnlAC_DEFUN(AC_ADD_LIBRARY_WITH_PATH,[ifelse($3,,[ AC_ADD_LIBPATH($2) AC_ADD_LIBRARY($1)],[ if test "$ext_shared" = "yes"; then if test -n "$2"; then $3="[$]$3 -R$2 -L$2" fi $3="[$]$3 -l$1" else AC_ADD_LIBPATH($2) AC_ADD_LIBRARY($1) fi])])
dnldnl AC_ADD_LIBRARY_DEFER_WITH_PATH(library, path)dnldnl add a library to the link line (deferred)dnl and path to linkpath/runpath (not deferred)dnlAC_DEFUN(AC_ADD_LIBRARY_DEFER_WITH_PATH,[ AC_ADD_LIBPATH($2) AC_ADD_LIBRARY_DEFER($1)])
AC_DEFUN(AM_SET_LIBTOOL_VARIABLE,[ LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'])
dnldnl Check for cc optiondnlAC_DEFUN(AC_CHECK_CC_OPTION,[ echo "main(){return 0;}" > conftest.$ac_ext opt="$1" var=`echo $ac_n "$opt$ac_c"|tr -c a-zA-Z0-9 _` AC_MSG_CHECKING([if compiler supports -$1 really]) ac_php_compile="${CC-cc} -$opt -o conftest $CFLAGS $CPPFLAGS conftest.$ac_ext 2>&1" if eval $ac_php_compile 2>&1 | egrep "$opt" > /dev/null 2>&1 ; then eval php_cc_$var=no AC_MSG_RESULT(no) else if eval ./conftest 2>/dev/null ; then eval php_cc_$var=yes AC_MSG_RESULT(yes) else eval php_cc_$var=no AC_MSG_RESULT(no) fi fi])
AC_DEFUN(PHP_REGEX,[
if test "$REGEX_TYPE" = "php"; then REGEX_LIB=regex/libregex.la REGEX_DIR=regex AC_DEFINE(HSREGEX) AC_DEFINE(REGEX,1) PHP_FAST_OUTPUT(regex/Makefile)elif test "$REGEX_TYPE" = "system"; then AC_DEFINE(REGEX,0)fi
AC_MSG_CHECKING(which regex library to use)AC_MSG_RESULT($REGEX_TYPE)
PHP_SUBST(REGEX_DIR)PHP_SUBST(REGEX_LIB)PHP_SUBST(HSREGEX)])
dnldnl See if we have broken header files like SunOS has.dnlAC_DEFUN(AC_MISSING_FCLOSE_DECL,[ AC_MSG_CHECKING([for fclose declaration]) AC_TRY_COMPILE([#include <stdio.h>],[int (*func)() = fclose],[ AC_DEFINE(MISSING_FCLOSE_DECL,0) AC_MSG_RESULT(ok) ],[ AC_DEFINE(MISSING_FCLOSE_DECL,1) AC_MSG_RESULT(missing) ])])
dnldnl Check for broken sprintf()dnlAC_DEFUN(AC_BROKEN_SPRINTF,[ 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])
dnldnl PHP_EXTENSION(extname [, shared])dnldnl Includes an extension in the build.dnldnl "extname" is the name of the ext/ subdir where the extension residesdnl "shared" can be set to "shared" or "yes" to build the extension asdnl a dynamically loadable library.dnlAC_DEFUN(PHP_EXTENSION,[ EXT_SUBDIRS="$EXT_SUBDIRS $1" if test -d "$abs_srcdir/ext/$1"; thendnl ---------------------------------------------- Internal Module ext_builddir="ext/$1" ext_srcdir="$abs_srcdir/ext/$1" elsednl ---------------------------------------------- External Module ext_builddir="." ext_srcdir="$abs_srcdir" fi
if test "$2" != "shared" && test "$2" != "yes"; thendnl ---------------------------------------------- Static module LIB_BUILD($ext_builddir) EXT_LTLIBS="$EXT_LTLIBS $ext_builddir/lib$1.la" EXT_STATIC="$EXT_STATIC $1" else dnl ---------------------------------------------- Shared module LIB_BUILD($ext_builddir,yes) AC_DEFINE_UNQUOTED([COMPILE_DL_]translit($1,a-z-,A-Z_), 1, Whether to build $1 as dynamic module) fi
PHP_FAST_OUTPUT($ext_builddir/Makefile)])
PHP_SUBST(EXT_SUBDIRS)PHP_SUBST(EXT_STATIC)PHP_SUBST(EXT_SHARED)PHP_SUBST(EXT_LIBS)PHP_SUBST(EXT_LTLIBS)
dnldnl Solaris requires main code to be position independent in orderdnl to let shared objects find symbols. Weird. Ugly.dnldnl Must be run after all --with-NN options that let the userdnl choose dynamic extensions, and after the gcc test.dnlAC_DEFUN(PHP_SOLARIS_PIC_WEIRDNESS,[ AC_MSG_CHECKING(whether -fPIC is required) if test "$EXT_SHARED" != ""; then os=`uname -sr 2>/dev/null` case "$os" in "SunOS 5.6"|"SunOS 5.7") case "$CC" in gcc*|egcs*) CFLAGS="$CFLAGS -fPIC";; *) CFLAGS="$CFLAGS -fpic";; esac AC_MSG_RESULT(yes);; *) AC_MSG_RESULT(no);; esac else AC_MSG_RESULT(no) fi])
dnldnl Checks whether $withval is "shared" or starts with "shared,XXX"dnl and sets $shared to "yes" or "no", and removes "shared,?" stuffdnl from $withval.dnlAC_DEFUN(PHP_WITH_SHARED,[ case $withval in shared) shared=yes withval=yes ;; shared,*) shared=yes withval=`echo $withval | sed -e 's/^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'tdnl let programs access large files; you need to tell the compiler thatdnl you actually want your programs to work on large files. For morednl details about this brain damage please see:dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
dnl Written by Paul Eggert <eggert@twinsun.com>.
AC_DEFUN(AC_SYS_LFS,[dnl # If available, prefer support for large files unless the user specified # one of the CPPFLAGS, LDFLAGS, or LIBS variables. AC_MSG_CHECKING(whether large file support needs explicit enabling) ac_getconfs='' ac_result=yes ac_set='' ac_shellvars='CPPFLAGS LDFLAGS LIBS' for ac_shellvar in $ac_shellvars; do case $ac_shellvar in CPPFLAGS) ac_lfsvar=LFS_CFLAGS ;; *) ac_lfsvar=LFS_$ac_shellvar ;; esac eval test '"${'$ac_shellvar'+set}"' = set && ac_set=$ac_shellvar (getconf $ac_lfsvar) >/dev/null 2>&1 || { ac_result=no; break; } ac_getconf=`getconf $ac_lfsvar` ac_getconfs=$ac_getconfs$ac_getconf eval ac_test_$ac_shellvar=\$ac_getconf done case "$ac_result$ac_getconfs" in yes) ac_result=no ;; esac case "$ac_result$ac_set" in yes?*) ac_result="yes, but $ac_set is already set, so use its settings" esac AC_MSG_RESULT($ac_result) case $ac_result in yes) for ac_shellvar in $ac_shellvars; do eval $ac_shellvar=\$ac_test_$ac_shellvar done ;; esac])
AC_DEFUN(AC_SOCKADDR_SA_LEN,[ AC_CACHE_CHECK([for field sa_len in struct sockaddr],ac_cv_sockaddr_sa_len,[ AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>], [struct sockaddr s; s.sa_len;], [ac_cv_sockaddr_sa_len=yes AC_DEFINE(HAVE_SOCKADDR_SA_LEN)], [ac_cv_sockaddr_sa_len=no]) ])])
dnl ## PHP_AC_OUTPUT(file)dnl ## adds "file" to the list of files generated by AC_OUTPUTdnl ## This macro can be used several times.AC_DEFUN(PHP_OUTPUT,[ PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES $1"])
AC_DEFUN(PHP_DECLARED_TIMEZONE,[ AC_CACHE_CHECK(for declared timezone, ac_cv_declared_timezone,[ AC_TRY_COMPILE([#include <sys/types.h>#include <time.h>#ifdef HAVE_SYS_TIME_H#include <sys/time.h>#endif],[ time_t foo = (time_t) timezone;],[ ac_cv_declared_timezone=yes],[ ac_cv_declared_timezone=no])]) if test "$ac_cv_declared_timezone" = "yes"; then AC_DEFINE(HAVE_DECLARED_TIMEZONE, 1, [Whether system headers declare timezone]) fi])
AC_DEFUN(PHP_EBCDIC,[ AC_CACHE_CHECK([whether system uses EBCDIC],ac_cv_ebcdic,[ AC_TRY_RUN( [int main(void) { return (unsigned char)'A' != (unsigned char)0xC1; } ],[ ac_cv_ebcdic="yes"],[ ac_cv_ebcdic="no"],[ ac_cv_ebcdic="no"])]) if test "$ac_cv_ebcdic" = "yes"; then AC_DEFINE(CHARSET_EBCDIC,, [Define if system uses EBCDIC]) fi])
|