build: Allow using gettext 0.17
authorEmmanuele Bassi <ebassi@linux.intel.com>
Thu, 9 Sep 2010 10:58:03 +0000 (11:58 +0100)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Thu, 9 Sep 2010 10:58:03 +0000 (11:58 +0100)
This requires some autotools magic when setting up the environment
through autogen.sh, because autoreconf does not do the right thing
by default.

The correct order for setting up localization is:

  ‣ autopoint
  ‣ aclocal
  ‣ ...

otherwise aclocal will copy the system's gettext.m4 instead of honouring
the version we specified with AM_GNU_GETTEXT_VERSION in configure.ac.

autogen.sh
configure.ac

index 6b1f6ea..7fbbdf0 100755 (executable)
-#! /bin/sh
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
 
 srcdir=`dirname $0`
 test -z "$srcdir" && srcdir=.
 
+ORIGDIR=`pwd`
+cd $srcdir
 PROJECT=Clutter
-TEST_TYPE=-d
-FILE=clutter
+TEST_TYPE=-f
+FILE=clutter/clutter.h
 
-test $TEST_TYPE $FILE || {
-        echo "You must run this script in the top-level $PROJECT directory"
-        exit 1
+DIE=0
+
+have_libtool=false
+if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
+       libtool_version=`libtoolize --version |
+                        head -1 |
+                        sed -e 's/^\(.*\)([^)]*)\(.*\)$/\1\2/g' \
+                            -e 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
+       case $libtool_version in
+           2.2*)
+               have_libtool=true
+               ;;
+       esac
+fi
+if $have_libtool ; then : ; else
+       echo
+       echo "You must have libtool 2.2 installed to compile $PROJECT."
+       echo "Install the appropriate package for your distribution,"
+       echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
+       DIE=1
+fi
+
+(gtkdocize --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have gtk-doc installed to compile $PROJECT."
+       echo "Install the appropriate package for your distribution,"
+       echo "or get the source tarball at http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/"
+       DIE=1
+}
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+       echo
+       echo "You must have autoconf installed to compile $PROJECT."
+       echo "Install the appropriate package for your distribution,"
+       echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
+       DIE=1
 }
 
-GTKDOCIZE=`which gtkdocize`
-if test -z $GTKDOCIZE; then
-        echo "*** No gtk-doc support ***"
-        echo "EXTRA_DIST =" > gtk-doc.make
+if automake-1.11 --version < /dev/null > /dev/null 2>&1 ; then
+    AUTOMAKE=automake-1.11
+    ACLOCAL=aclocal-1.11
 else
-        ${GTKDOCIZE} || exit $?
+       echo
+       echo "You must have automake or 1.11.x installed to compile $PROJECT."
+       echo "Install the appropriate package for your distribution,"
+       echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
+       DIE=1
 fi
 
-AUTORECONF=`which autoreconf`
-if test -z $AUTORECONF; then
-        echo "*** No autoreconf found ***"
-        exit 1
-else
-        ACLOCAL="${ACLOCAL-aclocal} $ACLOCAL_FLAGS" ${AUTORECONF} -f -v --install || exit $?
+if test "$DIE" -eq 1; then
+       exit 1
+fi
+
+test $TEST_TYPE $FILE || {
+       echo "You must run this script in the top-level $PROJECT directory"
+       exit 1
+}
+
+# NOCONFIGURE is used by gnome-common; support both
+if ! test -z "$AUTOGEN_SUBDIR_MODE"; then
+    NOCONFIGURE=1
 fi
 
 if test -z "$NOCONFIGURE"; then
-        ./configure "$@" && echo "Now type 'make' to compile $PROJECT."
+        if test -z "$*"; then
+                echo "I am going to run ./configure with no arguments - if you wish "
+                echo "to pass any to it, please specify them on the $0 command line."
+        fi
+fi
+
+if test -z "$ACLOCAL_FLAGS"; then
+
+       acdir=`$ACLOCAL --print-ac-dir`
+        m4list="glib-2.0.m4 glib-gettext.m4"
+
+       for file in $m4list
+       do
+               if [ ! -f "$acdir/$file" ]; then
+                       echo "WARNING: aclocal's directory is $acdir, but..."
+                       echo "         no file $acdir/$file"
+                       echo "         You may see fatal macro warnings below."
+                       echo "         If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
+                       echo "         environment variable to \"-I /some/dir\", or install"
+                       echo "         $acdir/$file."
+                       echo ""
+               fi
+       done
+fi
+
+rm -rf autom4te.cache
+
+autopoint --force || exit $?
+
+$ACLOCAL -I build/autotools $ACLOCAL_FLAGS || exit $?
+
+libtoolize --force || exit $?
+gtkdocize || exit $?
+autoheader || exit $?
+
+$AUTOMAKE --add-missing || exit $?
+autoconf || exit $?
+cd $ORIGDIR || exit $?
+
+if test -z "$NOCONFIGURE"; then
+        $srcdir/configure $AUTOGEN_CONFIGURE_ARGS "$@" || exit $?
+
+        echo 
+        echo "Now type 'make' to compile $PROJECT."
 fi
index 8570063..91b7973 100644 (file)
@@ -1093,7 +1093,7 @@ AM_CONDITIONAL(ENABLE_PDFS, [test "x$enable_pdfs" = "xyes"])
 
 dnl === I18N ==================================================================
 
-AM_GNU_GETTEXT_VERSION([0.18.1])
+AM_GNU_GETTEXT_VERSION([0.17])
 AM_GNU_GETTEXT([external])
 
 GETTEXT_PACKAGE="clutter-1.0"