diff autogen.sh @ 22610:42e94baa86b8

merge of '46c04c030c2aa142a50b7757576a659b2a5bb670' and 'dce402944e0c7e7fce6947885af42ba1ea7d8a25'
author Timo Jyrinki <timo.jyrinki@iki.fi>
date Wed, 02 Apr 2008 08:22:47 +0000
parents 4989639b6ede
children 185b37776140
line wrap: on
line diff
--- a/autogen.sh	Wed Apr 02 08:16:48 2008 +0000
+++ b/autogen.sh	Wed Apr 02 08:22:47 2008 +0000
@@ -1,73 +1,138 @@
-#!/bin/sh
-
-CONFIGURE_ARGS=""
-if [ -f configure.args ] ; then
-	. configure.args
-fi
-
-(glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have glib-gettextize installed to compile Pidgin.";
-	echo;
-	exit 1;
-}
+#! /bin/sh
+# Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
+# Copyright (C) 2003-2008 Gary Kramlich <grim@reaperworld.com>
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, write to the Free Software Foundation, Inc., 51
+# Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have intltool installed to compile Pidgin.";
-	echo;
-	exit 1;
-}
+###############################################################################
+# Usage
+###############################################################################
+# This script uses a config file that can be used to stash common arguments
+# passed to configure or environment variables that need to be set before
+# configure is called.  The configuration file is a simple shell script that
+# gets sourced.
+#
+# By default, the config file that is used is named 'autogen.args'.  This can
+# be configured below.
+#
+# Available options that are handled are as follow:
+#   ACLOCAL_FLAGS - command line arguments to pass to aclocal
+#   AUTOCONF_FLAGS - command line arguments to pass to autoconf
+#   AUTOHEADER_FLAGS - command line arguments to pass to autoheader
+#   AUTOMAKE_FLAGS - command line arguments to pass to automake flags
+#   CONFIGURE_FLAGS - command line arguments to pass to configure
+#   GLIB_GETTEXTIZE_FLAGS - command line arguments to pass to glib-gettextize
+#   INTLTOOLIZE_FLAGS - command line arguments to pass to intltoolize
+#   LIBTOOLIZE_FLAGS - command line arguments to pass to libtoolize
+#
+# Other helpfull notes:
+#   If you're using a different c compiler, you can override the environment
+#   variable in 'autogen.args'.  For example, say you're using distcc, just add
+#   the following to 'autogen.args':
+#
+#       CC="distcc"
+#
+#   This will work for any influential environment variable to configure.
+###############################################################################
+PACKAGE="Pidgin"
+ARGS_FILE="autogen.args"
 
-(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have libtool installed to compile Pidgin.";
-	echo;
-	exit 1;
-}
+###############################################################################
+# Some helper functions
+###############################################################################
+check () {
+	CMD=$1
 
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have automake installed to compile Pidgin.";
-	echo;
-	exit 1;
+	echo -n "checking for ${CMD}... "
+	BIN=`which ${CMD} 2> /dev/null`
+
+	if [ x"${BIN}" = x"" ] ; then
+		echo "not found."
+		echo "${CMD} is required to build ${PACKAGE}!"
+		exit 1;
+	fi
+
+	echo "${BIN}"
 }
 
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have autoconf installed to compile Pidgin.";
-	echo;
-	exit 1;
+run_or_die () { # beotch
+	CMD=$1
+	shift
+
+	echo -n "running ${CMD} ${@}... "
+	OUTPUT=`${CMD} ${@} 2>&1`
+	if [ $? != 0 ] ; then
+		echo "failed."
+		echo ${OUTPUT}
+		exit 1
+	else
+		echo "done."
+		if [ x"${OUTPUT}" != x"" ] ; then
+			echo ${OUTPUT}
+		fi
+	fi
 }
 
-echo "Generating configuration files for Pidgin, please wait...."
-echo;
+###############################################################################
+# We really start here, yes, very sneaky!
+###############################################################################
+FIGLET=`which figlet 2> /dev/null`
+if [ x"${FIGLET}" != x"" ] ; then
+	${FIGLET} -f small ${PACKAGE}
+	echo "build system is being generated"
+else
+	echo "autogenerating build system for '${PACKAGE}'"
+fi
 
-echo "Running libtoolize, please ignore non-fatal messages...."
-echo n | libtoolize --copy --force || exit 1;
+###############################################################################
+# Look for our args file
+###############################################################################
+echo -n "checking for ${ARGS_FILE}: "
+if [ -f ${ARGS_FILE} ] ; then
+	echo "found."
+	echo -n "sourcing ${ARGS_FILE}: "
+	. autogen.args
+	echo "done."
+else
+	echo "not found."
+fi
 
-# Add other directories to this list if people continue to experience
-# brokennesses ...  Obviously the real answer is for them to fix it
-# themselves, but for Luke's sake we have this.
-for dir in "/usr/local/share/aclocal" \
-           "/opt/gnome-1.4/share/aclocal"
-do
-	if test -d $dir ; then
-		ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I $dir"
-	fi
-done
+###############################################################################
+# Check for our required helpers
+###############################################################################
+check "libtoolize";		LIBTOOLIZE=${BIN};
+check "glib-gettextize"; GLIB_GETTEXTIZE=${BIN};
+check "intltoolize";	INTLTOOLIZE=${BIN};
+check "aclocal";		ACLOCAL=${BIN};
+check "autoheader";		AUTOHEADER=${BIN};
+check "automake";		AUTOMAKE=${BIN};
+check "autoconf";		AUTOCONF=${BIN};
 
-libtoolize -c -f --automake
-glib-gettextize --force --copy
-intltoolize --force --copy
-aclocal $ACLOCAL_FLAGS || exit 1;
-autoheader || exit 1;
-automake --add-missing --copy;
-autoconf || exit 1;
-automake || exit 1;
+###############################################################################
+# Run all of our helpers
+###############################################################################
+run_or_die ${LIBTOOLIZE} ${LIBTOOLIZE_FLAGS:-"-c -f --automake"}
+run_or_die ${GLIB_GETTEXTIZE} ${GLIB_GETTEXTIZE_FLAGS:-"--force --copy"}
+run_or_die ${INTLTOOLIZE} ${INTLTOOLIZE_FLAGS:-"-c -f --automake"}
+run_or_die ${ACLOCAL} ${ACLOCAL_FLAGS:-"-I m4macros"}
+run_or_die ${AUTOHEADER} ${AUTOHEADER_FLAGS}
+run_or_die ${AUTOMAKE} ${AUTOMAKE_FLAGS:-"-a -c --gnu"}
+run_or_die ${AUTOCONF} ${AUTOCONF_FLAGS}
 
-echo;
-echo "Running ./configure ${CONFIGURE_ARGS} $@"
-echo;
+###############################################################################
+# Run configure
+###############################################################################
+echo "running ./configure ${CONFIGURE_ARGS} $@"
 ./configure ${CONFIGURE_ARGS} $@
-