summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
authorLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:29:52 +0100
committerLorry <lorry@roadtrain.codethink.co.uk>2012-08-22 14:29:52 +0100
commitf1bdf13786f0752c0846cf36f0d91e4fc6747929 (patch)
tree4223b2035bf2240d681a53822808b3c7f687b905 /autogen.sh
downloadsubversion-tarball-f1bdf13786f0752c0846cf36f0d91e4fc6747929.tar.gz
Tarball conversion
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh205
1 files changed, 205 insertions, 0 deletions
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..af90e85
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,205 @@
+#!/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.
+#
+#
+
+### Run this to produce everything needed for configuration. ###
+
+
+# Run tests to ensure that our build requirements are met
+RELEASE_MODE=""
+RELEASE_ARGS=""
+SKIP_DEPS=""
+while test $# != 0; do
+ case "$1" in
+ --release)
+ RELEASE_MODE="$1"
+ RELEASE_ARGS="--release"
+ shift
+ ;;
+ -s)
+ SKIP_DEPS="yes"
+ shift
+ ;;
+ --) # end of option parsing
+ break
+ ;;
+ *)
+ echo "invalid parameter: '$1'"
+ exit 1
+ ;;
+ esac
+done
+# ### The order of parameters is important; buildcheck.sh depends on it and
+# ### we don't want to copy the fancy option parsing loop there. For the
+# ### same reason, all parameters should be quoted, so that buildcheck.sh
+# ### sees an empty arg rather than missing one.
+./build/buildcheck.sh "$RELEASE_MODE" || exit 1
+
+# Handle some libtool helper files
+#
+# ### eventually, we can/should toss this in favor of simply using
+# ### APR's libtool. deferring to a second round of change...
+#
+
+libtoolize="`./build/PrintPath glibtoolize libtoolize libtoolize15`"
+lt_major_version=`$libtoolize --version 2>/dev/null | sed -e 's/^[^0-9]*//' -e 's/\..*//' -e '/^$/d' -e 1q`
+
+if [ "x$libtoolize" = "x" ]; then
+ echo "libtoolize not found in path"
+ exit 1
+fi
+
+rm -f build/config.guess build/config.sub
+$libtoolize --copy --automake --force
+
+ltpath="`dirname $libtoolize`"
+ltfile=${LIBTOOL_M4-`cd $ltpath/../share/aclocal ; pwd`/libtool.m4}
+
+if [ ! -f $ltfile ]; then
+ echo "$ltfile not found (try setting the LIBTOOL_M4 environment variable)"
+ exit 1
+fi
+
+echo "Copying libtool helper: $ltfile"
+# An ancient helper might already be present from previous builds,
+# and it might be write-protected (e.g. mode 444, seen on FreeBSD).
+# This would cause cp to fail and print an error message, but leave
+# behind a potentially outdated libtool helper. So, remove before
+# copying:
+rm -f build/libtool.m4
+cp $ltfile build/libtool.m4
+
+for file in ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4; do
+ rm -f build/$file
+
+ if [ $lt_major_version -ge 2 ]; then
+ ltfile=${LIBTOOL_M4-`cd $ltpath/../share/aclocal ; pwd`/$file}
+
+ if [ ! -f $ltfile ]; then
+ echo "$ltfile not found (try setting the LIBTOOL_M4 environment variable)"
+ exit 1
+ fi
+
+ echo "Copying libtool helper: $ltfile"
+ cp $ltfile build/$file
+ fi
+done
+
+if [ $lt_major_version -ge 2 ]; then
+ for file in config.guess config.sub; do
+ configfile=${LIBTOOL_CONFIG-`cd $ltpath/../share/libtool/config ; pwd`/$file}
+
+ if [ ! -f $configfile ]; then
+ echo "$configfile not found (try setting the LIBTOOL_CONFIG environment variable)"
+ exit 1
+ fi
+
+ cp $configfile build/$file
+ done
+fi
+
+# Create the file detailing all of the build outputs for SVN.
+#
+# Note: this dependency on Python is fine: only SVN developers use autogen.sh
+# and we can state that dev people need Python on their machine. Note
+# that running gen-make.py requires Python 2.4 or newer.
+
+PYTHON="`./build/find_python.sh`"
+if test -z "$PYTHON"; then
+ echo "Python 2.4 or later is required to run autogen.sh"
+ echo "If you have a suitable Python installed, but not on the"
+ echo "PATH, set the environment variable PYTHON to the full path"
+ echo "to the Python executable, and re-run autogen.sh"
+ exit 1
+fi
+
+# Compile SWIG headers into standalone C files if we are in release mode
+if test -n "$RELEASE_MODE"; then
+ echo "Generating SWIG code..."
+ # Generate build-outputs.mk in non-release-mode, so that we can
+ # build the SWIG-related files
+ "$PYTHON" ./gen-make.py build.conf || gen_failed=1
+
+ # Build the SWIG-related files
+ make -f autogen-standalone.mk autogen-swig
+fi
+
+if test -n "$SKIP_DEPS"; then
+ echo "Creating build-outputs.mk (no dependencies)..."
+ "$PYTHON" ./gen-make.py $RELEASE_ARGS -s build.conf || gen_failed=1
+else
+ echo "Creating build-outputs.mk..."
+ "$PYTHON" ./gen-make.py $RELEASE_ARGS build.conf || gen_failed=1
+fi
+
+if test -n "$RELEASE_MODE"; then
+ find build/ -name '*.pyc' -exec rm {} \;
+fi
+
+rm autogen-standalone.mk
+
+if test -n "$gen_failed"; then
+ echo "ERROR: gen-make.py failed"
+ exit 1
+fi
+
+# Produce config.h.in
+echo "Creating svn_private_config.h.in..."
+${AUTOHEADER:-autoheader}
+
+# If there's a config.cache file, we may need to delete it.
+# If we have an existing configure script, save a copy for comparison.
+if [ -f config.cache ] && [ -f configure ]; then
+ cp configure configure.$$.tmp
+fi
+
+# Produce ./configure
+echo "Creating configure..."
+${AUTOCONF:-autoconf}
+
+# If we have a config.cache file, toss it if the configure script has
+# changed, or if we just built it for the first time.
+if [ -f config.cache ]; then
+ (
+ [ -f configure.$$.tmp ] && cmp configure configure.$$.tmp > /dev/null 2>&1
+ ) || (
+ echo "Tossing config.cache, since configure has changed."
+ rm config.cache
+ )
+ rm -f configure.$$.tmp
+fi
+
+# Remove autoconf 2.5x's cache directory
+rm -rf autom4te*.cache
+
+echo ""
+echo "You can run ./configure now."
+echo ""
+echo "Running autogen.sh implies you are a maintainer. You may prefer"
+echo "to run configure in one of the following ways:"
+echo ""
+echo "./configure --enable-maintainer-mode"
+echo "./configure --disable-shared"
+echo "./configure --enable-maintainer-mode --disable-shared"
+echo ""
+echo "Note: If you wish to run a Subversion HTTP server, you will need"
+echo "Apache 2.x. See the INSTALL file for details."
+echo ""