[gtkglext] Make gtkglext build again on modern distros



commit 93e52dc3dabf78f0ff919a7dcabb41f8a4b923e0
Author: Mukund Sivaraman <muks banu com>
Date:   Tue Oct 20 00:45:08 2009 +0530

    Make gtkglext build again on modern distros
    
    Also,
    
     o Add back the m4macros directory with a placeholder .gitignore
     o Use GTK_DOC_CHECK
     o Add placeholder po/POTFILES.in for now

 Makefile.am         |    3 +
 autogen.sh          |  337 ++++++++++++++++++++++++++++++++++++++++++---------
 configure.ac        |   56 +--------
 3 files changed, 285 insertions(+), 111 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ae19094..97a581d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,6 +4,9 @@
 SUBDIRS = gdk gtk docs
 DIST_SUBDIRS = $(SUBDIRS) examples
 
+# tools want this on a single line
+ACLOCAL_AMFLAGS = -I m4macros
+
 EXTRA_DIST = \
 	README.win32			\
 	ChangeLog.pre-1-0		\
diff --git a/autogen.sh b/autogen.sh
index 845eba1..a763feb 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,86 +1,309 @@
 #!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-# Shamelessly ripped from glib.
+
+# This script does all the magic calls to automake/autoconf and friends
+# that are needed to configure a repo checkout. As described in the file
+# HACKING you need a couple of extra tools to run this script
+# successfully.
+#
+# If you are compiling from a released tarball you don't need these
+# tools and you shouldn't use this script.  Just call ./configure
+# directly.
+#
+# Portions of this file were adapted from GIMP.
+
+ACLOCAL=${ACLOCAL-aclocal}
+AUTOCONF=${AUTOCONF-autoconf}
+AUTOHEADER=${AUTOHEADER-autoheader}
+AUTOMAKE=${AUTOMAKE-automake}
+LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
+
+AUTOCONF_REQUIRED_VERSION=2.54
+AUTOMAKE_REQUIRED_VERSION=1.9.6
+INTLTOOL_REQUIRED_VERSION=0.40.1
+LIBTOOL_REQUIRED_VERSION=1.5
+
+ACLOCAL_FLAGS="-I m4macros"
+
+# Test to make sure this script is run in top-level directory
+PROJECT="GtkGLExt"
+TEST_TYPE=-f
+FILE=gdk/gdkgl.h
+
 
 srcdir=`dirname $0`
 test -z "$srcdir" && srcdir=.
-
 ORIGDIR=`pwd`
 cd $srcdir
-PROJECT=GtkGLExt
-TEST_TYPE=-f
-FILE=gdk/gdkgl.h
+
+
+check_version ()
+{
+    VERSION_A=$1
+    VERSION_B=$2
+
+    save_ifs="$IFS"
+    IFS=.
+    set dummy $VERSION_A 0 0 0
+    MAJOR_A=$2
+    MINOR_A=$3
+    MICRO_A=$4
+    set dummy $VERSION_B 0 0 0
+    MAJOR_B=$2
+    MINOR_B=$3
+    MICRO_B=$4
+    IFS="$save_ifs"
+
+    if expr "$MAJOR_A" = "$MAJOR_B" > /dev/null; then
+        if expr "$MINOR_A" \> "$MINOR_B" > /dev/null; then
+           echo "yes (version $VERSION_A)"
+        elif expr "$MINOR_A" = "$MINOR_B" > /dev/null; then
+            if expr "$MICRO_A" \>= "$MICRO_B" > /dev/null; then
+               echo "yes (version $VERSION_A)"
+            else
+                echo "Too old (version $VERSION_A)"
+                DIE=1
+            fi
+        else
+            echo "Too old (version $VERSION_A)"
+            DIE=1
+        fi
+    elif expr "$MAJOR_A" \> "$MAJOR_B" > /dev/null; then
+	echo "Major version might be too new ($VERSION_A)"
+    else
+	echo "Too old (version $VERSION_A)"
+	DIE=1
+    fi
+}
+
+echo
+echo "I am testing that you have the tools required to build $PROJECT from"
+echo "a repo checkout. This test is not foolproof, so if anything goes wrong,"
+echo "see the file HACKING for more information."
+echo
 
 DIE=0
 
-have_libtool=false
-if libtoolize --version < /dev/null > /dev/null 2>&1 ; then
-	libtool_version=`libtoolize --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
-	case $libtool_version in
-	    1.5*)
-		have_libtool=true
-		;;
-	esac
+
+echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... "
+if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
+   LIBTOOLIZE=$LIBTOOLIZE
+elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then
+   LIBTOOLIZE=glibtoolize
+else
+    echo
+    echo "  You must have libtool installed to compile $PROJECT."
+    echo "  Install the appropriate package for your distribution,"
+    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/";
+    echo
+    DIE=1
 fi
-if $have_libtool ; then : ; else
-	echo
-	echo "You must have libtool 1.5 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
+
+if test x$LIBTOOLIZE != x; then
+    VER=`$LIBTOOLIZE --version \
+         | grep libtool | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
+    check_version $VER $LIBTOOL_REQUIRED_VERSION
 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 ftp://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
