]> granicus.if.org Git - php/commitdiff
- Fixed bug #31101 (missing kerberos header file path with --with-openssl)
authorfoobar <sniper@php.net>
Thu, 30 Dec 2004 14:50:06 +0000 (14:50 +0000)
committerfoobar <sniper@php.net>
Thu, 30 Dec 2004 14:50:06 +0000 (14:50 +0000)
acinclude.m4
ext/imap/config.m4
ext/openssl/config0.m4

index fe3887fa3472bce7170643eb3deaaa1bf0e30d75..7cb360fa04ae9bfa7eac08fd3da9aea0c85efc4f 100644 (file)
@@ -1577,6 +1577,64 @@ AC_DEFUN([PHP_CHECK_FRAMEWORK], [
   ])
 ])
 
+dnl
+dnl PHP_SETUP_KERBEROS(shared-add [, action-found [, action-not-found]])
+dnl
+dnl Common setup macro for kerberos
+dnl
+AC_DEFUN([PHP_SETUP_KERBEROS],[
+  found_kerberos=no
+  unset KERBEROS_CFLAGS
+  unset KERBEROS_LIBS
+
+  dnl First try to find krb5-config
+  if test -z "$KRB5_CONFIG"; then
+    AC_PATH_PROG(KRB5_CONFIG, krb5-config, no, [$PATH:/usr/kerberos/bin:/usr/local/bin])
+  fi
+
+  dnl If krb5-config is found try using it
+  if test "$PHP_KERBEROS" = "yes" && test -x "$KRB5_CONFIG"; then
+    KERBEROS_LIBS=`$KRB5_CONFIG --libs gssapi`
+    KERBEROS_CFLAGS=`$KRB5_CONFIG --cflags gssapi`
+
+    if test -n "$KERBEROS_LIBS" && test -n "$KERBEROS_CFLAGS"; then
+      found_kerberos=yes
+      PHP_EVAL_LIBLINE($KERBEROS_LIBS, $1)
+      PHP_EVAL_INCLINE($KERBEROS_CFLAGS)
+    fi
+  fi
+
+  dnl If still not found use old skool method
+  if test "$found_kerberos" = "no"; then
+
+    if test "$PHP_KERBEROS" = "yes"; then
+      PHP_KERBEROS="/usr/kerberos /usr/local /usr"
+    fi
+
+    for i in $PHP_KERBEROS; do
+      if test -f $i/$PHP_LIBDIR/libkrb5.a || test -f $i/$PHP_LIBDIR/libkrb5.$SHLIB_SUFFIX_NAME; then
+        PHP_KERBEROS_DIR=$i
+        break
+      fi
+    done
+
+    if test "$PHP_KERBEROS_DIR"; then
+      found_kerberos=yes
+      PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/$PHP_LIBDIR, $1)
+      PHP_ADD_LIBRARY(gssapi_krb5, 1, $1)
+      PHP_ADD_LIBRARY(krb5, 1, $1)
+      PHP_ADD_LIBRARY(k5crypto, 1, $1)
+      PHP_ADD_LIBRARY(com_err,  1, $1)
+      PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include)
+    fi
+  fi
+
+  if test "$found_kerberos" = "yes"; then
+ifelse([$2],[],:,[$2])
+ifelse([$3],[],,[else $3])
+  fi
+])
+
 dnl 
 dnl PHP_SETUP_OPENSSL(shared-add [, action-found [, action-not-found]])
 dnl
@@ -1587,13 +1645,20 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
   unset OPENSSL_INCDIR
   unset OPENSSL_LIBDIR
 
+  dnl Fallbacks for different configure options
+  if test "$PHP_OPENSSL" != "no"; then
+    PHP_OPENSSL_DIR=$PHP_OPENSSL
+  elif test "$PHP_IMAP_SSL" != "no"; then
+    PHP_OPENSSL_DIR=$PHP_IMAP_SSL
+  fi
+
   dnl First try to find pkg-config
   if test -z "$PKG_CONFIG"; then
     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
   fi
 
   dnl If pkg-config is found try using it
-  if test "$PHP_OPENSSL" = "yes" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists openssl; then
+  if test "$PHP_OPENSSL_DIR" = "yes" && test -x "$PKG_CONFIG" && $PKG_CONFIG --exists openssl; then
     if $PKG_CONFIG --atleast-version=0.9.6 openssl; then
       found_openssl=yes
       OPENSSL_LIBS=`$PKG_CONFIG --libs openssl`
