LDFLAGS_SHLIB_EXPORT = @LDFLAGS_SHLIB_EXPORT@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@ $(CFLAGS_SHLIB) $(CPPFLAGS) $(INCLUDE) @DEBUG_CFLAGS@ @STRONGHOLD@ $(PROF_CFLAGS)
-LDFLAGS = @LDFLAGS@ $(LDFLAGS_SHLIB) $(LDFLAGS_SHLIB_EXPORT) -L$(ZEND_DIR)
+LDFLAGS = @RPATHS@ @LDFLAGS@ $(LDFLAGS_SHLIB) $(LDFLAGS_SHLIB_EXPORT) -L$(ZEND_DIR)
REGCFLAGS = $(CFLAGS)
RANLIB = @RANLIB@
YACC = @YACC@
MAINT = @MAINT@
APXS = @APXS@
-APXS_LDFLAGS = $(EXTRA_LIBS) $(LIBS)
+APXS_LDFLAGS = @RPATHS@ $(EXTRA_LIBS) $(LIBS)
WARNING_LEVEL = @WARNING_LEVEL@
SOURCE = main.c internal_functions.c snprintf.c php3_sprintf.c \
dnl
dnl This file contains local autoconf functions.
+dnl
+dnl AC_PHP_ONCE(namespace, variable, code)
+dnl
+dnl execute code, if variable is not set in namespace
+dnl
+AC_DEFUN(AC_PHP_ONCE,[
+ unique=`echo $ac_n "$2$ac_c" | tr -c a-zA-Z0-9 x`
+ cmd="echo $ac_n \"\$$1$unique$ac_c\""
+ if test -n "$unique" && test "`eval $cmd`" = "" ; then
+ eval "$1$unique=set"
+ $3
+ fi
+])
+
+dnl
+dnl AC_EXPAND_PATH(path, variable)
+dnl
+dnl expands path to an absolute path and assigns it to variable
+dnl
+AC_DEFUN(AC_EXPAND_PATH,[
+ if echo "$1" | grep -v '^/' >/dev/null ; then
+ $2="`pwd`/$1"
+ else
+ $2="$1"
+ fi
+ eval "echo \"made from $1 \$$2\""
+])
+
+dnl
+dnl AC_ADD_LIBPATH(path)
+dnl
+dnl add a library to linkpath/runpath
+dnl
+AC_DEFUN(AC_ADD_LIBPATH,[
+ AC_EXPAND_PATH($1, ai_p)
+ AC_PHP_ONCE(LIBPATH, $ai_p, [
+ EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
+ if test -n "$APXS" ; then
+ RPATHS="$RPATHS ${apxs_runpath_switch}$ai_p'"
+ else
+ RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
+ fi
+ ])
+])
+
+dnl
+dnl AC_ADD_INCLUDE(path)
+dnl
+dnl add a include path
+dnl
+AC_DEFUN(AC_ADD_INCLUDE,[
+ AC_EXPAND_PATH($1, ai_p)
+ AC_PHP_ONCE(INCLUDEPATH, $ai_p, [
+ INCLUDES="$INCLUDES -I$ai_p"
+ ])
+])
+
+dnl
+dnl AC_ADD_LIBRARY(library)
+dnl
+dnl add a library to the link line
+dnl
+AC_DEFUN(AC_ADD_LIBRARY,[
+ AC_PHP_ONCE(LIBRARY, $1, [
+ EXTRA_LIBS="$EXTRA_LIBS -l$1"
+ ])
+])
+
+dnl
+dnl AC_ADD_LIBRARY_WITH_PATH(library, path)
+dnl
+dnl add a library to the link line and path to linkpath/runpath
+dnl
+AC_DEFUN(AC_ADD_LIBRARY_WITH_PATH,[
+ AC_ADD_LIBPATH($2)
+ AC_ADD_LIBRARY($1)
+])
+
dnl
dnl Check for cc option
if test "$withval" = "yes"; then
withval=apxs
fi
- APXS="$withval"
+ AC_EXPAND_PATH($withval, APXS)
APXS_LDFLAGS="@SYBASE_LFLAGS@ @SYBASE_LIBS@ @SYBASE_CT_LFLAGS@ @SYBASE_CT_LIBS@"
APACHE_INCLUDE="-I`$APXS -q INCLUDEDIR`"
BINNAME=libphp4.so
fi
if test "$withval" != "no"; then
if test -f $withval/src/include/httpd.h; then
+ AC_EXPAND_PATH($withval, withval)
APACHE_INCLUDE="-I$withval/src/include -I$withval/src/os/unix"
APACHE_TARGET=$withval/src/modules/php4
if test ! -d $APACHE_TARGET; then
fi
if test "$withval" != "no"; then
# For Apache 1.2.x
+ AC_EXPAND_PATH($withval, withval)
if test -f $withval/src/httpd.h; then
APACHE_INCLUDE=-I$withval/src
APACHE_TARGET=$withval/src
AC_SUBST(CFLAGS_SHLIB)
AC_SUBST(LDFLAGS_SHLIB)
AC_SUBST(LDFLAGS_SHLIB_EXPORT)
+AC_SUBST(RPATHS)
PHP_BUILD_DATE=`date '+%Y-%m-%d'`
AC_SUBST(PHP_BUILD_DATE)
dnl these here if necessary. -RL
if test `uname` = "Linux"; then
- LDAP_PTHREAD="-lpthread"
+ LDAP_PTHREAD="pthread"
else
LDAP_PTHREAD=
fi
if test -f $LDAP_LIBDIR/liblber.a; then
LDAP_LIBS="-lldap -llber"
+ AC_ADD_LIBRARY(ldap)
+ AC_ADD_LIBRARY(lber)
elif test -f $LDAP_LIBDIR/libldapssl30.so; then
- LDAP_LIBS="-lldapssl30 $LDAP_PTHREAD"
+ AC_ADD_LIBRARY(ldapssl30)
+ AC_ADD_LIBRARY($LDAP_PTHREAD)
AC_DEFINE(HAVE_NSLDAP)
elif test -f $LDAP_LIBDIR/libldapssl30.sl; then
- LDAP_LIBS="-lldapssl30"
+ AC_ADD_LIBRARY(ldapssl30)
AC_DEFINE(HAVE_NSLDAP)
elif test -f $LDAP_LIBDIR/libldap30.so; then
- LDAP_LIBS="-lldap30 $LDAP_PTHREAD"
+ AC_ADD_LIBRARY(ldap30)
+ AC_ADD_LIBRARY($LDAP_PTHREAD)
AC_DEFINE(HAVE_NSLDAP)
elif test -f $LDAP_LIBDIR/libldap30.sl; then
- LDAP_LIBS="-lldap30"
+ AC_ADD_LIBRARY(ldap30)
AC_DEFINE(HAVE_NSLDAP)
fi
- LDAP_INCLUDE=-I$LDAP_INCDIR
- if test -n "$APXS"; then
- LDAP_LFLAGS="-L$LDAP_LIBDIR ${apxs_runpath_switch}$LDAP_LIBDIR'"
- else
- LDAP_LFLAGS="-L$LDAP_LIBDIR ${ld_runpath_switch}$LDAP_LIBDIR"
- fi
-
- INCLUDES="$INCLUDES $LDAP_INCLUDE"
- EXTRA_LIBS="$EXTRA_LIBS $LDAP_LFLAGS $LDAP_LIBS"
+ AC_ADD_INCLUDE($LDAP_INCDIR)
+ AC_ADD_LIBPATH($LDAP_LIBDIR)
AC_DEFINE(HAVE_LDAP)
if test "$MCRYPT_DIR" = ""; then
AC_MSG_ERROR(Please reinstall libmcrypt - I cannot find mcrypt.h)
fi
- INCLUDES="$INCLUDES -I$MCRYPT_DIR/include"
- EXTRA_LIBS="$EXTRA_LIBS -L$MCRYPT_DIR/lib -lmcrypt"
+ AC_ADD_INCLUDE($MCRYPT_DIR/include)
+ AC_ADD_LIBRARY_WITH_PATH(mcrypt, $MCRYPT_DIR/lib)
AC_DEFINE(HAVE_LIBMCRYPT)
if test "$MHASH_DIR" = ""; then
AC_MSG_ERROR(Please reinstall libmhash - I cannot find mhash.h)
fi
- INCLUDES="$INCLUDES -I$MHASH_DIR/include"
- EXTRA_LIBS="$EXTRA_LIBS -L$MHASH_DIR/lib -lmhash"
+ AC_ADD_INCLUDE($MHASH_DIR/include)
+ AC_ADD_LIBRARY_WITH_PATH(mhash, $MHASH_DIR/lib)
AC_DEFINE(HAVE_LIBMHASH)
MSQL_INCDIR=$withval/include
MSQL_LIBDIR=$withval/lib
fi
- MSQL_INCLUDE=-I$MSQL_INCDIR
- MSQL_LFLAGS=-L$MSQL_LIBDIR
- MSQL_LIBS=-lmsql
+ AC_ADD_LIBRARY_WITH_PATH(msql, $MSQL_LIBDIR)
+ AC_ADD_INCLUDE($MSQL_INCDIR)
AC_DEFINE(HAVE_MSQL)
AC_MSG_RESULT(yes)
PHP_EXTENSION(msql)
],[
AC_MSG_RESULT(no)
])
-EXTRA_LIBS="$EXTRA_LIBS $MSQL_LFLAGS $MSQL_LIBS"
-INCLUDES="$INCLUDES $MSQL_INCLUDE"
AC_DEFINE(HAVE_MYSQL)
AC_MSG_RESULT(yes)
- EXTRA_LIBS="$EXTRA_LIBS $MYSQL_LFLAGS $MYSQL_LIBS"
- INCLUDES="$INCLUDES $MYSQL_INCLUDE"
+ AC_ADD_LIBRARY_WITH_PATH(mysqlclient, $MYSQL_LIBDIR)
+ AC_ADD_INCLUDE($MYSQL_INCDIR)
PHP_EXTENSION(mysql)
dnl check for errmsg.h, which isn't installed by some versions of 3.21
PGSQL_INCLUDE=-I$PGSQL_INCDIR
PGSQL_LFLAGS=-L$PGSQL_LIBDIR
PGSQL_LIBS=-lpq
+ AC_ADD_LIBRARY_WITH_PATH(pq, $PGSQL_LIBDIR)
+ AC_ADD_INCLUDE($PGSQL_INCDIR)
old_CFLAGS=$CFLAGS; old_LDFLAGS=$LDFLAGS; old_LIBS=$LIBS
CFLAGS="$CFLAGS $PGSQL_INCLUDE"
AC_CHECK_FUNC(PQcmdTuples,AC_DEFINE(HAVE_PQCMDTUPLES))
CFLAGS=$old_CFLAGS; LDFLAGS=$old_LDFLAGS; LIBS=$old_LIBS
PHP_EXTENSION(pgsql)
- EXTRA_LIBS="$EXTRA_LIBS $PGSQL_LFLAGS $PGSQL_LIBS"
- INCLUDES="$INCLUDES $PGSQL_INCLUDE"
else
AC_MSG_RESULT(no)
fi
test -d $withval/include/ucd-snmp && SNMP_INCDIR=$withval/include/ucd-snmp
SNMP_LIBDIR=$withval/lib
fi
- SNMP_INCLUDE=-I$SNMP_INCDIR
- SNMP_LFLAGS=-L$SNMP_LIBDIR
- SNMP_LIBS="-lsnmp"
AC_DEFINE(HAVE_SNMP)
AC_MSG_RESULT(yes)
PHP_EXTENSION(snmp)
- EXTRA_LIBS="$EXTRA_LIBS $SNMP_LFLAGS $SNMP_LIBS"
- INCLUDES="$INCLUDES $SNMP_INCLUDE"
+ AC_ADD_LIBRARY_WITH_PATH(snmp, $SNMP_LIBDIR)
+ AC_ADD_INCLUDE($SNMP_INCDIR)
else
AC_MSG_RESULT(no)
fi