-}
+# check if gtk-doc is explicitely disabled
+for ag_option in $AUTOGEN_CONFIGURE_ARGS $@
+do
+  case $ag_option in
+    -disable-gtk-doc | --disable-gtk-doc)
+    enable_gtk_doc=no
+  ;;
+  esac
+done
 
-if automake-1.7 --version < /dev/null > /dev/null 2>&1 ; then
-    AUTOMAKE=automake-1.7
-    ACLOCAL=aclocal-1.7
+if test x$enable_gtk_doc = xno; then
+  echo "skipping test for gtkdocize"
 else
-	echo
-	echo "You must have automake 1.7.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
+  echo -n "checking for gtkdocize ... "
+  if (gtkdocize --version) < /dev/null > /dev/null 2>&1; then
+      echo "yes"
+  else
+      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"
+      echo "  http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/";
+      echo "  You can also use the option --disable-gtk-doc to skip"
+      echo "  this test but then you will not be able to generate a"
+      echo "  configure script that can build the API documentation."
+      DIE=1
+  fi
+fi
+
+echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... "
+if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1; then
+    VER=`$AUTOCONF --version | head -n 1 \
+         | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
+    check_version $VER $AUTOCONF_REQUIRED_VERSION
+else
+    echo
+    echo "  You must have autoconf installed to compile $PROJECT."
+    echo "  Download the appropriate package for your distribution,"
+    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/";
+    echo
+    DIE=1;
+fi
+
+
+echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... "
+if ($AUTOMAKE --version) < /dev/null > /dev/null 2>&1; then
+   AUTOMAKE=$AUTOMAKE
+   ACLOCAL=$ACLOCAL
+elif (automake-1.10 --version) < /dev/null > /dev/null 2>&1; then
+   AUTOMAKE=automake-1.10
+   ACLOCAL=aclocal-1.10
+elif (automake-1.9 --version) < /dev/null > /dev/null 2>&1; then
+   AUTOMAKE=automake-1.9
+   ACLOCAL=aclocal-1.9
+else
+    echo
+    echo "  You must have automake $AUTOMAKE_REQUIRED_VERSION or newer installed to compile $PROJECT."
+    echo "  Download the appropriate package for your distribution,"
+    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/";
+    echo
+    DIE=1
+fi
+
+if test x$AUTOMAKE != x; then
+    VER=`$AUTOMAKE --version \
+         | grep automake | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
+    check_version $VER $AUTOMAKE_REQUIRED_VERSION
+fi
+
+
+echo -n "checking for intltool >= $INTLTOOL_REQUIRED_VERSION ... "
+if (intltoolize --version) < /dev/null > /dev/null 2>&1; then
+    VER=`intltoolize --version \
+         | grep intltoolize | sed "s/.* \([0-9.]*\)/\1/"`
+    check_version $VER $INTLTOOL_REQUIRED_VERSION
+else
+    echo
+    echo "  You must have intltool installed to compile $PROJECT."
+    echo "  Get the latest version from"
+    echo "  ftp://ftp.gnome.org/pub/GNOME/sources/intltool/";
+    echo
+    DIE=1
+fi
+
+
+echo -n "checking for xsltproc ... "
+if (xsltproc --version) < /dev/null > /dev/null 2>&1; then
+    echo "yes"
+else
+    echo
+    echo "  You must have xsltproc installed to compile $PROJECT."
+    echo "  Get the latest version from"
+    echo "  ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/";
+    echo
+    DIE=1
+fi
+
+echo -n "checking for pkg-config ... "
+if (pkg-config --version) < /dev/null > /dev/null 2>&1; then
+    echo "yes"
+else
+    echo
+    echo "  You must have pkg-config installed to compile $PROJECT."
+    echo "  Get the latest version from"
+    echo "  http://pkgconfig.freedesktop.org/";
+    echo
+    DIE=1
 fi
 
 if test "$DIE" -eq 1; then
-	exit 1
+    echo
+    echo "Please install/upgrade the missing tools and call me again."
+    echo
+    exit 1
 fi
 
+
 test $TEST_TYPE $FILE || {
-	echo "You must run this script in the top-level $PROJECT directory"
-	exit 1
+    echo
+    echo "You must run this script in the top-level $PROJECT directory."
+    echo
+    exit 1
 }
 
