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