From 43a466a076ccae658c468615f7b05a93188bc897 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Sun, 20 Jun 1999 18:52:46 +0000 Subject: [PATCH] Introduce AC_ADD_* macros The use of AC_EXPAND_PATH makes it possible to continue to use relative paths when configuring PHP. (e.g. --with-apache=../apache-1.3.x works again) --- Makefile.in | 4 +-- acinclude.m4 | 78 ++++++++++++++++++++++++++++++++++++++++++++ configure.in.in | 5 ++- ext/ldap/config.m4 | 25 +++++++------- ext/mcrypt/config.m4 | 4 +-- ext/mhash/config.m4 | 4 +-- ext/msql/config.m4 | 7 ++-- ext/mysql/config.m4 | 4 +-- ext/pgsql/config.m4 | 4 +-- ext/snmp/config.m4 | 7 ++-- 10 files changed, 107 insertions(+), 35 deletions(-) diff --git a/Makefile.in b/Makefile.in index e80e23c8a2..a87358fe0a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -53,13 +53,13 @@ LDFLAGS_SHLIB = @LDFLAGS_SHLIB@ 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 \ diff --git a/acinclude.m4 b/acinclude.m4 index e116f9542d..3863030f1a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -2,6 +2,84 @@ dnl $Id$ 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 diff --git a/configure.in.in b/configure.in.in index f987d54784..5e70749521 100644 --- a/configure.in.in +++ b/configure.in.in @@ -333,7 +333,7 @@ AC_ARG_WITH(apxs, 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 @@ -372,6 +372,7 @@ AC_ARG_WITH(shared-apache, 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 @@ -429,6 +430,7 @@ AC_ARG_WITH(apache, 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 @@ -866,6 +868,7 @@ AC_SUBST(PROG_SENDMAIL) 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) diff --git a/ext/ldap/config.m4 b/ext/ldap/config.m4 index d966fb8d8a..8e87299d8a 100644 --- a/ext/ldap/config.m4 +++ b/ext/ldap/config.m4 @@ -35,36 +35,33 @@ dnl I have tested Solaris, and it doesn't, but others may. Add 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) diff --git a/ext/mcrypt/config.m4 b/ext/mcrypt/config.m4 index 1b20490d89..530e118a04 100644 --- a/ext/mcrypt/config.m4 +++ b/ext/mcrypt/config.m4 @@ -16,8 +16,8 @@ AC_ARG_WITH(mcrypt, 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) diff --git a/ext/mhash/config.m4 b/ext/mhash/config.m4 index 5a19821462..92c03d4abd 100644 --- a/ext/mhash/config.m4 +++ b/ext/mhash/config.m4 @@ -16,8 +16,8 @@ AC_ARG_WITH(mhash, 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) diff --git a/ext/msql/config.m4 b/ext/msql/config.m4 index 4d88952aa1..f2087ea05b 100644 --- a/ext/msql/config.m4 +++ b/ext/msql/config.m4 @@ -32,9 +32,8 @@ AC_ARG_WITH(msql, 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) @@ -45,5 +44,3 @@ AC_ARG_WITH(msql, ],[ AC_MSG_RESULT(no) ]) -EXTRA_LIBS="$EXTRA_LIBS $MSQL_LFLAGS $MSQL_LIBS" -INCLUDES="$INCLUDES $MSQL_INCLUDE" diff --git a/ext/mysql/config.m4 b/ext/mysql/config.m4 index 4a20d50957..999677eab4 100644 --- a/ext/mysql/config.m4 +++ b/ext/mysql/config.m4 @@ -50,8 +50,8 @@ AC_ARG_WITH(mysql, 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 diff --git a/ext/pgsql/config.m4 b/ext/pgsql/config.m4 index 22aa33ceb6..bd83c2794e 100644 --- a/ext/pgsql/config.m4 +++ b/ext/pgsql/config.m4 @@ -18,6 +18,8 @@ AC_ARG_WITH(pgsql, 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" @@ -28,8 +30,6 @@ AC_ARG_WITH(pgsql, 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 diff --git a/ext/snmp/config.m4 b/ext/snmp/config.m4 index e7a5fab7f5..07473fd9c8 100644 --- a/ext/snmp/config.m4 +++ b/ext/snmp/config.m4 @@ -18,14 +18,11 @@ AC_ARG_WITH(snmp, 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 -- 2.50.1