@@ -1607,15 +1672,16 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
       PHP_EVAL_LIBLINE($OPENSSL_LIBS, $1)
       PHP_EVAL_INCLINE($OPENSSL_INCS)
     fi
+  fi
 
-  else 
-
-    dnl If pkg-config fails for some reason, revert to the old method
-    if test "$PHP_OPENSSL" = "yes"; then
-      PHP_OPENSSL="/usr/local/ssl /usr/local /usr /usr/local/openssl"
+  dnl If pkg-config fails for some reason, revert to the old method
+  if test "$found_openssl" = "no"; then
+  
+    if test "$PHP_OPENSSL_DIR" = "yes"; then
+      PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
     fi
 
-    for i in $PHP_OPENSSL; do
+    for i in $PHP_OPENSSL_DIR; do
       if test -r $i/include/openssl/evp.h; then
         OPENSSL_INCDIR=$i/include
       fi
@@ -1673,11 +1739,11 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
     PHP_ADD_LIBPATH($OPENSSL_LIBDIR, $1)
   fi
 
+  if test "$found_openssl" = "yes"; then
   dnl For apache 1.3.x static build
   OPENSSL_INCDIR_OPT=-I$OPENSSL_INCDIR
   AC_SUBST(OPENSSL_INCDIR_OPT)
 
-  if test "$found_openssl" = "yes"; then
 ifelse([$2],[],:,[$2])
 ifelse([$3],[],,[else $3])
   fi
