| #!/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. |
| |
| # 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 ../apr" |
| apu_src_dir="" |
| |
| 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 |
| 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` |
| |
| 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 |