buildconf revision e8f3ef5f268e9dee1d5d5dca8134df035a5c8332
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen#!/bin/sh
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen#
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# Licensed to the Apache Software Foundation (ASF) under one or more
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen# contributor license agreements. See the NOTICE file distributed with
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen# this work for additional information regarding copyright ownership.
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen# The ASF licenses this file to You under the Apache License, Version 2.0
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen# (the "License"); you may not use this file except in compliance with
f1551f4a50a471f0adecd92dd1f94702beeed72dTimo Sirainen# the License. You may obtain a copy of the License at
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen#
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen# http://www.apache.org/licenses/LICENSE-2.0
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen#
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# Unless required by applicable law or agreed to in writing, software
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# distributed under the License is distributed on an "AS IS" BASIS,
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen# See the License for the specific language governing permissions and
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen# limitations under the License.
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen#
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen#
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# buildconf: Build the support scripts needed to compile from a
dff32d11a411a24f3b76003c1ae22c5a960f180eTimo Sirainen# checked-out version of the source code.
dff32d11a411a24f3b76003c1ae22c5a960f180eTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen# version check for AC_PROG_CC_C99
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainenac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'`
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainencase "$ac_version" in
f64b5bc9e73bedc63ba3c072c286542c29c69e43Timo Sirainen# versions older than 2.50 are denied by AC_PREREQ
f64b5bc9e73bedc63ba3c072c286542c29c69e43Timo Sirainen2.5*)
5f5713d6468dca1acf3d350dd8a33057331f78c5Timo Sirainen echo WARNING: You are using an outdated version of autoconf.
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen echo WARNING: This may lead to less than optimal performance of httpd.
242abe3ad2423776e9cf05e1304eb8fda4831b23Timo Sirainen echo WARNING: You should use autoconf 2.60 or newer.
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen sleep 1
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen ;;
377dd19a90436b8f96902af741a3ea130bc3fe75Timo Sirainenesac
ad404d294fedf792619aed432ed8de5174e9ce7cTimo Sirainen
caae18c876f81e261350e4957471efa453c0ea9fTimo Sirainen# set a couple of defaults for where we should be looking for our support libs.
ee3362f3b78827a2c9a7e9ddee83f5a429c06213Timo Sirainen# can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
ee3362f3b78827a2c9a7e9ddee83f5a429c06213Timo Sirainen
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainenapr_src_dir="srclib/apr ../apr"
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainenapu_src_dir=""
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen
242abe3ad2423776e9cf05e1304eb8fda4831b23Timo Sirainenwhile test $# -gt 0
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainendo
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen # Normalize
56139ffc94e481ca1940ffd8d8f7166879150665Timo Sirainen case "$1" in
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case "$1" in
--with-apr=*)
apr_src_dir=$optarg
;;
esac
case "$1" in
--with-apr-util=*)
apu_src_dir=$optarg
;;
esac
shift
done
#
# Check to be sure that we have the srclib dependencies checked-out
#
should_exit=0
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
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
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
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'`"
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/trunk srclib/apr-util"
echo ""
should_exit=1
fi
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
# Remove autoconf 2.5x cache directories
rm -rf autom4te*.cache
case "`uname`" in
*BSD/OS*)
./build/bsd_makefile;;
esac
#
# end temporary stuff
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`
#apreq_configure="srclib/libapreq"
#echo
#echo rebuilding $apreq_configure
#(cd srclib/libapreq && ./buildconf --with-apr="$apr_src_dir") || {
# echo "./buildconf failed for apreq"
# exit 1
#}
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
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
# 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 $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
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
# ensure that the ap_expr expression parser sources are never regenerated
# when running make
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