index b892130d1865563b04aaaa27e9ce9912c2768b36..3a9c281046a49e8b6ebeb2319cb167009b8b596a 100644 (file)
@@ -43,41 +43,16 @@ AC_DEFUN([PHP_IMAP_TEST_BUILD], [
 ])
 
 AC_DEFUN([PHP_IMAP_KRB_CHK], [
-  AC_ARG_WITH(kerberos,
-  [  --with-kerberos[=DIR]     IMAP: Include Kerberos support. DIR is the Kerberos install dir.],[
-    PHP_KERBEROS=$withval
-  ],[
-    PHP_KERBEROS=no
-  ])
-
   if test "$PHP_KERBEROS" != "no"; then
-
-    if test "$PHP_KERBEROS" = "yes"; then
-      SEARCH_PATHS="/usr/kerberos /usr/local /usr"
-    else
-      SEARCH_PATHS=$PHP_KERBEROS
-    fi
-
-    for i in $SEARCH_PATHS; do
-      if test -f $i/$PHP_LIBDIR/libkrb5.a || test -f $i/$PHP_LIBDIR/libkrb5.$SHLIB_SUFFIX_NAME; then
-        PHP_KERBEROS_DIR=$i
-        break
-      fi
-    done
-
-    if test -z "$PHP_KERBEROS_DIR"; then
+    PHP_SETUP_KERBEROS(IMAP_SHARED_LIBADD,
+    [
+      AC_DEFINE(HAVE_IMAP_KRB,1,[ ])
+    ], [
       AC_MSG_ERROR([Kerberos libraries not found. 
       
       Check the path given to --with-kerberos (if no path is given, searches in /usr/kerberos, /usr/local and /usr )
       ])
-    fi
-    AC_DEFINE(HAVE_IMAP_KRB,1,[ ])
-    PHP_ADD_LIBPATH($PHP_KERBEROS_DIR/$PHP_LIBDIR, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBRARY(gssapi_krb5, 1, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBRARY(krb5, 1, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBRARY(k5crypto, 1, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBRARY(com_err,  1, IMAP_SHARED_LIBADD)
-    PHP_ADD_INCLUDE($PHP_KERBEROS_DIR/include)
+    ])
   else
     AC_EGREP_HEADER(auth_gss, $IMAP_INC_DIR/linkage.h, [
       AC_MSG_ERROR([This c-client library is built with Kerberos support. 
@@ -86,31 +61,26 @@ AC_DEFUN([PHP_IMAP_KRB_CHK], [
       ])
     ])
   fi
-
 ])
 
 AC_DEFUN([PHP_IMAP_SSL_CHK], [
-  AC_ARG_WITH(imap-ssl,
-  [  --with-imap-ssl=<DIR>     IMAP: Include SSL support. DIR is the OpenSSL install dir.],[
-    PHP_IMAP_SSL=$withval
-  ],[
-    PHP_IMAP_SSL=no
-  ])
-
-  if test "$PHP_IMAP_SSL" = "yes"; then
-    PHP_IMAP_SSL=/usr
-  fi
-
-  AC_MSG_CHECKING([whether SSL libraries are needed for c-client])
-
   if test "$PHP_IMAP_SSL" != "no"; then
-    AC_MSG_RESULT([$PHP_IMAP_SSL/$PHP_LIBDIR])
-    AC_DEFINE(HAVE_IMAP_SSL,1,[ ])
-    PHP_ADD_LIBRARY_DEFER(ssl,    1, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBRARY_DEFER(crypto, 1, IMAP_SHARED_LIBADD)
-    PHP_ADD_LIBPATH($PHP_IMAP_SSL/$PHP_LIBDIR, IMAP_SHARED_LIBADD)
-  else
-    AC_MSG_RESULT(no)
+    PHP_SETUP_OPENSSL(IMAP_SHARED_LIBADD,
+    [
+      AC_DEFINE(HAVE_IMAP_SSL,1,[ ])
+    ], [
+      AC_MSG_ERROR([OpenSSL libraries not found. 
+      
+      Check the path given to --with-openssl-dir and output in config.log)
+      ])
+    ])
+  elif test -f "$IMAP_INC_DIR/linkage.c"; then
+    AC_EGREP_HEADER(ssl_onceonlyinit, $IMAP_INC_DIR/linkage.c, [
+      AC_MSG_ERROR([This c-client library is built with SSL support. 
+
+      Add --with-imap-ssl to your configure line. Check config.log for details.
+      ])
+    ])
   fi
 ])
 
@@ -118,8 +88,14 @@ AC_DEFUN([PHP_IMAP_SSL_CHK], [
 PHP_ARG_WITH(imap,for IMAP support,
 [  --with-imap[=DIR]       Include IMAP support. DIR is the c-client install prefix.])
 
-if test "$PHP_IMAP" != "no"; then  
+PHP_ARG_WITH(kerberos,for IMAP Kerberos support,
+[  --with-kerberos[=DIR]     IMAP: Include Kerberos support. DIR is the Kerberos install prefix.], no, no)
 
+PHP_ARG_WITH(imap-ssl,for IMAP SSL support,
+[  --with-imap-ssl[=DIR]     IMAP: Include SSL support. DIR is the OpenSSL install prefix.], no, no)
+
+
+if test "$PHP_IMAP" != "no"; then  
     PHP_SUBST(IMAP_SHARED_LIBADD)
     PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
     AC_DEFINE(HAVE_IMAP,1,[ ])
index 157c35b66b5da02bd7845d864cc16166a9518cae..385eb5e2ff7a6b78843219aa8ff5acb37d849e72 100644 (file)
@@ -5,11 +5,19 @@ dnl
 PHP_ARG_WITH(openssl, for OpenSSL support,
 [  --with-openssl[=DIR]    Include OpenSSL support (requires OpenSSL >= 0.9.6)])
 
+PHP_ARG_WITH(kerberos, for Kerberos support,
+[  --with-kerberos[=DIR]     OPENSSL: Include Kerberos support], no, no)
+
 if test "$PHP_OPENSSL" != "no"; then
+  PHP_NEW_EXTENSION(openssl, openssl.c, $ext_shared)
+  PHP_SUBST(OPENSSL_SHARED_LIBADD)
+
+  if test "$PHP_KERBEROS" != "no"; then
+    PHP_SETUP_KERBEROS(OPENSSL_SHARED_LIBADD)
+  fi
+
   PHP_SETUP_OPENSSL(OPENSSL_SHARED_LIBADD, 
   [
-    PHP_NEW_EXTENSION(openssl, openssl.c xp_ssl.c, $ext_shared)
-    PHP_SUBST(OPENSSL_SHARED_LIBADD)
     AC_DEFINE(HAVE_OPENSSL_EXT,1,[ ])
   ], [
     AC_MSG_ERROR([OpenSSL check failed. Please check config.log for more information.])