2 # Guifications - The end-all, be-all notification framework
3 # Copyright (C) 2003-2008 Gary Kramlich <grim@reaperworld.com>
5 # This program is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by the Free
7 # Software Foundation; either version 2 of the License, or (at your option)
10 # This program is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 # You should have received a copy of the GNU General Public License along with
16 # this program; if not, write to the Free Software Foundation, Inc., 51
17 # Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 ###############################################################################
21 ###############################################################################
22 # This script uses a config file that can be used to stash common arguments
23 # passed to configure or environment variables that need to be set before
24 # configure is called. The configuration file is a simple shell script that
27 # By default, the config file that is used is named 'autogen.args'. This can
28 # be configured below.
30 # Available options that are handled are as follow:
31 # ACLOCAL_FLAGS - command line arguments to pass to aclocal
32 # AUTOCONF_FLAGS - command line arguments to pass to autoconf
33 # AUTOHEADER_FLAGS - command line arguments to pass to autoheader
34 # AUTOMAKE_FLAGS - command line arguments to pass to automake flags
35 # CONFIGURE_FLAGS - command line arguments to pass to configure
36 # INTLTOOLIZE_FLAGS - command line arguments to pass to intltoolize
37 # LIBTOOLIZE_FLAGS - command line arguments to pass to libtoolize
39 # Other helpful notes:
40 # If you're using a different c compiler, you can override the environment
41 # variable in 'autogen.args'. For example, say you're using distcc, just add
42 # the following to 'autogen.args':
46 # This will work for any influential environment variable to configure.
47 ###############################################################################
48 PACKAGE="Purple Plugin Pack"
49 ARGS_FILE="autogen.args"
53 libtoolize="libtoolize"
56 libtoolize="glibtoolize"
61 ###############################################################################
62 # Some helper functions
63 ###############################################################################
67 printf "%s" "checking for ${CMD}... "
68 BIN=`which ${CMD} 2>/dev/null`
70 if [ x"${BIN}" = x"" ] ; then
72 echo "${CMD} is required to build ${PACKAGE}!"
79 run_or_die () { # beotch
83 OUTPUT=`mktemp autogen-XXXXXX`
85 printf "%s" "running ${CMD} ${@}... "
86 ${CMD} ${@} >${OUTPUT} 2>&1
101 ###############################################################################
102 # We really start here, yes, very sneaky!
103 ###############################################################################
104 FIGLET=`which figlet 2> /dev/null`
105 if [ x"${FIGLET}" != x"" ] ; then
106 ${FIGLET} -f small ${PACKAGE}
107 echo "build system is being generated"
109 echo "autogenerating build system for '${PACKAGE}'"
112 ###############################################################################
113 # Look for our args file
114 ###############################################################################
115 printf "%s" "checking for ${ARGS_FILE}: "
116 if [ -f ${ARGS_FILE} ] ; then
118 printf "%s" "sourcing ${ARGS_FILE}: "
119 . "`dirname "$0"`"/${ARGS_FILE}
125 ###############################################################################
126 # Check for our required helpers
127 ###############################################################################
128 check "$libtoolize"; LIBTOOLIZE=${BIN};
129 check "intltoolize"; INTLTOOLIZE=${BIN};
130 check "aclocal"; ACLOCAL=${BIN};
131 check "autoheader"; AUTOHEADER=${BIN};
132 check "automake"; AUTOMAKE=${BIN};
133 check "autoconf"; AUTOCONF=${BIN};
134 check "python"; PYTHON=${BIN};
136 ###############################################################################
137 # Build pluginpack.m4
138 ###############################################################################
139 CONFIG_FILE="plugin_pack.m4"
141 printf "%s" "creating ${CONFIG_FILE} ..."
142 ${PYTHON} plugin_pack.py config_file > ${CONFIG_FILE}
145 ###############################################################################
146 # Run all of our helpers
147 ###############################################################################
148 run_or_die ${LIBTOOLIZE} ${LIBTOOLIZE_FLAGS:-"-c -f --automake"}
149 run_or_die ${INTLTOOLIZE} ${INTLTOOLIZE_FLAGS:-"-c -f --automake"}
150 run_or_die ${ACLOCAL} ${ACLOCAL_FLAGS}
151 run_or_die ${AUTOHEADER} ${AUTOHEADER_FLAGS}
152 run_or_die ${AUTOMAKE} ${AUTOMAKE_FLAGS:-"-a -c --gnu"}
153 run_or_die ${AUTOCONF} ${AUTOCONF_FLAGS}
155 ###############################################################################
157 ###############################################################################
158 echo "running ./configure ${CONFIGURE_FLAGS} $@"
159 ./configure ${CONFIGURE_FLAGS} $@