d3ed5b56cb6b58f87ffd125bed48f7668f13de1edirkx#!/bin/sh
893328ef6ff86d0ca27774778d84410353789fb0fielding#
842ae4bd224140319ae7feec1872b93dfd491143fielding# Licensed to the Apache Software Foundation (ASF) under one or more
842ae4bd224140319ae7feec1872b93dfd491143fielding# contributor license agreements. See the NOTICE file distributed with
842ae4bd224140319ae7feec1872b93dfd491143fielding# this work for additional information regarding copyright ownership.
842ae4bd224140319ae7feec1872b93dfd491143fielding# The ASF licenses this file to You under the Apache License, Version 2.0
842ae4bd224140319ae7feec1872b93dfd491143fielding# (the "License"); you may not use this file except in compliance with
842ae4bd224140319ae7feec1872b93dfd491143fielding# the License. You may obtain a copy of the License at
893328ef6ff86d0ca27774778d84410353789fb0fielding#
0202d2114cc6d7042995100519cce45c808c153bnd# http://www.apache.org/licenses/LICENSE-2.0
893328ef6ff86d0ca27774778d84410353789fb0fielding#
0202d2114cc6d7042995100519cce45c808c153bnd# Unless required by applicable law or agreed to in writing, software
0202d2114cc6d7042995100519cce45c808c153bnd# distributed under the License is distributed on an "AS IS" BASIS,
0202d2114cc6d7042995100519cce45c808c153bnd# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0202d2114cc6d7042995100519cce45c808c153bnd# See the License for the specific language governing permissions and
0202d2114cc6d7042995100519cce45c808c153bnd# limitations under the License.
893328ef6ff86d0ca27774778d84410353789fb0fielding#
893328ef6ff86d0ca27774778d84410353789fb0fielding#
893328ef6ff86d0ca27774778d84410353789fb0fielding# buildconf: Build the support scripts needed to compile from a
893328ef6ff86d0ca27774778d84410353789fb0fielding# checked-out version of the source code.
0d50a692ff2ac7bdb42e417737ed86ebf0a41671ben
14eccd0082c748ae3464dc2459430ff0772b5107sf# version check for AC_PROG_CC_C99
14eccd0082c748ae3464dc2459430ff0772b5107sfac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'`
14eccd0082c748ae3464dc2459430ff0772b5107sfcase "$ac_version" in
14eccd0082c748ae3464dc2459430ff0772b5107sf# versions older than 2.50 are denied by AC_PREREQ
14eccd0082c748ae3464dc2459430ff0772b5107sf2.5*)
14eccd0082c748ae3464dc2459430ff0772b5107sf echo WARNING: You are using an outdated version of autoconf.
14eccd0082c748ae3464dc2459430ff0772b5107sf echo WARNING: This may lead to less than optimal performance of httpd.
14eccd0082c748ae3464dc2459430ff0772b5107sf echo WARNING: You should use autoconf 2.60 or newer.
14eccd0082c748ae3464dc2459430ff0772b5107sf sleep 1
14eccd0082c748ae3464dc2459430ff0772b5107sf ;;
14eccd0082c748ae3464dc2459430ff0772b5107sfesac
14eccd0082c748ae3464dc2459430ff0772b5107sf
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz# set a couple of defaults for where we should be looking for our support libs.
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz# can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
90b402e944318ae02afd50911eae6da1910f661dpquernaapr_src_dir="srclib/apr ../apr"
928f622b54e87afbbaba6add8aef8066ca16a040wroweapu_src_dir=""
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzwhile test $# -gt 0
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzdo
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz # Normalize
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz case "$1" in
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz *) optarg= ;;
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz esac
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz case "$1" in
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz --with-apr=*)
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz apr_src_dir=$optarg
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz ;;
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz esac
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz case "$1" in
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz --with-apr-util=*)
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz apu_src_dir=$optarg
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz ;;
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz esac
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz shift
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzdone
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
893328ef6ff86d0ca27774778d84410353789fb0fielding#
893328ef6ff86d0ca27774778d84410353789fb0fielding# Check to be sure that we have the srclib dependencies checked-out
893328ef6ff86d0ca27774778d84410353789fb0fielding#
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquernashould_exit=0
90b402e944318ae02afd50911eae6da1910f661dpquernaapr_found=0
90b402e944318ae02afd50911eae6da1910f661dpquernaapu_found=0
a9de7b69548bd69bfc84e9eea6a8215db2640deftakashiapr_major_version=2
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquerna
90b402e944318ae02afd50911eae6da1910f661dpquernafor dir in $apr_src_dir
90b402e944318ae02afd50911eae6da1910f661dpquernado
c5694b1d7dca4f561ebce416b5ffacf856f825aawrowe if [ -f "${dir}/build/apr_common.m4" ]; then
90b402e944318ae02afd50911eae6da1910f661dpquerna echo "found apr source: ${dir}"
90b402e944318ae02afd50911eae6da1910f661dpquerna apr_src_dir=$dir
90b402e944318ae02afd50911eae6da1910f661dpquerna apr_found=1
90b402e944318ae02afd50911eae6da1910f661dpquerna break
90b402e944318ae02afd50911eae6da1910f661dpquerna fi
90b402e944318ae02afd50911eae6da1910f661dpquernadone
90b402e944318ae02afd50911eae6da1910f661dpquerna
90b402e944318ae02afd50911eae6da1910f661dpquernaif [ $apr_found -lt 1 ]; then
893328ef6ff86d0ca27774778d84410353789fb0fielding echo ""
91ea8a85362a63522578e4d59fc6bfe37bc8df17trawick echo "APR could not be found automatically."
893328ef6ff86d0ca27774778d84410353789fb0fielding echo ""
91ea8a85362a63522578e4d59fc6bfe37bc8df17trawick echo "Please refer to the documentation on APR in the httpd INSTALL file."
893328ef6ff86d0ca27774778d84410353789fb0fielding echo ""
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquerna should_exit=1
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemelse
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apr_major_version=`grep "#define APR_MAJOR_VERSION" \
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem $apr_src_dir/include/apr_version.h | sed 's/[^0-9]//g'`
893328ef6ff86d0ca27774778d84410353789fb0fieldingfi
90b402e944318ae02afd50911eae6da1910f661dpquerna
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemif [ $apr_major_version -lt 2 ] ; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem if test -z "$apu_src_dir"; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_src_dir=`echo $apr_src_dir | sed -e 's#/apr#/apr-util#g;'`
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_src_dir="$apu_src_dir `echo $apr_src_dir | sed -e 's#/apr#/aprutil#;g'`"
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_src_dir="$apu_src_dir srclib/apr-util ../apr-util"
90b402e944318ae02afd50911eae6da1910f661dpquerna fi
90b402e944318ae02afd50911eae6da1910f661dpquerna
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem for dir in $apu_src_dir
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem do
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem if [ -f "${dir}/Makefile.in" ]; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo "found apr-util source: ${dir}"
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_src_dir=$dir
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_found=1
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem break
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem fi
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem done
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem if [ $apu_found -lt 1 ]; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo ""
91ea8a85362a63522578e4d59fc6bfe37bc8df17trawick echo "You are using APR 1.x but APR-util 1.x was not found."
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo ""
91ea8a85362a63522578e4d59fc6bfe37bc8df17trawick echo "Please refer to the documentation on APR in the httpd INSTALL file."
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo ""
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem should_exit=1
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem fi
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquernafi
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquerna
0b7037d0efc1cd510ee12e8a35c982c3f2da0353pquernaif [ $should_exit -gt 0 ]; then
893328ef6ff86d0ca27774778d84410353789fb0fielding exit 1
893328ef6ff86d0ca27774778d84410353789fb0fieldingfi
893328ef6ff86d0ca27774778d84410353789fb0fielding
893328ef6ff86d0ca27774778d84410353789fb0fielding# These are temporary until Roy finishes the other build changes
893328ef6ff86d0ca27774778d84410353789fb0fielding#
893328ef6ff86d0ca27774778d84410353789fb0fieldingtouch .deps
893328ef6ff86d0ca27774778d84410353789fb0fieldingrm -f aclocal.m4
623882f55701a4c5a6bded180f60d86a524ac341sascharm -f generated_lists
623882f55701a4c5a6bded180f60d86a524ac341sascha
e07615ab3b59412d79eebb8d5b12f488e77c14a7jorton# Remove autoconf 2.5x cache directories
60f9d4d87a893330a01722ed518d0b3fff8eb2eejortonrm -rf autom4te*.cache
c066cdcb75ca262e424345b347b86e7ce2285869jerenkrantz
c15906bab97b9b71b6dc08c1aa2f5c0b72b5ca4edreidcase "`uname`" in
c15906bab97b9b71b6dc08c1aa2f5c0b72b5ca4edreid*BSD/OS*)
96e6cafca226a8a2a64a7bbdc634b5b2679c9e0csascha ./build/bsd_makefile;;
96e6cafca226a8a2a64a7bbdc634b5b2679c9e0csaschaesac
893328ef6ff86d0ca27774778d84410353789fb0fielding#
893328ef6ff86d0ca27774778d84410353789fb0fielding# end temporary stuff
893328ef6ff86d0ca27774778d84410353789fb0fielding
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzapr_configure="$apr_src_dir/configure"
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemif [ $apr_major_version -lt 2 ] ; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem aprutil_configure="$apu_src_dir/configure"
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemfi
893328ef6ff86d0ca27774778d84410353789fb0fieldingconfig_h_in="include/ap_config_auto.h.in"
893328ef6ff86d0ca27774778d84410353789fb0fielding
893328ef6ff86d0ca27774778d84410353789fb0fieldingcross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
893328ef6ff86d0ca27774778d84410353789fb0fielding
c5694b1d7dca4f561ebce416b5ffacf856f825aawroweif [ "$apr_src_dir" = "srclib/apr" ]; then
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz echo rebuilding $apr_configure
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz (cd srclib/apr && ./buildconf) || {
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz echo "./buildconf failed for apr"
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz exit 1
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz }
59b1b6c3fd51c83c3bb9f02a8f08751335f9fb1dminfrin rm -f srclib/apr/apr.spec
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzfi
893328ef6ff86d0ca27774778d84410353789fb0fielding
b399779260ac6f6ad2e808df429a496527648323jortonapr_src_dir=`cd $apr_src_dir && pwd`
b399779260ac6f6ad2e808df429a496527648323jorton
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemif [ $apr_major_version -lt 2 ] ; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem if [ "$apu_src_dir" = "srclib/apr-util" ]; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo rebuilding $aprutil_configure
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem (cd srclib/apr-util && ./buildconf --with-apr=$apr_src_dir) || {
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem echo "./buildconf failed for apr-util"
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem exit 1
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem }
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem rm -f srclib/apr-util/apr-util.spec
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem fi
893328ef6ff86d0ca27774778d84410353789fb0fielding
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem apu_src_dir=`cd $apu_src_dir && pwd`
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemfi
c5694b1d7dca4f561ebce416b5ffacf856f825aawrowe
1e5333ef1a0edb888d75c0cdd90b33fa7e89fc31wsanchezecho copying build files
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantzcp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem $apr_src_dir/build/find_apr.m4 build
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemif [ $apr_major_version -lt 2 ] ; then
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluem cp $apu_src_dir/build/find_apu.m4 build
eb06d6a7dc2a6609217689ee5e430d87637ef9e6rpluemfi
1e5333ef1a0edb888d75c0cdd90b33fa7e89fc31wsanchez
1d13cbde60ace1b56ca57b9f0f74168bb1288174trawick# Remove any libtool files so one can switch between libtool 1.3
1d13cbde60ace1b56ca57b9f0f74168bb1288174trawick# and libtool 1.4 by simply rerunning the buildconf script.
80b1e2ff2e3515fdab14675684b2640ceb6ce1c7trawick(cd build ; rm -f ltconfig ltmain.sh)
1d13cbde60ace1b56ca57b9f0f74168bb1288174trawick
9045837071eae7a4b55204a21f31ccee17749af3jerenkrantz# Optionally copy libtool-1.3.x files
ab44eb80e084a02a66a58336d6fcfbbe48310439trawickif [ -f $apr_src_dir/build/ltconfig ]; then
ab44eb80e084a02a66a58336d6fcfbbe48310439trawick cp $apr_src_dir/build/ltconfig build
9045837071eae7a4b55204a21f31ccee17749af3jerenkrantzfi
ab44eb80e084a02a66a58336d6fcfbbe48310439trawickif [ -f $apr_src_dir/build/ltmain.sh ]; then
ab44eb80e084a02a66a58336d6fcfbbe48310439trawick cp $apr_src_dir/build/ltmain.sh build
9045837071eae7a4b55204a21f31ccee17749af3jerenkrantzfi
9045837071eae7a4b55204a21f31ccee17749af3jerenkrantz
893328ef6ff86d0ca27774778d84410353789fb0fieldingecho rebuilding $config_h_in
893328ef6ff86d0ca27774778d84410353789fb0fieldingrm -f $config_h_in
544c23d79a3a7596a3612224ed3ac9fa8372929djerenkrantz${AUTOHEADER:-autoheader} 2>&1 | grep -v "$cross_compile_warning"
893328ef6ff86d0ca27774778d84410353789fb0fielding
893328ef6ff86d0ca27774778d84410353789fb0fieldingecho rebuilding configure
893328ef6ff86d0ca27774778d84410353789fb0fieldingrm -f config.cache
544c23d79a3a7596a3612224ed3ac9fa8372929djerenkrantz${AUTOCONF:-autoconf} 2>&1 | grep -v "$cross_compile_warning"
96e6cafca226a8a2a64a7bbdc634b5b2679c9e0csascha
e07615ab3b59412d79eebb8d5b12f488e77c14a7jorton# Remove autoconf 2.5x cache directories
60f9d4d87a893330a01722ed518d0b3fff8eb2eejortonrm -rf autom4te*.cache
0464cb46220c1025cbfe1365a6bd352e67d2e766jorton
4cb8bb9049d1643295ebda12c76dad441ddc2228jim# Remove possible bsd_converted file
4cb8bb9049d1643295ebda12c76dad441ddc2228jimrm -rf bsd_converted
4cb8bb9049d1643295ebda12c76dad441ddc2228jim
4028d805f3ab215e39bae405d35e001a538bc50eminfrinif [ -f `which cut` ]; then
4028d805f3ab215e39bae405d35e001a538bc50eminfrin echo rebuilding rpm spec file
4028d805f3ab215e39bae405d35e001a538bc50eminfrin ( VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER`
2834087a8155f38c7edd908a765ef3211ed37cf1minfrin EPOCH=`build/get-version.sh epoch include/ap_release.h AP_SERVER`
4028d805f3ab215e39bae405d35e001a538bc50eminfrin REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER`
4028d805f3ab215e39bae405d35e001a538bc50eminfrin VERSION=`echo $REVISION | cut -d- -s -f1`
4028d805f3ab215e39bae405d35e001a538bc50eminfrin RELEASE=`echo $REVISION | cut -d- -s -f2`
4028d805f3ab215e39bae405d35e001a538bc50eminfrin if [ "x$VERSION" = "x" ]; then
4028d805f3ab215e39bae405d35e001a538bc50eminfrin VERSION=$REVISION
4028d805f3ab215e39bae405d35e001a538bc50eminfrin RELEASE=1
4028d805f3ab215e39bae405d35e001a538bc50eminfrin fi
4028d805f3ab215e39bae405d35e001a538bc50eminfrin cat ./build/rpm/httpd.spec.in | \
4028d805f3ab215e39bae405d35e001a538bc50eminfrin sed -e "s/APACHE_VERSION/$VERSION/" \
4028d805f3ab215e39bae405d35e001a538bc50eminfrin -e "s/APACHE_RELEASE/$RELEASE/" \
4028d805f3ab215e39bae405d35e001a538bc50eminfrin -e "s/APACHE_MMN/$VMMN/" \
2834087a8155f38c7edd908a765ef3211ed37cf1minfrin -e "s/APACHE_EPOCH/$EPOCH/" \
4028d805f3ab215e39bae405d35e001a538bc50eminfrin > httpd.spec )
4028d805f3ab215e39bae405d35e001a538bc50eminfrinfi
4028d805f3ab215e39bae405d35e001a538bc50eminfrin
8fae12696bce44be9ce4c56888690cad8ac7b8f9sf# ensure that the ap_expr expression parser sources are never regenerated
f0528865c2e6c22ecc51eeecc496251489029bddjorton# when running make
8fae12696bce44be9ce4c56888690cad8ac7b8f9sfecho fixing timestamps for ap_expr sources
8fae12696bce44be9ce4c56888690cad8ac7b8f9sfcd server
3f24a3e2c43302efecc8aa3a6c0cc7ee823481d0rjungtouch util_expr_parse.y util_expr_scan.l
f0528865c2e6c22ecc51eeecc496251489029bddjortonsleep 1
3f24a3e2c43302efecc8aa3a6c0cc7ee823481d0rjungtouch util_expr_parse.c util_expr_parse.h util_expr_scan.c
8fae12696bce44be9ce4c56888690cad8ac7b8f9sfcd ..
f0528865c2e6c22ecc51eeecc496251489029bddjorton
893328ef6ff86d0ca27774778d84410353789fb0fieldingexit 0