diff options
author | Frederic Culot <calcurse@culot.org> | 2006-07-31 21:00:02 +0000 |
---|---|---|
committer | Frederic Culot <calcurse@culot.org> | 2006-07-31 21:00:02 +0000 |
commit | ac36e94341ca73d581f0df39f1c7bbf2138b2845 (patch) | |
tree | 47de561cd962ff8f47f6d811109907f15b9ff989 /autogen.sh | |
download | calcurse-ac36e94341ca73d581f0df39f1c7bbf2138b2845.zip |
Initial revision
Diffstat (limited to 'autogen.sh')
-rwxr-xr-x | autogen.sh | 174 |
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" |