buildconf revision c5694b1d7dca4f561ebce416b5ffacf856f825aa
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#!/bin/sh
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# Copyright 1999-2005 The Apache Software Foundation or its licensors, as
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# applicable.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# Licensed under the Apache License, Version 2.0 (the "License");
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# you may not use this file except in compliance with the License.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# You may obtain a copy of the License at
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# http://www.apache.org/licenses/LICENSE-2.0
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# Unless required by applicable law or agreed to in writing, software
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# distributed under the License is distributed on an "AS IS" BASIS,
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# See the License for the specific language governing permissions and
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# limitations under the License.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# buildconf: Build the support scripts needed to compile from a
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# checked-out version of the source code.
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# set a couple of defaults for where we should be looking for our support libs.
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco# can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Koscoapr_src_dir="srclib/apr ../apr"
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Koscoapu_src_dir="srclib/apr-util ../apr-util"
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscowhile test $# -gt 0
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscodo
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco # Normalize
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco case "$1" in
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco *) optarg= ;;
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco esac
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco case "$1" in
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco --with-apr=*)
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco apr_src_dir=$optarg
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco ;;
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco esac
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco case "$1" in
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco --with-apr-util=*)
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco apu_src_dir=$optarg
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco ;;
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco esac
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco
be5cdf850da5383468637c6937c016f26bd339cfLubos Kosco shift
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscodone
c6e0f8b39af7343c04ec7558a085c965159f4ea0Lubos Kosco
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco#
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco# Check to be sure that we have the srclib dependencies checked-out
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco#
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Kosco
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscoshould_exit=0
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Koscoapr_found=0
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscoapu_found=0
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscofor dir in $apr_src_dir
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Koscodo
817883e9f0d419428e8236a09b77cdeeaa034df7Knut Anders Hatlen if [ -f "${dir}/build/apr_common.m4" ]; then
be5cdf850da5383468637c6937c016f26bd339cfLubos Kosco echo "found apr source: ${dir}"
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco apr_src_dir=$dir
817883e9f0d419428e8236a09b77cdeeaa034df7Knut Anders Hatlen apr_found=1
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco break
b645988bdc1cf4f2f82b8c00ed041ddddd822c24Lubos Kosco fi
eb32a77fdb57f20c042b7b79b28a4fb4060cb949Lubos Koscodone
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
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/trunk srclib/apr-util"
echo ""
should_exit=1
fi
if [ $should_exit -gt 0 ]; then
exit 1
fi
# These are temporary until Roy finishes the other build changes
#
touch .deps
rm -f aclocal.m4
rm -f generated_lists
rm -f srclib/pcre/aclocal.m4
# Remove autoconf 2.5x cache directories
rm -rf autom4te*.cache srclib/pcre/autom4te*.cache
case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac
#
# end temporary stuff
apr_configure="$apr_src_dir/configure"
aprutil_configure="$apu_src_dir/configure"
pcre_configure="srclib/pcre/configure"
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 [ "$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`
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 $apu_src_dir/build/find_apu.m4 build
# 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
fi
echo rebuilding $pcre_configure
(cd srclib/pcre && ${AUTOCONF:-autoconf})
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"
# Remove autoconf 2.5x cache directories
rm -rf autom4te*.cache srclib/pcre/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`
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/" \
> httpd.spec )
fi
# ensure that the mod_ssl expression parser sources are never regenerated
# when running make
echo fixing timestamps for mod_ssl sources
cd modules/ssl
touch ssl_expr_parse.y
sleep 1
touch ssl_expr_parse.c ssl_expr_parse.h ssl_expr_scan.l
sleep 1
touch ssl_expr_scan.c
cd ../..
exit 0