summary refs log tree commit diff
path: root/autogen.sh
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2004-03-11 22:21:20 +0000
committerAlexander Barton <alex@barton.de>2004-03-11 22:21:20 +0000
commit507a9e9cb336b409b2b975c9f3f380467b5bcf6b (patch)
treed74af8553ee836f945d48e49e631a4d4563c7bf8 /autogen.sh
parent779446298c5d314d079189c304893c1d9ed60248 (diff)
downloadngircd-507a9e9cb336b409b2b975c9f3f380467b5bcf6b.tar.gz
ngircd-507a9e9cb336b409b2b975c9f3f380467b5bcf6b.zip
Reworked configure system: it should be more compatible to most systems
now, and it should even be more flexible and faster :-)
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh107
1 files changed, 100 insertions, 7 deletions
diff --git a/autogen.sh b/autogen.sh
index 6a292394..5e55ee1b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,15 +1,108 @@
 #!/bin/sh
 #
-# $Id: autogen.sh,v 1.7 2003/04/22 10:15:46 alex Exp $
+# ngIRCd -- The Next Generation IRC Daemon
+# Copyright (c)2001-2004 Alexander Barton <alex@barton.de>
 #
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# Please read the file COPYING, README and AUTHORS for more information.
+#
+# $Id: autogen.sh,v 1.8 2004/03/11 22:21:20 alex Exp $
+#
+
+Search()
+{
+	[ $# -eq 2 ] || exit 1
+
+	name="$1"
+	major="$2"
+	minor=99
+
+	type "${name}" >/dev/null 2>&1
+	if [ $? -eq 0 ]; then
+		echo "${name}"
+		return 0
+	fi
+
+	while [ $minor -ge 0 ]; do
+		type "${name}${major}${minor}" >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			echo "${name}${major}${minor}"
+			return 0
+		fi
+		type "${name}-${major}.${minor}" >/dev/null 2>&1
+		if [ $? -eq 0 ]; then
+			echo "${name}-${major}.${minor}" >/dev/null 2>&1
+		fi
+		minor=`expr $minor - 1`
+	done
+	return 1
+}
+
+Notfound()
+{
+	echo "Error: $* not found!"
+	echo "Please install recent versions of GNU autoconf and GNU automake."
+	exit 1
+}
 
-WANT_AUTOMAKE=1.6
+# Reset locale settings to suppress warning messages of Perl
+unset LC_ALL
+unset LANG
+
+# We want to use GNU automake 1.7, if available (WANT_AUTOMAKE is used by
+# the wrapper scripts of Gentoo Linux):
+WANT_AUTOMAKE=1.7
 export WANT_AUTOMAKE
 
-aclocal && \
- autoheader && \
- automake --add-missing && \
- autoconf && \
- echo "Okay, autogen.sh done."
+# Try to detect the needed tools when no environment variable already
+# spezifies one:
+echo "Searching tools ..."
+[ -z "$ACLOCAL" ] && ACLOCAL=`Search aclocal 1`
+[ -z "$AUTOHEADER" ] && AUTOHEADER=`Search autoheader 2`
+[ -z "$AUTOMAKE" ] && AUTOMAKE=`Search automake 1`
+[ -z "$AUTOCONF" ] && AUTOCONF=`Search autoconf 2`
+
+# Some debugging output ...
+if [ -n "$DEBUG" ]; then
+	echo "ACLOCAL=$ACLOCAL"
+	echo "AUTOHEADER=$AUTOHEADER"
+	echo "AUTOMAKE=$AUTOMAKE"
+	echo "AUTOCONF=$AUTOCONF"
+fi
+
+# Verify that all tools have been found
+[ -z "$AUTOCONF" ] && Notfounf autoconf
+[ -z "$AUTOHEADER" ] && Notfound autoheader
+[ -z "$AUTOMAKE" ] && Notfound automake
+[ -z "$AUTOCONF" ] && Notfound autoconf
+
+export AUTOCONF AUTOHEADER AUTOMAKE AUTOCONF
+
+# Generate files
+echo "Generating files ..."
+$ACLOCAL && \
+	$AUTOHEADER && \
+	$AUTOMAKE --add-missing && \
+	$AUTOCONF
+
+if [ $? -eq 0 ]; then
+	# Success: if we got some parameters we call ./configure and pass
+	# all of them to it.
+	if [ -n "$*" -a -x ./configure ]; then
+		echo "Calling generated \"configure\" script ..."
+		./configure $*
+		exit $?
+	else
+		echo "Okay, autogen.sh done; now run the \"configure\" script."
+		exit 0
+	fi
+else
+	# Failure!?
+	echo "Error! Check your installation of GNU automake and autoconf!"
+	exit 1
+fi
 
 # -eof-