autogen.sh 7.67 KB
Newer Older
Sven Neumann's avatar
Sven Neumann committed
1 2 3 4 5 6 7 8 9 10
#!/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.
Manish Singh's avatar
Manish Singh committed
11

12

13
PROJECT="The GIMP"
14 15 16
TEST_TYPE=-d
FILE=plug-ins

17
LIBTOOL_REQUIRED_VERSION=1.4
18
LIBTOOL_WIN32=1.5
Sven Neumann's avatar
Sven Neumann committed
19
AUTOCONF_REQUIRED_VERSION=2.54
20
AUTOMAKE_REQUIRED_VERSION=1.7
21
GLIB_REQUIRED_VERSION=2.2.0
22
INTLTOOL_REQUIRED_VERSION=0.31
Manish Singh's avatar
Manish Singh committed
23 24


Sven Neumann's avatar
Sven Neumann committed
25 26 27 28 29
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir

30

31
check_version ()
32 33 34 35 36 37 38 39 40
{
    if expr $1 \>= $2 > /dev/null; then
	echo "yes (version $1)"
    else
	echo "Too old (found version $1)!"
	DIE=1
    fi
}

Sven Neumann's avatar
Sven Neumann committed
41
echo
42 43 44
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..."
Manish Singh's avatar
Manish Singh committed
45 46
echo

Sven Neumann's avatar
Sven Neumann committed
47 48
DIE=0

49 50 51

OS=`uname -s`
case $OS in 
52
    *YGWIN* | *INGW*)
53 54 55 56 57 58 59
	echo "Looks like Win32, you will need libtool $LIBTOOL_WIN32 or newer."
	echo
	LIBTOOL_REQUIRED_VERSION=$LIBTOOL_WIN32
	;;
esac


Sven Neumann's avatar
Sven Neumann committed
60
echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... "
61
if (libtoolize --version) < /dev/null > /dev/null 2>&1; then
62 63 64
   LIBTOOLIZE=libtoolize
elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then
   LIBTOOLIZE=glibtoolize
Sven Neumann's avatar
Sven Neumann committed
65 66 67 68 69
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/"
70
    echo
71 72 73 74 75 76 77
    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
78 79
fi

80 81 82 83 84 85 86 87 88 89 90 91
# 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"
92
else
93 94 95 96 97 98 99 100 101 102 103 104 105 106
  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
107 108
fi

Sven Neumann's avatar
Sven Neumann committed
109 110 111 112
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/"`
113
    check_version $VER $AUTOCONF_REQUIRED_VERSION
Sven Neumann's avatar
Sven Neumann committed
114 115 116 117
else
    echo
    echo "  You must have autoconf installed to compile $PROJECT."
    echo "  Download the appropriate package for your distribution,"
118
    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/"
119
    echo
Sven Neumann's avatar
Sven Neumann committed
120
    DIE=1;
Manish Singh's avatar
Manish Singh committed
121 122
fi

123

Sven Neumann's avatar
Sven Neumann committed
124
echo -n "checking for automake >= $AUTOMAKE_REQUIRED_VERSION ... "
125
if (automake-1.7 --version) < /dev/null > /dev/null 2>&1; then
126 127
   AUTOMAKE=automake-1.7
   ACLOCAL=aclocal-1.7
128 129 130
elif (automake-1.8 --version) < /dev/null > /dev/null 2>&1; then
   AUTOMAKE=automake-1.8
   ACLOCAL=aclocal-1.8
131
   AUTOMAKE_REQUIRED_VERSION=1.8.3
132 133 134
elif (automake-1.9 --version) < /dev/null > /dev/null 2>&1; then
   AUTOMAKE=automake-1.9
   ACLOCAL=aclocal-1.9
Sven Neumann's avatar
Sven Neumann committed
135 136
else
    echo
137
    echo "  You must have automake 1.7 or newer installed to compile $PROJECT."
138 139
    echo "  Download the appropriate package for your distribution,"
    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/automake/"
140
    echo
Sven Neumann's avatar
Sven Neumann committed
141
    DIE=1
Manish Singh's avatar
Manish Singh committed
142 143
fi

144 145 146 147 148 149
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

