#!/bin/sh
ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'`
case "$ac_version" in
2.5*)
echo WARNING: You are using an outdated version of autoconf.
echo WARNING: This may lead to less than optimal performance of httpd.
echo WARNING: You should use autoconf 2.60 or newer.
sleep 1
;;
esac
apr_src_dir="srclib/apr ../apr"
apu_src_dir=""
while test $do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case "$1" in
--with-apr=*)
apr_src_dir=$optarg
;;
--with-apr-util=*)
apu_src_dir=$optarg
;;
-h|--help)
cat <<EOF
buildconf: generates the files needed to configure httpd.
Usage: $0 [OPTION]...
Configuration:
-h, --help display this help and exit
--with-apr=SRCDIR define a space-separated list of directories to
search for the APR source code. If, instead of a
directory, an apr-config executable name is passed,
APR-Config Mode is enabled (see below). Defaults to
"srclib/apr ../apr"
--with-apr-util=SRCDIR define a space-separated list of directories to
search for the APR-util source code. Defaults to the
same location as the --with-apr SRCDIR, but with
"apr" replaced with "apr-util" or "aprutil". Ignored
in APR-Config Mode.
APR-Config Mode:
When passing an apr-config executable to --with-apr, buildconf will attempt to
copy build scripts from various installed locations on your system instead of
an APR source tree. This allows you to configure httpd from source without
also requiring you to download the APR and/or APR-util sources.
For example:
./buildconf --with-apr=apr-1-config
For this functionality to work reliably, you must have automake >= 1.12 and be
using a distribution that includes both find_apr.m4 and find_apu.m4 in the
--installbuilddir pointed to by apr-config.
Environment variables used by buildconf:
AUTOCONF autoconf executable name [autoconf]
AUTOMAKE automake executable name [automake]
AUTOHEADER autoheader executable name [autoheader]
EOF
exit
;;
*)
echo "unknown option $1 (try --help for usage)"
exit 1
;;
esac
shift
done
should_exit=0
apr_config= apr_found=0
apu_found=0
apr_major_version=2
for dir in $apr_src_dir
do
if [ -f "${dir}/build/apr_common.m4" ]; then
echo "found apr source: ${dir}"
apr_src_dir=$dir
apr_found=1
break
elif which "${dir}" >/dev/null 2>&1; then
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} apr_src_dir=`"${apr_config}" --installbuilddir`
apr_found=1
break
fi
done
if [ $apr_found -lt 1 ]; then
echo ""
echo "You don't have a copy of the apr source in srclib/apr. "
echo "Please get the source using the following instructions,"
echo "or specify the location of the source with "
echo "--with-apr=[path to apr] :"
echo ""
echo " svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr"
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 [ -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 apu_src_dir="$apu_src_dir `echo $apr_src_dir | sed -e 's#/apr#/aprutil#;g'`"
apu_src_dir="$apu_src_dir srclib/apr-util ../apr-util"
fi
for dir in $apu_src_dir
do
if [ -f "${dir}/Makefile.in" ]; then
echo "found apr-util source: ${dir}"
apu_src_dir=$dir
apu_found=1
break
fi
done
if [ $apu_found -lt 1 ]; then
echo ""
echo "You don't have a copy of the apr-util source in srclib/apr-util. "
echo "Please get one the source using the following instructions, "
echo "or specify the location of the source with "
echo "--with-apr-util=[path to apr-util]:"
echo ""
echo " svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.5.x srclib/apr-util"
echo ""
should_exit=1
fi
fi
if [ $should_exit -gt 0 ]; then
exit 1
fi
touch .deps
rm -f aclocal.m4
rm -f generated_lists
rm -rf autom4te*.cache
case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac
apr_configure="$apr_src_dir/configure"
if [ $apr_major_version -lt 2 ] ; then
aprutil_configure="$apu_src_dir/configure"
fi
config_h_in="include/ap_config_auto.h.in"
cross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
if [ "$apr_src_dir" = "srclib/apr" ]; then
echo rebuilding $apr_configure
(cd srclib/apr && ./buildconf) || {
echo "./buildconf failed for apr"
exit 1
}
rm -f srclib/apr/apr.spec
fi
apr_src_dir=`cd $apr_src_dir && pwd`
if [ $apr_major_version -lt 2 ] ; then
if [ "$apu_src_dir" = "srclib/apr-util" ]; then
echo rebuilding $aprutil_configure
(cd srclib/apr-util && ./buildconf --with-apr=$apr_src_dir) || {
echo "./buildconf failed for apr-util"
exit 1
}
rm -f srclib/apr-util/apr-util.spec
fi
apu_src_dir=`cd $apu_src_dir && pwd`
fi
echo copying build files
if [ -n "${apr_config}" ]; then
automake=${AUTOMAKE:-automake}
am_libdir=`"${automake}" --print-libdir`
cp "${am_libdir}/config.guess" "${am_libdir}/config.sub" build
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
(cd build ; rm -f ltconfig ltmain.sh)
if [ -z "${apr_config}" ]; then
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
rm -f $config_h_in
${AUTOHEADER:-autoheader} 2>&1 | grep -v "$cross_compile_warning"
echo rebuilding configure
rm -f config.cache
${AUTOCONF:-autoconf} 2>&1 | grep -v "$cross_compile_warning"
rm -rf autom4te*.cache
if [ -f `which cut` ]; then
echo rebuilding rpm spec file
( VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER`
EPOCH=`build/get-version.sh epoch include/ap_release.h AP_SERVER`
REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER`
VERSION=`echo $REVISION | cut -d- -s -f1`
RELEASE=`echo $REVISION | cut -d- -s -f2`
if [ "x$VERSION" = "x" ]; then
VERSION=$REVISION
RELEASE=1
fi
cat ./build/rpm/httpd.spec.in | \
sed -e "s/APACHE_VERSION/$VERSION/" \
-e "s/APACHE_RELEASE/$RELEASE/" \
-e "s/APACHE_MMN/$VMMN/" \
-e "s/APACHE_EPOCH/$EPOCH/" \
> httpd.spec )
fi
echo fixing timestamps for ap_expr sources
cd server
touch util_expr_parse.y util_expr_scan.l
sleep 1
touch util_expr_parse.c util_expr_parse.h util_expr_scan.c
cd ..
exit 0