org.guifications.plugins: 52c76daaa741c9b92df9acc46713dc9d975d0d79

rekkanoryo at guifications.org rekkanoryo at guifications.org
Sun Nov 4 00:15:05 CDT 2007


-----------------------------------------------------------------
Revision: 52c76daaa741c9b92df9acc46713dc9d975d0d79
Ancestor: 059f5fe9f8ca0624bd74ea4133401c5478e725ef
Author: rekkanoryo at guifications.org
Date: 2007-11-04T05:12:08
Branch: org.guifications.plugins

Modified files:
        autogen.sh

ChangeLog: 

Port grim's recent autogen.sh stuff from Guifications 3 to the Plugin Pack.

-----------------------------------------------------------------
This revision's diffstat output:
 autogen.sh |  162 ++++++++++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 124 insertions(+), 38 deletions(-)
-------------- next part --------------
============================================================
--- autogen.sh	736de2b477fd790c8db70483c21352c0e5006fc4
+++ autogen.sh	287da0df94373f30fdf92e618639d92dc9c88268
@@ -1,49 +1,135 @@
 #! /bin/sh
-PACKAGE="purple-plugin_pack"
+# Guifications - The end-all, be-all notification framework
+# Copyright (C) 2003-2007 Gary Kramlich <grim at 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 $PACKAGE";
-	echo;
-	exit;
-}
+###############################################################################
+# 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
+#   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="Purple Plugin Pack"
+ARGS_FILE="autogen.args"
 
-(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have libtool installed to compile $PACKAGE";
-	echo;
-	exit;
-}
+###############################################################################
+# Some helper functions
+###############################################################################
+check () {
+	CMD=$1
 
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-	echo;
-	echo "You must have automake installed to compile $PACKAGE";
-	echo;
-	exit;
+	echo -n "checking for ${CMD}... "
+	BIN=`which ${CMD}`
+
+	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 $PACKAGE";
-	echo;
-	exit;
+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 $PACKAGE, please wait...."
-echo;
+###############################################################################
+# We really start here, yes, very sneaky!
+###############################################################################
+FIGLET=`which figlet`
+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;
-echo;
+###############################################################################
+# 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
 
-libtoolize -c -f --automake
-intltoolize --force --copy
-aclocal -I m4 || exit;
-autoheader || exit;
-automake --add-missing --copy
-autoconf || exit;
-automake || exit;
+###############################################################################
+# Check for our required helpers
+###############################################################################
+check "libtoolize";		LIBTOOLIZE=${BIN};
+check "intltoolize";	INTLTOOLIZE=${BIN};
+check "aclocal";		ACLOCAL=${BIN};
+check "autoheader";		AUTOHEADER=${BIN};
+check "automake";		AUTOMAKE=${BIN};
+check "autoconf";		AUTOCONF=${BIN};
 
+###############################################################################
+# Run all of our helpers
+###############################################################################
+run_or_die ${LIBTOOLIZE} -c -f --automake ${LIBTOOLIZE_FLAGS}
+run_or_die ${INTLTOOLIZE} -c -f --automake ${INTLTOOLIZE_FLAGS}
+run_or_die ${ACLOCAL} -I m4 ${ACLOCAL_FLAGS}
+run_or_die ${AUTOHEADER} ${AUTOHEADER_FLAGS}
+run_or_die ${AUTOMAKE} -a -c -f --gnu ${AUTOMAKE_FLAGS}
+run_or_die ${AUTOCONF} -f ${AUTOCONF_FLAGS}
+
+###############################################################################
+# Run configure
+###############################################################################
+echo "running ./configure ${CONFIGURE_ARGS} $@"
+./configure ${CONFIGURE_ARGS} $@
-echo "Running ./configure $@"
-echo;
-./configure $@


More information about the Plugins-commits mailing list