summaryrefslogtreecommitdiffstats
path: root/buildconf
diff options
context:
space:
mode:
Diffstat (limited to 'buildconf')
-rwxr-xr-xbuildconf136
1 files changed, 136 insertions, 0 deletions
diff --git a/buildconf b/buildconf
new file mode 100755
index 0000000..fa52bd1
--- /dev/null
+++ b/buildconf
@@ -0,0 +1,136 @@
+#!/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.
+
+if [ "$1" = "--verbose" -o "$1" = "-v" ]; then
+ verbose="--verbose"
+ shift
+fi
+
+# Verify that the builder has the right config tools installed
+#
+build/buildcheck.sh $verbose || exit 1
+
+libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize15 libtoolize14 libtoolize`
+if [ "x$libtoolize" = "x" ]; then
+ echo "libtoolize not found in path"
+ exit 1
+fi
+
+# Create the libtool helper files
+#
+# Note: we copy (rather than link) them to simplify distribution.
+# Note: APR supplies its own config.guess and config.sub -- we do not
+# rely on libtool's versions
+#
+echo "buildconf: copying libtool helper files using $libtoolize"
+
+# Remove any libtool files so one can switch between libtool versions
+# by simply rerunning the buildconf script.
+rm -f aclocal.m4 libtool.m4
+(cd build ; rm -f ltconfig ltmain.sh argz.m4 libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4)
+
+# Determine libtool version, because --copy behaves differently
+# w.r.t. copying libtool.m4
+lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
+lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'`
+IFS=.; set $lt_version; IFS=' '
+
+# libtool 1
+if test "$1" = "1"; then
+ $libtoolize --copy --automake
+ # Unlikely, maybe for old versions the file exists
+ if [ -f libtool.m4 ]; then
+ ltfile=`pwd`/libtool.m4
+ else
+
+ # Extract all lines setting variables from libtoolize up until
+ # libtool_m4 gets set
+ ltfindcmd="`sed -n \"/=[^\\\`]/p;/libtool_m4=/{s/.*=/echo /p;q;}\" \
+ < $libtoolize`"
+
+ # Get path to libtool.m4 either from LIBTOOL_M4 env var or our libtoolize based script
+ ltfile=${LIBTOOL_M4-`eval "$ltfindcmd"`}
+
+ # Expecting the code above to be very portable, but just in case...
+ if [ -z "$ltfile" -o ! -f "$ltfile" ]; then
+ ltpath=`dirname $libtoolize`
+ ltfile=`cd $ltpath/../share/aclocal ; pwd`/libtool.m4
+ fi
+ fi
+ if [ ! -f $ltfile ]; then
+ echo "$ltfile not found"
+ exit 1
+ fi
+ # Do we need this anymore?
+ echo "buildconf: Using libtool.m4 at ${ltfile}."
+ rm -f build/libtool.m4
+ cp -p $ltfile build/libtool.m4
+
+# libtool 2
+elif test "$1" = "2"; then
+ $libtoolize --copy --quiet $verbose
+fi
+
+# Replace top_builddir by apr_builddir.
+# Wouldn't it just be better to define top_builddir??
+# Not sure, would it interfere with httpd top_builddir when bundled?
+mv build/libtool.m4 build/libtool.m4.$$
+sed -e 's/\(LIBTOOL=.*\)top_build/\1apr_build/' < build/libtool.m4.$$ > build/libtool.m4
+rm -f build/libtool.m4.$$
+
+# Clean up any leftovers
+rm -f aclocal.m4 libtool.m4
+
+#
+# Generate the autoconf header and ./configure
+#
+echo "buildconf: creating include/arch/unix/apr_private.h.in ..."
+${AUTOHEADER:-autoheader} $verbose
+
+echo "buildconf: creating configure ..."
+### do some work to toss config.cache?
+${AUTOCONF:-autoconf} $verbose
+
+# Remove autoconf 2.5x's cache directory
+rm -rf autom4te*.cache
+
+PYTHON=${PYTHON-`build/PrintPath python3 python2 python`}
+
+echo "buildconf: generating 'make' outputs ..."
+${PYTHON} build/gen-build.py $verbose make
+
+# Create RPM Spec file
+if [ -f `which cut` ]; then
+ echo "buildconf: rebuilding rpm spec file"
+ ( REVISION=`build/get-version.sh all include/apr_version.h APR`
+ 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/apr.spec.in | \
+ sed -e "s/APR_VERSION/$VERSION/" \
+ -e "s/APR_RELEASE/$RELEASE/" \
+ > apr.spec )
+fi
+
+exit 0