On Thu, Jul 15, 2004 at 10:38:06AM +0100, Max Bowsher wrote:
> 3) It only implements "accept apr-0 or apr-1", but unless projects do extra
> compatibility work, and make sure to *never* expose the apr ABI in their own
> ABI, they will want "accept apr-0 only" or "accept apr-1 only".

Yes, this is the key problem.  Patch below is the logic I like; I
haven't done find_apu.m4.

I don't think it's worth having configure copy ap[ru]-config to
ap[ru]-1-config just to add another failure case here; just assume that
whatever version of APR/util is bundled is a suitable one.

--- build/find_apr.m4 5 Nov 2002 22:09:19 -0000 1.14 
+++ build/find_apr.m4 15 Jul 2004 09:54:55 -0000
@@ -6,7 +6,8 @@
 dnl embedding APR into the application source, or locating an installed
 dnl copy of APR.
 dnl
-dnl APR_FIND_APR([srcdir [, builddir, implicit-install-check]])
+dnl APR_FIND_APR([srcdir [, builddir, implicit-install-check]], 
+dnl              [min-version], [max-version])
 dnl
 dnl   where srcdir is the location of the bundled APR source directory, or
 dnl   empty if source is not bundled.
@@ -17,6 +18,10 @@
 dnl   where implicit-install-check set to 1 indicates if there is no
 dnl   --with-apr option specified, we will look for installed copies.
 dnl
+dnl   where min-version and max-version specify the mininum and maximum 
acceptable
+dnl   APR major version numbers which can be used, e.g. "0, 1" allows use of
+dnl   either APR 0.9 or APR 1.0; "1, 1" allows use of only APR 1.0.
+dnl
 dnl Sets the following variables on exit:
 dnl
 dnl   apr_found : "yes", "no", "reconfig"
@@ -40,6 +45,15 @@
 AC_DEFUN(APR_FIND_APR, [
   apr_found="no"
 
+  apr_minver="$4"
+  apr_maxver="$5"
+  if test -z "${apr_minver}"; then
+    apr_minver=0
+  fi
+  if test -z "${apr_maxver}"; then
+    apr_maxver=1
+  fi
+
   if test "$ac_cv_emxos2" = "yes"; then
     # Scripts don't pass test -x on OS/2
     TEST_X="test -f"
@@ -55,14 +69,19 @@
     if test "$withval" = "no" || test "$withval" = "yes"; then
       AC_MSG_ERROR([--with-apr requires a directory to be provided])
     fi
-
-    if $TEST_X "$withval/bin/apr-config"; then
+ 
+    if test "$apr_maxver" = "1" && $TEST_X "$withval/bin/apr-1-config"; then
+      apr_found="yes"
+      apr_config="$withval/bin/apr-1-config"
+    elif test "$apr_minver" = "0" && $TEST_X "$withval/bin/apr-config"; then
       apr_found="yes"
       apr_config="$withval/bin/apr-config"
     elif $TEST_X "$withval/apr-config"; then
+      # Already-configured build directory: presume version is suitable
       apr_found="yes"
       apr_config="$withval/apr-config"
     elif $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
+      # Full path to apr-config script: presume version is suitable
       apr_found="yes"
       apr_config="$withval"
     fi
@@ -84,13 +103,20 @@
       fi
     fi
     if test "$apr_found" = "no" && test -n "$3" && test "$3" = "1"; then
-      if apr-config --help > /dev/null 2>&1 ; then
+      if test "$apr_maxver" = "1" && apr-1-config --help > /dev/null 2>&1 ; 
then
+        apr_found="yes"
+        apr_config="apr-1-config"
+      elif test "$apr_minver" = "0" && apr-config --help > /dev/null 2>&1 ; 
then
         apr_found="yes"
         apr_config="apr-config"
       else
         dnl look in some standard places (apparently not in builtin/default)
         for lookdir in /usr /usr/local /opt/apr /usr/local/apache2 ; do
-          if $TEST_X "$lookdir/bin/apr-config"; then
+          if test "$apr_maxver" = "1" && $TEST_X "$lookdir/bin/apr-1-config"; 
then
+            apr_found="yes"
+            apr_config="$lookdir/bin/apr-1-config"
+            break
+          elif test "$apr_minver" = "0" && $TEST_X "$lookdir/bin/apr-config"; 
then
             apr_found="yes"
             apr_config="$lookdir/bin/apr-config"
             break

Reply via email to