buildconf revision 842ae4bd224140319ae7feec1872b93dfd491143
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#!/bin/sh
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# Licensed to the Apache Software Foundation (ASF) under one or more
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# contributor license agreements. See the NOTICE file distributed with
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# this work for additional information regarding copyright ownership.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# The ASF licenses this file to You under the Apache License, Version 2.0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# (the "License"); you may not use this file except in compliance with
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# the License. You may obtain a copy of the License at
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# http://www.apache.org/licenses/LICENSE-2.0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# Unless required by applicable law or agreed to in writing, software
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# distributed under the License is distributed on an "AS IS" BASIS,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# See the License for the specific language governing permissions and
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# limitations under the License.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# buildconf: Build the support scripts needed to compile from a
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# checked-out version of the source code.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# set a couple of defaults for where we should be looking for our support libs.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncapr_src_dir="srclib/apr ../apr"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncapu_src_dir="srclib/apr-util ../apr-util"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncwhile test $# -gt 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdo
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync # Normalize
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case "$1" in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *) optarg= ;;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync esac
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case "$1" in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync --with-apr=*)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apr_src_dir=$optarg
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ;;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync esac
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case "$1" in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync --with-apr-util=*)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apu_src_dir=$optarg
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ;;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync esac
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync shift
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdone
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# Check to be sure that we have the srclib dependencies checked-out
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncshould_exit=0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncapr_found=0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncapu_found=0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfor dir in $apr_src_dir
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdo
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if [ -f "${dir}/build/apr_common.m4" ]; then
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "found apr source: ${dir}"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apr_src_dir=$dir
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apr_found=1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fi
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdone
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncif [ $apr_found -lt 1 ]; then
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "You don't have a copy of the apr source in srclib/apr. "
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "Please get the source using the following instructions,"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "or specify the location of the source with "
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "--with-apr=[path to apr] :"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo " svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync should_exit=1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfi
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfor dir in $apu_src_dir
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdo
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if [ -f "${dir}/Makefile.in" ]; then
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "found apr-util source: ${dir}"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apu_src_dir=$dir
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync apu_found=1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fi
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncdone
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncif [ $apu_found -lt 1 ]; then
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "You don't have a copy of the apr-util source in srclib/apr-util. "
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "Please get one the source using the following instructions, "
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "or specify the location of the source with "
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo "--with-apr-util=[path to apr-util]:"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo " svn co http://svn.apache.org/repos/asf/apr/apr-util/trunk srclib/apr-util"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync echo ""
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync should_exit=1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfi
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncif [ $should_exit -gt 0 ]; then
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync exit 1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfi
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# These are temporary until Roy finishes the other build changes
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctouch .deps
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncrm -f aclocal.m4
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncrm -f generated_lists
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncrm -f srclib/pcre/aclocal.m4
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# Remove autoconf 2.5x cache directories
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncrm -rf autom4te*.cache srclib/pcre/autom4te*.cache
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccase "`uname`" in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync*BSD/OS*)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ./build/bsd_makefile;;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncesac
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync# end temporary stuff
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncapr_configure="$apr_src_dir/configure"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncaprutil_configure="$apu_src_dir/configure"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncpcre_configure="srclib/pcre/configure"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncconfig_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