jerenkrantz 2004/07/31 17:52:20
Modified: . .cvsignore CHANGES Makefile.in apr-config.in
configure.in
build find_apr.m4
Log:
Only install apr-$MAJOR-config and add appropriate detection code to
find_apr.m4 (APR_FIND_APR).
Justin made a few changes to Max's latest patch:
- Emit a warning at autoconf-time and default to [0 1] if 4th arg is missing.
- Fix some tpyos
- Change apr-config.in to not use multiple @APR_MAJOR_VERSION@ substs.
Submitted by: Max Bowsher
Reviewed by: Justin Erenkrantz
Revision Changes Path
1.25 +1 -0 apr/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /home/cvs/apr/.cvsignore,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -u -r1.24 -r1.25
--- .cvsignore 9 Jul 2004 15:51:58 -0000 1.24
+++ .cvsignore 1 Aug 2004 00:52:20 -0000 1.25
@@ -6,6 +6,7 @@
configure
libtool
apr-config
+apr-*-config
apr-config.out
LibD
LibR
1.486 +3 -0 apr/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr/CHANGES,v
retrieving revision 1.485
retrieving revision 1.486
diff -u -u -r1.485 -r1.486
--- CHANGES 31 Jul 2004 22:36:03 -0000 1.485
+++ CHANGES 1 Aug 2004 00:52:20 -0000 1.486
@@ -12,6 +12,9 @@
Changes with APR 1.0
+ *) Only install apr-$MAJOR-config and add appropriate detection code to
+ find_apr.m4 (APR_FIND_APR). [Max Bowsher <maxb ukf.net>]
+
*) Remove APR_STATUS_IS_SUCCESS() macro. [Justin Erenkrantz]
*) apr_proc_create() on Unix: Remove unnecessary check for read
1.107 +4 -5 apr/Makefile.in
Index: Makefile.in
===================================================================
RCS file: /home/cvs/apr/Makefile.in,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -u -r1.106 -r1.107
--- Makefile.in 1 Jul 2004 14:34:48 -0000 1.106
+++ Makefile.in 1 Aug 2004 00:52:20 -0000 1.107
@@ -44,7 +44,7 @@
build/apr_rules.out
DISTCLEAN_TARGETS = config.cache config.log config.status \
include/apr.h include/arch/unix/apr_private.h \
- libtool apr-config build/apr_rules.mk apr.pc
+ libtool $(APR_CONFIG) build/apr_rules.mk apr.pc
EXTRACLEAN_TARGETS = configure aclocal.m4 include/arch/unix/apr_private.h.in
\
build-outputs.mk build/ltcf-c.sh build/ltmain.sh build/libtool.m4
@@ -56,8 +56,8 @@
[EMAIL PROTECTED]@
# Create apr-config script suitable for the install tree
-apr-config.out: apr-config
- sed 's,^\(location=\).*$$,\1installed,' < apr-config > $@
+apr-config.out: $(APR_CONFIG)
+ sed 's,^\(location=\).*$$,\1installed,' < $(APR_CONFIG) > $@
# Create apr_rules.mk suitable for the install tree
build/apr_rules.out: build/apr_rules.mk
@@ -97,9 +97,8 @@
if [ ! -d $(DESTDIR)$(bindir) ]; then \
$(top_srcdir)/build/mkdir.sh $(DESTDIR)$(bindir); \
fi;
- $(LIBTOOL) --mode=install cp apr-config.out
$(DESTDIR)$(bindir)/apr-config
$(LIBTOOL) --mode=install cp apr-config.out
$(DESTDIR)$(bindir)/$(APR_CONFIG)
- chmod 755 $(DESTDIR)$(bindir)/apr-config
$(DESTDIR)$(bindir)/$(APR_CONFIG)
+ chmod 755 $(DESTDIR)$(bindir)/$(APR_CONFIG)
@if [ $(INSTALL_SUBDIRS) != "none" ]; then \
for i in $(INSTALL_SUBDIRS); do \
( cd $$i ; $(MAKE) DESTDIR=$(DESTDIR) install ); \
1.39 +3 -3 apr/apr-config.in
Index: apr-config.in
===================================================================
RCS file: /home/cvs/apr/apr-config.in,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -u -r1.38 -r1.39
--- apr-config.in 28 Feb 2004 18:31:41 -0000 1.38
+++ apr-config.in 1 Aug 2004 00:52:20 -0000 1.39
@@ -49,7 +49,7 @@
show_usage()
{
cat << EOF
-Usage: apr-config [OPTION]
+Usage: apr-$APR_MAJOR_VERSION-config [OPTION]
Known values for OPTION are:
--prefix[=DIR] change prefix to DIR
@@ -75,9 +75,9 @@
--help print this help
When linking with libtool, an application should do something like:
- APR_LIBS="\`apr-config --link-libtool --libs\`"
+ APR_LIBS="\`apr-$APR_MAJOR_VERSION-config --link-libtool --libs\`"
or when linking directly:
- APR_LIBS="\`apr-config --link-ld --libs\`"
+ APR_LIBS="\`apr-$APR_MAJOR_VERSION-config --link-ld --libs\`"
An application should use the results of --cflags, --cppflags, --includes,
and --ldflags in their build process.
1.597 +4 -2 apr/configure.in
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.596
retrieving revision 1.597
diff -u -u -r1.596 -r1.597
--- configure.in 8 Jul 2004 23:18:52 -0000 1.596
+++ configure.in 1 Aug 2004 00:52:20 -0000 1.597
@@ -2016,7 +2016,7 @@
$MAKEFILES
include/apr.h
build/apr_rules.mk
- apr-config
+ apr-$APR_MAJOR_VERSION-config:apr-config.in
apr.pc
],[
for i in $SAVE_FILES; do
@@ -2026,5 +2026,7 @@
fi
rm -f $i.save
done
-chmod +x apr-config
+chmod +x apr-$APR_MAJOR_VERSION-config
+],[
+APR_MAJOR_VERSION=$APR_MAJOR_VERSION
])
1.15 +77 -29 apr/build/find_apr.m4
Index: find_apr.m4
===================================================================
RCS file: /home/cvs/apr/build/find_apr.m4,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -u -r1.14 -r1.15
--- find_apr.m4 5 Nov 2002 22:09:19 -0000 1.14
+++ find_apr.m4 1 Aug 2004 00:52:20 -0000 1.15
@@ -6,17 +6,23 @@
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, acceptable-majors)
dnl
dnl where srcdir is the location of the bundled APR source directory, or
dnl empty if source is not bundled.
dnl
-dnl where blddir is the location where the bundled APR will will be built,
+dnl where builddir is the location where the bundled APR will will be
built,
dnl or empty if the build will occur in the srcdir.
dnl
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 acceptable-majors is a space separated list of acceptable major
+dnl version numbers. Often only a single major version will be acceptable.
+dnl If multiple versions are specified, and --with-apr=PREFIX or the
+dnl implicit installed search are used, then the first (leftmost) version
+dnl in the list that is found will be used. Currently defaults to [0 1].
+dnl
dnl Sets the following variables on exit:
dnl
dnl apr_found : "yes", "no", "reconfig"
@@ -47,56 +53,98 @@
TEST_X="test -x"
fi
+ m4_if([$4], [],
+ [
+ AC_WARNING([$0: missing argument 4 (acceptable-majors): Defaulting to
APR 0.x then APR 1.x])
+ acceptable_majors="0 1"
+ ], [acceptable_majors="$4"])
+
+ apr_temp_acceptable_apr_config=""
+ for apr_temp_major in $acceptable_majors
+ do
+ case $apr_temp_major in
+ 0)
+ apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config
apr-config"
+ ;;
+ *)
+ apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config
apr-$apr_temp_major-config"
+ ;;
+ esac
+ done
+
AC_MSG_CHECKING(for APR)
AC_ARG_WITH(apr,
- [ --with-apr=DIR|FILE prefix for installed APR, path to APR build
tree,
+ [ --with-apr=PATH prefix for installed APR, path to APR build
tree,
or the full path to apr-config],
[
if test "$withval" = "no" || test "$withval" = "yes"; then
- AC_MSG_ERROR([--with-apr requires a directory to be provided])
+ AC_MSG_ERROR([--with-apr requires a directory or file to be provided])
fi
- if $TEST_X "$withval/bin/apr-config"; then
- apr_found="yes"
- apr_config="$withval/bin/apr-config"
- elif $TEST_X "$withval/apr-config"; then
- apr_found="yes"
- apr_config="$withval/apr-config"
- elif $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
+ for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+ do
+ for lookdir in "$withval/bin" "$withval"
+ do
+ if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then
+ apr_found="yes"
+ apr_config="$lookdir/$apr_temp_apr_config_file"
+ break 2
+ fi
+ done
+ done
+
+ if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help >
/dev/null 2>&1 ; then
apr_found="yes"
apr_config="$withval"
fi
- dnl if --with-apr is used, then the target prefix/directory must be valid
+ dnl if --with-apr is used, it is a fatal error for its argument
+ dnl to be invalid
if test "$apr_found" != "yes"; then
- AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify
an install prefix, a
-build directory, or an apr-config file.])
+ AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify
an install prefix, a build directory, or an apr-config file.])
fi
],[
dnl if we have a bundled source directory, use it
if test -d "$1"; then
apr_temp_abs_srcdir="`cd $1 && pwd`"
apr_found="reconfig"
+ echo "sed -n
'/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p'
\"$1/include/apr_version.h\""
+ apr_bundled_major="`sed -n
'/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p'
\"$1/include/apr_version.h\"`"
+ case $apr_bundled_major in
+ "")
+ AC_MSG_ERROR([failed to find major version of bundled APR])
+ ;;
+ 0)
+ apr_temp_apr_config_file="apr-config"
+ ;;
+ *)
+ apr_temp_apr_config_file="apr-$apr_bundled_major-config"
+ ;;
+ esac
if test -n "$2"; then
- apr_config="$2/apr-config"
+ apr_config="$2/$apr_temp_apr_config_file"
else
- apr_config="$1/apr-config"
+ apr_config="$1/$apr_temp_apr_config_file"
fi
fi
if test "$apr_found" = "no" && test -n "$3" && test "$3" = "1"; then
- if 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
- apr_found="yes"
- apr_config="$lookdir/bin/apr-config"
- break
- fi
- done
- fi
+ for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+ do
+ if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+ apr_found="yes"
+ apr_config="$apr_temp_apr_config_file"
+ break
+ 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_temp_apr_config_file"; then
+ apr_found="yes"
+ apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+ break 2
+ fi
+ done
+ fi
+ done
fi
])