1251875Speter#!/bin/sh 2251875Speter# Licensed to the Apache Software Foundation (ASF) under one or more 3251875Speter# contributor license agreements. See the NOTICE file distributed with 4251875Speter# this work for additional information regarding copyright ownership. 5251875Speter# The ASF licenses this file to You under the Apache License, Version 2.0 6251875Speter# (the "License"); you may not use this file except in compliance with 7251875Speter# the License. You may obtain a copy of the License at 8251875Speter# 9251875Speter# http://www.apache.org/licenses/LICENSE-2.0 10251875Speter# 11251875Speter# Unless required by applicable law or agreed to in writing, software 12251875Speter# distributed under the License is distributed on an "AS IS" BASIS, 13251875Speter# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14251875Speter# See the License for the specific language governing permissions and 15251875Speter# limitations under the License. 16251875Speter# 17251875Speter# 18251875Speter 19251875Speter# buildconf: Build the support scripts needed to compile from a 20251875Speter# checked-out version of the source code. 21251875Speter 22251875Speterif [ "$1" = "--verbose" -o "$1" = "-v" ]; then 23251875Speter verbose="--verbose" 24251875Speter shift 25251875Speterfi 26251875Speter 27251875Speter# Verify that the builder has the right config tools installed 28251875Speter# 29251875Speterbuild/buildcheck.sh $verbose || exit 1 30251875Speter 31251875Speterlibtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize15 libtoolize14 libtoolize` 32251875Speterif [ "x$libtoolize" = "x" ]; then 33251875Speter echo "libtoolize not found in path" 34251875Speter exit 1 35251875Speterfi 36251875Speter 37251875Speter# Create the libtool helper files 38251875Speter# 39251875Speter# Note: we copy (rather than link) them to simplify distribution. 40251875Speter# Note: APR supplies its own config.guess and config.sub -- we do not 41251875Speter# rely on libtool's versions 42251875Speter# 43251875Speterecho "buildconf: copying libtool helper files using $libtoolize" 44251875Speter 45251875Speter# Remove any libtool files so one can switch between libtool versions 46251875Speter# by simply rerunning the buildconf script. 47251875Speterrm -f aclocal.m4 libtool.m4 48251875Speter(cd build ; rm -f ltconfig ltmain.sh argz.m4 libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4) 49251875Speter 50251875Speter# Determine libtool version, because --copy behaves differently 51251875Speter# w.r.t. copying libtool.m4 52251875Speterlt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` 53251875Speterlt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'` 54251875SpeterIFS=.; set $lt_version; IFS=' ' 55251875Speter 56251875Speter# libtool 1 57251875Speterif test "$1" = "1"; then 58251875Speter $libtoolize --copy --automake 59251875Speter # Unlikely, maybe for old versions the file exists 60251875Speter if [ -f libtool.m4 ]; then 61251875Speter ltfile=`pwd`/libtool.m4 62251875Speter else 63251875Speter 64251875Speter # Extract all lines setting variables from libtoolize up until 65251875Speter # libtool_m4 gets set 66251875Speter ltfindcmd="`sed -n \"/=[^\\\`]/p;/libtool_m4=/{s/.*=/echo /p;q;}\" \ 67251875Speter < $libtoolize`" 68251875Speter 69251875Speter # Get path to libtool.m4 either from LIBTOOL_M4 env var or our libtoolize based script 70251875Speter ltfile=${LIBTOOL_M4-`eval "$ltfindcmd"`} 71251875Speter 72251875Speter # Expecting the code above to be very portable, but just in case... 73251875Speter if [ -z "$ltfile" -o ! -f "$ltfile" ]; then 74251875Speter ltpath=`dirname $libtoolize` 75251875Speter ltfile=`cd $ltpath/../share/aclocal ; pwd`/libtool.m4 76251875Speter fi 77251875Speter fi 78251875Speter if [ ! -f $ltfile ]; then 79251875Speter echo "$ltfile not found" 80251875Speter exit 1 81251875Speter fi 82251875Speter # Do we need this anymore? 83251875Speter echo "buildconf: Using libtool.m4 at ${ltfile}." 84251875Speter rm -f build/libtool.m4 85251875Speter cp -p $ltfile build/libtool.m4 86251875Speter 87251875Speter# libtool 2 88251875Speterelif test "$1" = "2"; then 89251875Speter $libtoolize --copy --quiet $verbose 90251875Speterfi 91251875Speter 92251875Speter# Replace top_builddir by apr_builddir. 93251875Speter# Wouldn't it just be better to define top_builddir?? 94251875Speter# Not sure, would it interfere with httpd top_builddir when bundled? 95251875Spetermv build/libtool.m4 build/libtool.m4.$$ 96251875Spetersed -e 's/\(LIBTOOL=.*\)top_build/\1apr_build/' < build/libtool.m4.$$ > build/libtool.m4 97251875Speterrm -f build/libtool.m4.$$ 98251875Speter 99251875Speter# Clean up any leftovers 100251875Speterrm -f aclocal.m4 libtool.m4 101251875Speter 102251875Speter# 103251875Speter# Generate the autoconf header and ./configure 104251875Speter# 105251875Speterecho "buildconf: creating include/arch/unix/apr_private.h.in ..." 106251875Speter${AUTOHEADER:-autoheader} $verbose 107251875Speter 108251875Speterecho "buildconf: creating configure ..." 109251875Speter### do some work to toss config.cache? 110251875Speter${AUTOCONF:-autoconf} $verbose 111251875Speter 112251875Speter# Remove autoconf 2.5x's cache directory 113251875Speterrm -rf autom4te*.cache 114251875Speter 115251875Speterecho "buildconf: generating 'make' outputs ..." 116251875Speterbuild/gen-build.py $verbose make 117251875Speter 118251875Speter# Create RPM Spec file 119251875Speterif [ -f `which cut` ]; then 120251875Speter echo "buildconf: rebuilding rpm spec file" 121251875Speter ( REVISION=`build/get-version.sh all include/apr_version.h APR` 122251875Speter VERSION=`echo $REVISION | cut -d- -s -f1` 123251875Speter RELEASE=`echo $REVISION | cut -d- -s -f2` 124251875Speter if [ "x$VERSION" = "x" ]; then 125251875Speter VERSION=$REVISION 126251875Speter RELEASE=1 127251875Speter fi 128251875Speter cat ./build/rpm/apr.spec.in | \ 129251875Speter sed -e "s/APR_VERSION/$VERSION/" \ 130251875Speter -e "s/APR_RELEASE/$RELEASE/" \ 131251875Speter > apr.spec ) 132251875Speterfi 133251875Speter 134251875Speterexit 0 135