autogen.sh 7.66 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
ACLOCAL=${ACLOCAL-aclocal-1.9}
13 14 15 16
AUTOCONF=${AUTOCONF-autoconf}
AUTOHEADER=${AUTOHEADER-autoheader}
AUTOMAKE=${AUTOMAKE-automake-1.9}
LIBTOOLIZE=${LIBTOOLIZE-libtoolize}
17

Sven Neumann's avatar
Sven Neumann committed
18
AUTOCONF_REQUIRED_VERSION=2.54
19
AUTOMAKE_REQUIRED_VERSION=1.8.3
20
INTLTOOL_REQUIRED_VERSION=0.31
21 22 23 24 25 26
LIBTOOL_REQUIRED_VERSION=1.4
LIBTOOL_WIN32=1.5

PROJECT="GNU Image Manipulation Program"
TEST_TYPE=-d
FILE=plug-ins
Manish Singh's avatar
Manish Singh committed
27 28


Sven Neumann's avatar
Sven Neumann committed
29 30 31 32 33
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir

34

35
check_version ()
36
{
37
    if expr "$1" \>= "$2" > /dev/null; then
38 39
	echo "yes (version $1)"
    else
40
	echo "Too old (found version [$1] expected [$2])"
41 42 43 44
	DIE=1
    fi
}

Sven Neumann's avatar
Sven Neumann committed
45
echo
46 47
echo "I am testing that you have the tools required to build the"
echo "$PROJECT from CVS. This test is not foolproof,"
48
echo "so if anything goes wrong, see the file HACKING for more information..."
Manish Singh's avatar
Manish Singh committed
49 50
echo

Sven Neumann's avatar
Sven Neumann committed
51 52
DIE=0

53 54 55

OS=`uname -s`
case $OS in 
56
    *YGWIN* | *INGW*)
57 58 59 60 61 62 63
	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
64
echo -n "checking for libtool >= $LIBTOOL_REQUIRED_VERSION ... "
65 66
if ($LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1; then
   LIBTOOLIZE=$LIBTOOLIZE
67 68
elif (glibtoolize --version) < /dev/null > /dev/null 2>&1; then
   LIBTOOLIZE=glibtoolize
Sven Neumann's avatar
Sven Neumann committed
69 70 71 72 73
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/"
74
    echo
75 76 77 78 79 80 81
    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
82 83
fi

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

Sven Neumann's avatar
Sven Neumann committed
113
echo -n "checking for autoconf >= $AUTOCONF_REQUIRED_VERSION ... "
114
if ($AUTOCONF --version) < /dev/null > /dev/null 2>&1; then
115
    VER=`$AUTOCONF --version | head -n 1 \
Sven Neumann's avatar
Sven Neumann committed
116
         | grep -iw autoconf | sed "s/.* \([0-9.]*\)[-a-z0-9]*$/\1/"`
117
    check_version $VER $AUTOCONF_REQUIRED_VERSION
Sven Neumann's avatar
Sven Neumann committed
118 119 120 121
else
    echo
    echo "  You must have autoconf installed to compile $PROJECT."
    echo "  Download the appropriate package for your distribution,"
122
    echo "  or get the source tarball at ftp://ftp.gnu.org/pub/gnu/autoconf/"
123
    echo
Sven Neumann's avatar
Sven Neumann committed
124
    DIE=1;
Manish Singh's avatar
Manish Singh committed
125 126
fi

127

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

147 148 149 150 151 152
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

153

154
echo -n "checking for glib-gettextize ... "
Sven Neumann's avatar
Sven Neumann committed
155
if (glib-gettextize --version) < /dev/null > /dev/null 2>&1; then
156
    echo "yes"
157
else
Sven Neumann's avatar
Sven Neumann committed
158 159 160 161
    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."
162
    echo
Sven Neumann's avatar
Sven Neumann committed
163
    DIE=1
164 165
fi

166

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

181

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

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

Sven Neumann's avatar
Sven Neumann committed
201

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

Sven Neumann's avatar
Sven Neumann committed
209

210 211 212 213 214 215
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
216
if test -z "$*"; then
217 218 219 220
    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
221 222
fi

223

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

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

    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."
236 237 238
            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
239 240 241
            echo
        fi
    done
242
fi
243

244
rm -rf autom4te.cache
245

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

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

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
266

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

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

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

276

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

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

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