summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
authorFrederic Culot <calcurse@culot.org>2006-07-31 21:00:02 +0000
committerFrederic Culot <calcurse@culot.org>2006-07-31 21:00:02 +0000
commitac36e94341ca73d581f0df39f1c7bbf2138b2845 (patch)
tree47de561cd962ff8f47f6d811109907f15b9ff989 /autogen.sh
downloadcalcurse-ac36e94341ca73d581f0df39f1c7bbf2138b2845.zip
Initial revision
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh174
1 files changed, 174 insertions, 0 deletions
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..aa44551
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,174 @@
+#!/bin/sh
+#
+# Copyright (c) 2004-2006 Frederic Culot
+#
+# 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., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+# Send your feedback or comments to : calcurse@culot.org
+# Calcurse home page : http://culot.org/calcurse
+#
+# $calcurse: autogen.sh,v 1.1 2006/07/31 21:00:02 culot Exp $
+#
+#
+# autogen.sh - Generates all the necessary files to build calcurse from
+# cvs tree.
+#
+
+PKG_NAME=calcurse
+AC_VERSION="2 59"
+AUTOCONF_VERSION=2.59
+AC_FLAGS=
+AM_VERSION="1 9"
+AUTOMAKE_VERSION=1.9
+AM_FLAGS="--gnu --copy --add-missing"
+GETTEXT_VERSION="0 14"
+GETTEXT_FLAGS="--copy --no-changelog"
+ACLOCAL_FLAGS="-I m4"
+SRCDIR=`dirname $0`
+test -z "$SRCDIR" && SRCDIR=.
+export AUTOMAKE_VERSION AUTOCONF_VERSION
+
+# Function to check if we are at the top level of calcurse package.
+check_directory_level()
+{
+ (test -f $SRCDIR/configure.ac) || {
+ printf "\n\n**Error**: Directory "\`$SRCDIR\'" does not appear to"
+ printf "\nbe the top-level $PKG_NAME directory.\n"
+ exit 1
+ }
+}
+
+# Clean previous files before running scripts
+clean_old_files()
+{
+ printf "Cleaning old files ... "
+ rm -rf configure config.log aclocal.m4 \
+ config.status config autom4te.cache \
+ po/Makefile.in.in
+ printf "done\n"
+}
+
+# Clean useless backup files
+clean_backup_files()
+{
+ printf "Cleaning backup files ... "
+ rm -rf configure.ac\~ Makefile.am\~
+ printf "done\n"
+}
+
+# Function to check for a program availability
+check_program()
+{
+ PROGRAM=$1
+ printf "Checking for $PROGRAM ... "
+ ($PROGRAM --version) < /dev/null > /dev/null 2>&1 || {
+ printf "\n\n**Error**: You must have $PROGRAM installed."
+ printf "\nDownload the appropriate package for your distribution,"
+ printf "\nor get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ printf "\n"
+ exit 1
+ }
+ FOUND=`which $PROGRAM`
+ printf "$FOUND\n"
+}
+
+# Function to check a program's version
+# (there must be a better way, but I am not good at sed...)
+check_program_version()
+{
+ PROGRAM=$1; MAJOR=$2; MINOR=$3
+ printf "Checking that $PROGRAM version is at least $MAJOR.$MINOR ... "
+ VERSION=`$PROGRAM --version |head -n 1|sed 's/([^)]*)//g;s/^[a-zA-Z\.\ \
+ \-]*//;s/ .*$//'`
+ MAJOR_FOUND=`echo $VERSION | cut -d. -f1`
+ MINOR_FOUND=`echo $VERSION | sed s/[-,a-z,A-Z].*// | cut -d. -f2`
+ [ -z "$MINOR_FOUND" ] && MINOR_FOUND=0
+
+ WRONG=
+ if [ -z "$MAJOR_FOUND" -lt "$MAJOR" ]; then
+ WRONG=1
+ elif [ "$MAJOR_FOUND" -eq "$MAJOR" ]; then
+ if [ "$MINOR_FOUND" -lt "$MINOR" ]; then
+ WRONG=1
+ fi
+ fi
+ if [ ! -z "$WRONG" ]; then
+ printf "\n\n**Error**: found version $MAJOR_FOUND.$MINOR_FOUND,"
+ printf "\nwhich is too old. You should upgrade $PROGRAM."
+ printf "\nDownload the appropriate package for your distribution,"
+ printf "\nor get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ printf "\n"
+ exit 1
+ else
+ printf "OK, found $MAJOR_FOUND.$MINOR_FOUND\n"
+ fi
+}
+
+# Dirty hack to run gettextize: problem is that it demands to
+# press Return no matter what... This gets rid of that demand.
+run_gettext()
+{
+ PROGRAM=gettextize
+ printf "Running $PROGRAM $GETTEXT_FLAGS ... "
+ sed 's:read .*< /dev/tty::' `which $PROGRAM` > my-gettextize
+ chmod +x my-gettextize
+ (printf "\n" | ./my-gettextize $GETTEXT_FLAGS > /dev/null 2>&1) || {
+ printf "\n\n**Error**: $PROGRAM failed.\n"
+ exit 1
+ }
+
+ # now restore the files modified by gettextize
+ (test -f configure.ac~) && mv -f configure.ac~ configure.ac
+ (test -f Makefile.am~) && mv -f Makefile.am~ Makefile.am
+ mv -f po/Makevars.template po/Makevars
+ rm my-gettextize
+ printf "OK\n"
+}
+
+# Function to run a program
+run_program()
+{
+ PROGRAM=$1
+ shift
+ PROGRAM_FLAGS=$@
+ printf "Running $PROGRAM $PROGRAM_FLAGS ... "
+ $PROGRAM $PROGRAM_FLAGS > /dev/null 2>&1 || {
+ printf "\n\n**Error**: $PROGRAM failed.\n"
+ exit 1
+ }
+ printf "OK\n"
+}
+
+# Main
+
+echo " --- $PKG_NAME autogen script ---\n"
+check_directory_level
+clean_old_files
+check_program gettext
+check_program_version gettext $GETTEXT_VERSION
+check_program aclocal
+check_program autoheader
+check_program automake
+check_program_version automake $AM_VERSION
+check_program autoconf
+check_program_version autoconf $AC_VERSION
+run_gettext
+run_program aclocal $ACLOCAL_FLAGS
+run_program autoheader
+run_program automake $AM_FLAGS
+run_program autoconf $AC_FLAGS
+clean_backup_files
+printf "\nYou can now run the configure script to obtain $PKG_NAME Makefile.\n"