[gtkglext] Make gtkglext build again on modern distros
- From: Mukund Sivaraman <muks src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtkglext] Make gtkglext build again on modern distros
- Date: Mon, 19 Oct 2009 19:40:33 +0000 (UTC)
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]