pidgin: 54b23716: A more verbose autogen.sh that Gary and ...
rekkanoryo at pidgin.im
rekkanoryo at pidgin.im
Sun Mar 30 13:21:10 EDT 2008
-----------------------------------------------------------------
Revision: 54b23716f7579d640c2ef6b9fb34d57b325bb220
Ancestor: 911573d00c454e1c21971b8fc71d5c8c5114bddd
Author: rekkanoryo at pidgin.im
Date: 2008-03-30T17:15:21
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/54b23716f7579d640c2ef6b9fb34d57b325bb220
Modified files:
autogen.sh
ChangeLog:
A more verbose autogen.sh that Gary and I have been using for Guifications
and the Purple Plugin Pack for a while now. I wanted to give it a try here
because it lets you know at each step what it's doing.
-------------- next part --------------
============================================================
--- autogen.sh 637a7028d9e52a0455dd5059efd93cee61d03664
+++ autogen.sh 6bab6da8c0a23ad32c08dca4f9e9f6c8235e0024
@@ -1,73 +1,135 @@
-#!/bin/sh
+#! /bin/sh
+# Guifications - The end-all, be-all notification framework
+# Copyright (C) 2003-2008 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.
-CONFIGURE_ARGS=""
-if [ -f configure.args ] ; then
- . configure.args
-fi
+###############################################################################
+# 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="Pidgin"
+ARGS_FILE="autogen.args"
-(glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have glib-gettextize installed to compile Pidgin.";
- echo;
- exit 1;
-}
+###############################################################################
+# Some helper functions
+###############################################################################
+check () {
+ CMD=$1
-(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have intltool installed to compile Pidgin.";
- echo;
- exit 1;
-}
+ echo -n "checking for ${CMD}... "
+ BIN=`which ${CMD}`
-(libtoolize --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have libtool installed to compile Pidgin.";
- echo;
- exit 1;
-}
+ if [ x"${BIN}" = x"" ] ; then
+ echo "not found."
+ echo "${CMD} is required to build ${PACKAGE}!"
+ exit 1;
+ fi
-(automake --version) < /dev/null > /dev/null 2>&1 || {
- echo;
- echo "You must have automake installed to compile Pidgin.";
- echo;
- exit 1;
+ 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`
+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 "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} -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}
-echo;
-echo "Running ./configure ${CONFIGURE_ARGS} $@"
-echo;
+###############################################################################
+# Run configure
+###############################################################################
+echo "running ./configure ${CONFIGURE_ARGS} $@"
./configure ${CONFIGURE_ARGS} $@
-
More information about the Commits
mailing list