diff options
Diffstat (limited to 'buildconf')
-rwxr-xr-x | buildconf | 73 |
1 files changed, 60 insertions, 13 deletions
@@ -61,10 +61,12 @@ do done # -# Check to be sure that we have the srclib dependencies checked-out +# Check to be sure that we have the srclib dependencies checked-out, or that a +# working apr-config installation has been specified. # should_exit=0 +apr_config= # path to apr-config (empty if using a source directory) apr_found=0 apu_found=0 apr_major_version=2 @@ -76,6 +78,25 @@ do apr_src_dir=$dir apr_found=1 break + elif which "${dir}" >/dev/null 2>&1; then + # We're using apr-config. Do a sanity check. + apr_config=`which "${dir}"` + echo "testing apr-config executable: ${apr_config}" + + version=`"${apr_config}" --version` + version=`echo "${version}" | sed -n '/^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$/p'` + + if [ -z "${version}" ]; then + echo "apr-config gave us an invalid --version" + apr_config= + continue + fi + + echo "using apr-config version ${version}" + apr_major_version=${version} # we'll make a real "major version" later + apr_src_dir=`"${apr_config}" --installbuilddir` + apr_found=1 + break fi done @@ -86,12 +107,18 @@ if [ $apr_found -lt 1 ]; then echo "Please refer to the documentation on APR in the httpd INSTALL file." echo "" should_exit=1 +elif [ -n "${apr_config}" ]; then + apr_major_version=`echo "${apr_major_version}" | sed 's/\..*//'` else apr_major_version=`grep "#define APR_MAJOR_VERSION" \ $apr_src_dir/include/apr_version.h | sed 's/[^0-9]//g'` fi -if [ $apr_major_version -lt 2 ] ; then +# Find APR-util. Note: if we're using apr-config, we can completely skip this, +# even if APR is version 1. That's because we only end up caring about +# find_apu.m4, which is not actually installed in the standard APR-util +# distribution to begin with. +if [ -z "${apr_config}" -a $apr_major_version -lt 2 ] ; then if test -z "$apu_src_dir"; then apu_src_dir=`echo $apr_src_dir | sed -e 's#/apr#/apr-util#g;'` apu_src_dir="$apu_src_dir `echo $apr_src_dir | sed -e 's#/apr#/aprutil#;g'`" @@ -171,23 +198,43 @@ if [ $apr_major_version -lt 2 ] ; then fi echo copying build files -cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \ - $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \ - $apr_src_dir/build/find_apr.m4 build -if [ $apr_major_version -lt 2 ] ; then - cp $apu_src_dir/build/find_apu.m4 build +if [ -n "${apr_config}" ]; then + # If we're using apr-config, we switch things up a little bit: + # - use automake's config.* scripts instead of APR's + # - use the included PrintPath instead of copying from APR + # - assume find_apu.m4 is also in APR's --installbuilddir + + # Figure out where to copy config.* from. + automake=${AUTOMAKE:-automake} + am_libdir=`"${automake}" --print-libdir` + cp "${am_libdir}/config.guess" "${am_libdir}/config.sub" build + + # Remember that in this case, $apr_src_dir points to the build directory. + cp "$apr_src_dir/apr_common.m4" "$apr_src_dir/find_apr.m4" build + if [ $apr_major_version -lt 2 ] ; then + cp "$apr_src_dir/find_apu.m4" build + fi +else + cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \ + $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \ + $apr_src_dir/build/find_apr.m4 build + if [ $apr_major_version -lt 2 ] ; then + cp $apu_src_dir/build/find_apu.m4 build + fi fi # Remove any libtool files so one can switch between libtool 1.3 # and libtool 1.4 by simply rerunning the buildconf script. (cd build ; rm -f ltconfig ltmain.sh) -# Optionally copy libtool-1.3.x files -if [ -f $apr_src_dir/build/ltconfig ]; then - cp $apr_src_dir/build/ltconfig build -fi -if [ -f $apr_src_dir/build/ltmain.sh ]; then - cp $apr_src_dir/build/ltmain.sh build +if [ -z "${apr_config}" ]; then + # Optionally copy libtool-1.3.x files + if [ -f $apr_src_dir/build/ltconfig ]; then + cp $apr_src_dir/build/ltconfig build + fi + if [ -f $apr_src_dir/build/ltmain.sh ]; then + cp $apr_src_dir/build/ltmain.sh build + fi fi echo rebuilding $config_h_in |