-if test -z "$AUTOGEN_SUBDIR_MODE"; then
-        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."
+
+echo
+echo "I am going to run ./configure with the following arguments:"
+echo
+echo "  --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS $@"
+echo
+
+if test -z "$*"; then
+    echo "If you wish to pass additional arguments, please specify them "
+    echo "on the $0 command line or set the AUTOGEN_CONFIGURE_ARGS "
+    echo "environment variable."
+    echo
+fi
+
+
+if test -z "$ACLOCAL_FLAGS"; then
+
+    acdir=`$ACLOCAL --print-ac-dir`
+    m4list="glib-2.0.m4 glib-gettext.m4 gtk-2.0.m4 intltool.m4 pkg.m4"
+
+    for file in $m4list
+    do
+	if [ ! -f "$acdir/$file" ]; then
+	    echo
+	    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 "
+            echo "         ACLOCAL_FLAGS environment variable to \"-I /some/dir\""
+            echo "         or install $acdir/$file."
+            echo
         fi
+    done
 fi
 
-# gtkdocize || exit 1
+rm -rf autom4te.cache
 
-autoreconf --install --symlink || exit 1;
-cd $ORIGDIR
+$ACLOCAL $ACLOCAL_FLAGS
+RC=$?
+if test $RC -ne 0; then
+   echo "$ACLOCAL gave errors. Please fix the error conditions and try again."
+   exit $RC
+fi
+
+$LIBTOOLIZE --force || exit $?
+
+if test x$enable_gtk_doc = xno; then
+    if test -f gtk-doc.make; then :; else
+       echo "EXTRA_DIST = missing-gtk-doc" > gtk-doc.make
+    fi
+    echo "WARNING: You have disabled gtk-doc."
+    echo "         As a result, you will not be able to generate the API"
+    echo "         documentation and 'make dist' will not work."
+    echo
+else
+    gtkdocize || exit $?
+fi
+
+# optionally feature autoheader
+($AUTOHEADER --version)  < /dev/null > /dev/null 2>&1 && $AUTOHEADER || exit 1
+
+$AUTOMAKE --add-missing || exit $?
+$AUTOCONF || exit $?
 
-if test -z "$AUTOGEN_SUBDIR_MODE"; then
-        $srcdir/configure --enable-maintainer-mode --enable-gtk-doc "$@"
+intltoolize --force --automake || exit $?
 
-        echo 
-        echo "Now type 'make' to compile $PROJECT."
+
+cd $ORIGDIR
+
+$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@"
+RC=$?
+if test $RC -ne 0; then
+  echo
+  echo "Configure failed or did not finish!"
+  exit $RC
 fi
+
+echo
+echo "Now type 'make' to compile $PROJECT."
diff --git a/configure.ac b/configure.ac
index 534ec5e..ad04d2d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,6 +82,7 @@ AC_INIT([gtkglext], [gtkglext_version],
         [gtkglext-list gnome org])
 
 AC_CONFIG_SRCDIR([gdk/gdkgl.h])
+AC_CONFIG_MACRO_DIR([m4macros])
 
 # Save this value here, since automake will set cflags later
 cflags_set=${CFLAGS+set}
@@ -783,60 +784,7 @@ AC_SUBST([GTKGLEXT_DEP_LIBS_WITH_PANGOFT2])
 # Checks for gtk-doc and docbook-tools
 ##################################################
 
-AC_ARG_WITH([html-dir],
-            [AS_HELP_STRING([--with-html-dir=PATH],
-                            [path to installed docs])])
-
-if test "x$with_html_dir" = "x" ; then
-  HTML_DIR='${datadir}/gtk-doc/html'
-else
-  HTML_DIR=$with_html_dir
-fi
-
-AC_SUBST([HTML_DIR])
-
-dnl Make people enable the gtk-doc stuff explicitely.
-AC_ARG_ENABLE([gtk-doc],
-              [AS_HELP_STRING([--enable-gtk-doc],
-                              [use gtk-doc to build documentation [default=no]])], ,
-              [enable_gtk_doc=no])
-
-if test "x$enable_gtk_doc" = "xyes" ; then
-
-  gtk_doc_min_version=0.10
-
-  AC_CHECK_PROG([GTKDOC], [gtkdoc-mkdb], [true], [false])
-
-  if $GTKDOC ; then
-    gtk_doc_version=`gtkdoc-mkdb --version`
-    AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
-
-    IFS="${IFS= 	}"; gtk_save_IFS="$IFS"; IFS="."
-    set $gtk_doc_version
-    for min in $gtk_doc_min_version ; do
-        cur=$1; shift
-        if test -z $min ; then break; fi
-        if test -z $cur ; then GTKDOC=false; break; fi
-        if test $cur -gt $min ; then break ; fi
-        if test $cur -lt $min ; then GTKDOC=false; break ; fi
-    done
-    IFS="$gtk_save_IFS"
-
-    if $GTKDOC ; then
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-  fi
-
-  if test x$GTKDOC != xtrue ; then
-    enable_gtk_doc=no 
-  fi
-
-fi
-
-AM_CONDITIONAL([ENABLE_GTK_DOC], [test "x$enable_gtk_doc" = "xyes"])
-
+GTK_DOC_CHECK
 
 ##################################################
 # Output configuration header
diff --git a/m4macros/.gitignore b/m4macros/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..e69de29



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]