diff options
author | jerenkrantz <jerenkrantz@13f79535-47bb-0310-9956-ffa450edef68> | 2004-08-01 00:52:20 +0000 |
---|---|---|
committer | jerenkrantz <jerenkrantz@13f79535-47bb-0310-9956-ffa450edef68> | 2004-08-01 00:52:20 +0000 |
commit | 054658eb7d0be25c6b0d5622591055b1daa304e8 (patch) | |
tree | fbd64f660138c73d8c13c22a8c3b5bad480ed10e | |
parent | 2875d385587c4e9fd7752d849f4ae4ba78716e65 (diff) | |
download | libapr-054658eb7d0be25c6b0d5622591055b1daa304e8.tar.gz |
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
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@65293 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | .cvsignore | 1 | ||||
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | Makefile.in | 9 | ||||
-rw-r--r-- | apr-config.in | 6 | ||||
-rw-r--r-- | build/find_apr.m4 | 106 | ||||
-rw-r--r-- | configure.in | 6 |
6 files changed, 92 insertions, 39 deletions
diff --git a/.cvsignore b/.cvsignore index f207ee24b..13ef1e0e2 100644 --- a/.cvsignore +++ b/.cvsignore @@ -6,6 +6,7 @@ config.status configure libtool apr-config +apr-*-config apr-config.out LibD LibR @@ -12,6 +12,9 @@ Changes for APR 1.1 [Deferring these features when 1.0 is rolled out.] 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 diff --git a/Makefile.in b/Makefile.in index 356630faa..fcd3caaaa 100644 --- a/Makefile.in +++ b/Makefile.in @@ -44,7 +44,7 @@ CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs \ 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 @@ includedir=@includedir@ installbuilddir=@installbuilddir@ # 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 @@ install: $(TARGET_LIB) apr-config.out build/apr_rules.out 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 ); \ diff --git a/apr-config.in b/apr-config.in index 230ad40cb..870cf888a 100644 --- a/apr-config.in +++ b/apr-config.in @@ -49,7 +49,7 @@ location=@APR_CONFIG_LOCATION@ 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 @@ Known values for OPTION are: --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. diff --git a/build/find_apr.m4 b/build/find_apr.m4 index 90865aeca..5ff75a7c7 100644 --- a/build/find_apr.m4 +++ b/build/find_apr.m4 @@ -6,17 +6,23 @@ dnl library. It provides a standardized mechanism for using APR. It supports 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 @@ AC_DEFUN(APR_FIND_APR, [ 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 ]) diff --git a/configure.in b/configure.in index 8f8d2236b..0722a3a68 100644 --- a/configure.in +++ b/configure.in @@ -2016,7 +2016,7 @@ AC_OUTPUT([ $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 @@ for i in $SAVE_FILES; do fi rm -f $i.save done -chmod +x apr-config +chmod +x apr-$APR_MAJOR_VERSION-config +],[ +APR_MAJOR_VERSION=$APR_MAJOR_VERSION ]) |