X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=buildconf;h=718cad19d4a02d9eae22431ce8286a19d98c3c55;hb=c9fd2623da21dc757571e93f8c14344946e59ec7;hp=71808600d0594b84a63d988a66e33d0e5e40cd8d;hpb=fa53f5965ba9277f273098cc3f7522162b27f83b;p=apache diff --git a/buildconf b/buildconf index 71808600d0..718cad19d4 100755 --- a/buildconf +++ b/buildconf @@ -1,66 +1,41 @@ #!/bin/sh -# ==================================================================== -# The Apache Software License, Version 1.1 # -# Copyright (c) 2000-2003 The Apache Software Foundation. All rights -# reserved. +# 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 # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: +# http://www.apache.org/licenses/LICENSE-2.0 # -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. +# 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. # -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. # -# 3. The end-user documentation included with the redistribution, -# if any, must include the following acknowledgment: -# "This product includes software developed by the -# Apache Software Foundation (http://www.apache.org/)." -# Alternately, this acknowledgment may appear in the software itself, -# if and wherever such third-party acknowledgments normally appear. -# -# 4. The names "Apache" and "Apache Software Foundation" must -# not be used to endorse or promote products derived from this -# software without prior written permission. For written -# permission, please contact apache@apache.org. -# -# 5. Products derived from this software may not be called "Apache", -# nor may "Apache" appear in their name, without prior written -# permission of the Apache Software Foundation. -# -# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR -# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF -# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT -# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# ==================================================================== -# -# This software consists of voluntary contributions made by many -# individuals on behalf of the Apache Software Foundation. For more -# information on the Apache Software Foundation, please see -# . -# - # buildconf: Build the support scripts needed to compile from a # checked-out version of the source code. +# version check for AC_PROG_CC_C99 +ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'` +case "$ac_version" in +# versions older than 2.50 are denied by AC_PREREQ +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 + # 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 -apu_src_dir=srclib/apr-util +apr_src_dir="srclib/apr ../apr" +apu_src_dir="" while test $# -gt 0 do @@ -89,32 +64,67 @@ done # Check to be sure that we have the srclib dependencies checked-out # -if [ ! -d "$apr_src_dir" -o ! -f "$apr_src_dir/build/apr_common.m4" ]; then +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 $apr_src_dir. " + 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 " cd srclib" - echo " cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login" - echo " (password 'anoncvs')" - echo " cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr" + echo " svn co http://svn.apache.org/repos/asf/apr/apr/trunk srclib/apr" echo "" - exit 1 + 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 [ ! -d "$apu_src_dir" -o ! -f "$apu_src_dir/Makefile.in" ]; then - echo "" - echo "You don't have a copy of the apr-util source in $apu_src_dir. " - 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 " cd srclib" - echo " cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login" - echo " (password 'anoncvs')" - echo " cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr-util" - echo "" + +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 @@ -124,7 +134,7 @@ touch .deps rm -f aclocal.m4 rm -f generated_lists -# Remove autoconf 2.5x's cache directory +# Remove autoconf 2.5x cache directories rm -rf autom4te*.cache case "`uname`" in @@ -135,32 +145,48 @@ esac # end temporary stuff apr_configure="$apr_src_dir/configure" -aprutil_configure="$apu_src_dir/configure" -pcre_configure="srclib/pcre/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 [ -d srclib/apr ]; then +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 -if [ -d srclib/apr-util ]; then - echo rebuilding $aprutil_configure - (cd srclib/apr-util && ./buildconf) || { - echo "./buildconf failed for apr-util" - exit 1 - } +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 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 + $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 @@ -170,9 +196,6 @@ 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" @@ -181,4 +204,35 @@ 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