mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-21 03:52:33 +00:00
47697d281c
2005-12-06 Manish Singh <yosh@gimp.org> * autogen.sh: Allow overriding from shell environment variables, and prefer any overrid automakes to the default, so long as the version is new enough.
292 lines
7.8 KiB
Bash
Executable file
292 lines
7.8 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# This script does all the magic calls to automake/autoconf and
|
|
# friends that are needed to configure a cvs 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.
|
|
|
|
AUTOCONF=${AUTOCONF-autoconf}
|
|
AUTOHEADER=${AUTOHEADER-autoheader}
|
|
AUTOMAKE=${AUTOMAKE-automake-1.9}
|
|
ACLOCAL=${ACLOCAL-aclocal-1.9}
|
|
LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
|
|
|
|
PROJECT="GNU Image Manipulation Program"
|
|
TEST_TYPE=-d
|
|
FILE=plug-ins
|
|
|
|
LIBTOOL_REQUIRED_VERSION=1.4
|
|
LIBTOOL_WIN32=1.5
|
|
AUTOCONF_REQUIRED_VERSION=2.54
|
|
AUTOMAKE_REQUIRED_VERSION=1.8.3
|
|
GLIB_REQUIRED_VERSION=2.2.0
|
|
INTLTOOL_REQUIRED_VERSION=0.31
|
|
|
|
|
|
srcdir=`dirname $0`
|
|
test -z "$srcdir" && srcdir=.
|
|
ORIGDIR=`pwd`
|
|
cd $srcdir
|
|
|
|
|
|
check_version ()
|
|
{
|
|
if expr $1 \>= $2 > /dev/null; then
|
|
echo "yes (version $1)"
|
|
else
|
|
echo "Too old (found version $1)!"
|
|
DIE=1
|
|
fi
|
|
}
|
|
|
|
echo
|
|
echo "I am testing that you have the required versions of libtool, autoconf,"
|
|
echo "automake, glib-gettextize and intltoolize. This test is not foolproof,"
|
|
echo "so if anything goes wrong, see the file HACKING for more information..."
|
|
echo
|
|
|
|
DIE=0
|
|
|
|
|
|
OS=`uname -s`
|
|
case $OS in
|
|
*YGWIN* | *INGW*)
|
|
echo "Looks like Win32, you will need libtool $LIBTOOL_WIN32 or newer."
|
|
echo
|
|
LIBTOOL_REQUIRED_VERSION=$LIBTOOL_WIN32
|
|
;;
|
|
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 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
|
|
|
|
# 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 test x$enable_gtk_doc = xno; then
|
|
echo "skipping test for gtkdocize"
|
|
else
|
|
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 \
|
|
| 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.9 --version) < /dev/null > /dev/null 2>&1; then
|
|
AUTOMAKE=automake-1.9
|
|
ACLOCAL=aclocal-1.9
|
|
elif (automake-1.8 --version) < /dev/null > /dev/null 2>&1; then
|
|
AUTOMAKE=automake-1.8
|
|
ACLOCAL=aclocal-1.8
|
|
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 glib-gettextize >= $GLIB_REQUIRED_VERSION ... "
|
|
if (glib-gettextize --version) < /dev/null > /dev/null 2>&1; then
|
|
VER=`glib-gettextize --version \
|
|
| grep glib-gettextize | sed "s/.* \([0-9.]*\)/\1/"`
|
|
check_version $VER $GLIB_REQUIRED_VERSION
|
|
else
|
|
echo
|
|
echo " You must have glib-gettextize installed to compile $PROJECT."
|
|
echo " glib-gettextize is part of glib-2.0, so you should already"
|
|
echo " have it. Make sure it is in your PATH."
|
|
echo
|
|
DIE=1
|
|
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
|
|
|
|
if test "$DIE" -eq 1; then
|
|
echo
|
|
echo "Please install/upgrade the missing tools and call me again."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
|
|
test $TEST_TYPE $FILE || {
|
|
echo
|
|
echo "You must run this script in the top-level $PROJECT directory."
|
|
echo
|
|
exit 1
|
|
}
|
|
|
|
|
|
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
|
|
|
|
rm -rf autom4te.cache
|
|
|
|
$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 $?
|
|
|
|
glib-gettextize --force || exit $?
|
|
intltoolize --force --automake || exit $?
|
|
|
|
|
|
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 the $PROJECT."
|