diff options
Diffstat (limited to 'buildconf')
-rwxr-xr-x | buildconf | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/buildconf b/buildconf new file mode 100755 index 00000000..6a50c169 --- /dev/null +++ b/buildconf @@ -0,0 +1,212 @@ +#!/bin/sh +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# buildconf: Build the support scripts needed to compile from a +# checked-out version of the source code. + +# set a couple of defaults for where we should be looking for our support libs. +# can be overridden with --with-apr=[dir] and --with-apr-util=[dir] + +apr_src_dir="srclib/apr ../apr" +apu_src_dir="srclib/apr-util ../apr-util" + +while test $# -gt 0 +do + # Normalize + case "$1" in + -*=*) 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 + +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 +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 |