150

Sven Neumann's avatar
Sven Neumann committed
151 152 153 154
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/"`
155
    check_version $VER $GLIB_REQUIRED_VERSION
156
else
Sven Neumann's avatar
Sven Neumann committed
157 158 159 160
    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."
161
    echo
Sven Neumann's avatar
Sven Neumann committed
162
    DIE=1
163 164
fi

165

Sven Neumann's avatar
Sven Neumann committed
166 167 168 169
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/"`
170
    check_version $VER $INTLTOOL_REQUIRED_VERSION
Sven Neumann's avatar
Sven Neumann committed
171 172
else
    echo
173 174 175
    echo "  You must have intltool installed to compile $PROJECT."
    echo "  Get the latest version from"
    echo "  ftp://ftp.gnome.org/pub/GNOME/sources/intltool/"
176
    echo
Sven Neumann's avatar
Sven Neumann committed
177
    DIE=1
178
fi
Sven Neumann's avatar
Sven Neumann committed
179

180

181 182 183 184 185 186 187 188
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/"
189
    echo
190 191
    DIE=1
fi
192

Manish Singh's avatar
Manish Singh committed
193
if test "$DIE" -eq 1; then
Sven Neumann's avatar
Sven Neumann committed
194 195 196 197
    echo
    echo "Please install/upgrade the missing tools and call me again."
    echo	
    exit 1
Manish Singh's avatar
Manish Singh committed
198 199
fi

Sven Neumann's avatar
Sven Neumann committed
200

201
test $TEST_TYPE $FILE || {
Sven Neumann's avatar
Sven Neumann committed
202 203 204 205
    echo
    echo "You must run this script in the top-level $PROJECT directory."
    echo
    exit 1
Manish Singh's avatar
Manish Singh committed
206 207
}

Sven Neumann's avatar
Sven Neumann committed
208

209 210 211 212 213 214
echo
echo "I am going to run ./configure with the following arguments:"
echo
echo "  --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS $@"
echo

Manish Singh's avatar
Manish Singh committed
215
if test -z "$*"; then
216 217 218 219
    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
Manish Singh's avatar
Manish Singh committed
220 221
fi

222

223 224
if test -z "$ACLOCAL_FLAGS"; then

225
    acdir=`$ACLOCAL --print-ac-dir`
226
    m4list="glib-2.0.m4 glib-gettext.m4 gtk-2.0.m4 intltool.m4 pkg.m4"
Sven Neumann's avatar
Sven Neumann committed
227 228 229 230 231 232 233 234

    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."
235 236 237
            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."
Sven Neumann's avatar
Sven Neumann committed
238 239 240
            echo
        fi
    done
241
fi
242

243
rm -rf autom4te.cache
244

245 246 247
$ACLOCAL $ACLOCAL_FLAGS
RC=$?
if test $RC -ne 0; then
Manish Singh's avatar
Manish Singh committed
248
   echo "$ACLOCAL gave errors. Please fix the error conditions and try again."
249
   exit $RC
Manish Singh's avatar
Manish Singh committed
250
fi
Manish Singh's avatar
Manish Singh committed
251

252
$LIBTOOLIZE --force || exit $?
253 254 255 256 257 258 259 260 261 262 263 264

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
265

266
# optionally feature autoheader
267
(autoheader --version)  < /dev/null > /dev/null 2>&1 && autoheader || exit 1
Manish Singh's avatar
Manish Singh committed
268

269 270
$AUTOMAKE --add-missing || exit $?
autoconf || exit $?
Manish Singh's avatar
Manish Singh committed
271

272 273
glib-gettextize --force || exit $?
intltoolize --force --automake || exit $?
274

275

Manish Singh's avatar
Manish Singh committed
276
cd $ORIGDIR
277

278 279 280
$srcdir/configure --enable-maintainer-mode $AUTOGEN_CONFIGURE_ARGS "$@"
RC=$?
if test $RC -ne 0; then
281 282
  echo
  echo "Configure failed or did not finish!"
283
  exit $RC
284
fi
Manish Singh's avatar
Manish Singh committed
285

286 287
echo
echo "Now type 'make' to compile $PROJECT."