configure.in 53 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1 2
dnl Process this file with autoconf to produce a configure script.

3
AC_PREREQ(2.54)
4

5
# Making releases on the stable branch:
6 7
#   GIMP_MICRO_VERSION += 1;
#   GIMP_INTERFACE_AGE += 1;
8

9
m4_define([gimp_major_version], [2])
Sven Neumann's avatar
Sven Neumann committed
10
m4_define([gimp_minor_version], [3])
11
m4_define([gimp_micro_version], [5])
12 13 14
m4_define([gimp_real_version],
          [gimp_major_version.gimp_minor_version.gimp_micro_version])
m4_define([gimp_version], [gimp_real_version])
Sven Neumann's avatar
Sven Neumann committed
15
m4_define([gimp_interface_age], [0])
16 17
m4_define([gimp_binary_age],
          [m4_eval(100 * gimp_minor_version + gimp_micro_version)])
18 19

# For overriding the version string. Comment out if not needed.
Sven Neumann's avatar
Sven Neumann committed
20
# m4_define([gimp_version], [2.2.0])
21 22

# This is the X.Y used in -lgimp-X.Y
23
m4_define([gimp_api_version], [2.0])
24 25 26

# Versions used for apps, plugins, tools, pkg-config files, and data,
# as well as global and user prefs
27
m4_define([gimp_app_version], [2.3])
28 29
m4_define([gimp_plugin_version], [2.0])
m4_define([gimp_tool_version], [2.0])
30
m4_define([gimp_pkgconfig_version], [2.0])
31 32
m4_define([gimp_data_version], [2.0])
m4_define([gimp_sysconf_version], [2.0])
33
m4_define([gimp_user_version], [2.3])
34

35 36
m4_define([gimp_unstable],
          m4_if(m4_eval(gimp_minor_version % 2), [1], [yes], [no]))
37 38
m4_define([gimp_stable],
          m4_if(m4_eval(gimp_minor_version % 2), [0], [yes], [no]))
39

40
m4_define([gimp_full_name], [GNU Image Manipulation Program])
41

42
# required versions of other packages
43
m4_define([glib_required_version], [2.8.0])
44
m4_define([gtk_required_version], [2.6.0])
45
m4_define([gdk_pixbuf_required_version], [gtk_required_version])
46
m4_define([pangoft2_required_version], [1.8.0])
47 48 49 50
m4_define([fontconfig_required_version], [2.2.0])
m4_define([gtkdoc_required_version], [1.0])
m4_define([gtkhtml2_required_version], [2.0.0])
m4_define([gimpprint_required_version], [4.2.0])
51
m4_define([gimpprint_suggested_version], [4.2.6])
52
m4_define([gimpprint_toonew_version], [4.3.0])
53
m4_define([alsa_required_version], [1.0.0])
54
m4_define([rsvg_required_version], [2.8.0])
55
m4_define([wmf_required_version], [0.2.8])
56
m4_define([pygtk_required_version], [1.99.15])
57
m4_define([poppler_required_version], [0.3.1])
58 59
m4_define([gnome_vfs_required_version], [2.10.0])
m4_define([gnomeui_required_version], [2.10.0])
60
m4_define([gnome_keyring_required_version], [0.4.5])
61 62
m4_define([gnome_print_required_version], [2.10.0])

63 64 65 66 67 68 69 70 71

AC_INIT([GIMP], [gimp_version],
        [http://bugzilla.gnome.org/enter_bug.cgi?product=GIMP],
        [gimp])

AC_CONFIG_SRCDIR([app/core/gimp.c])

AM_INIT_AUTOMAKE(no-define)
AM_CONFIG_HEADER(config.h)
Elliot Lee's avatar
Elliot Lee committed
72

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
GIMP_MAJOR_VERSION=gimp_major_version
GIMP_MINOR_VERSION=gimp_minor_version
GIMP_MICRO_VERSION=gimp_micro_version
GIMP_INTERFACE_AGE=gimp_interface_age
GIMP_BINARY_AGE=gimp_binary_age
GIMP_VERSION=gimp_version
GIMP_REAL_VERSION=gimp_real_version
GIMP_API_VERSION=gimp_api_version
GIMP_APP_VERSION=gimp_app_version
GIMP_PLUGIN_VERSION=gimp_plugin_version
GIMP_TOOL_VERSION=gimp_tool_version
GIMP_PKGCONFIG_VERSION=gimp_pkgconfig_version
GIMP_DATA_VERSION=gimp_data_version
GIMP_SYSCONF_VERSION=gimp_sysconf_version
GIMP_USER_VERSION=gimp_user_version
88 89
GIMP_UNSTABLE=gimp_unstable
GIMP_FULL_NAME="gimp_full_name"
90 91 92
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)
AC_SUBST(GIMP_MICRO_VERSION)
93 94 95
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
AC_SUBST(GIMP_API_VERSION)
96
AC_SUBST(GIMP_VERSION)
97 98 99 100 101 102 103 104 105
AC_SUBST(GIMP_REAL_VERSION)
AC_SUBST(GIMP_API_VERSION)
AC_SUBST(GIMP_APP_VERSION)
AC_SUBST(GIMP_PLUGIN_VERSION)
AC_SUBST(GIMP_TOOL_VERSION)
AC_SUBST(GIMP_PKGCONFIG_VERSION)
AC_SUBST(GIMP_DATA_VERSION)
AC_SUBST(GIMP_SYSCONF_VERSION)
AC_SUBST(GIMP_USER_VERSION)
106 107
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
108

109

110
dnl The symbol GIMP_UNSTABLE is defined above for substitution in
111 112
dnl Makefiles and conditionally defined here as a preprocessor symbol
dnl and automake conditional.
113
if test "x$GIMP_UNSTABLE" = "xyes"; then
114
  AC_DEFINE(GIMP_UNSTABLE, 1,
115 116
            [Define to 1 if this is an unstable version of the GIMP])
fi
117 118
AM_CONDITIONAL(GIMP_UNSTABLE, test "x$GIMP_UNSTABLE" = "xyes")

119 120

# libtool versioning
121
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
122 123 124 125 126
m4_define([lt_revision], [gimp_interface_age])
m4_define([lt_age], [m4_eval(gimp_binary_age - gimp_interface_age)])
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_VERSION_INFO)
127 128
AC_SUBST(LT_CURRENT_MINUS_AGE)

129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
GLIB_REQUIRED_VERSION=glib_required_version
GTK_REQUIRED_VERSION=gtk_required_version
GDK_PIXBUF_REQUIRED_VERSION=gdk_pixbuf_required_version
PANGOFT2_REQUIRED_VERSION=pangoft2_required_version
FONTCONFIG_REQUIRED_VERSION=fontconfig_required_version
GTKDOC_REQUIRED_VERSION=gtkdoc_required_version
GTKHTML2_REQUIRED_VERSION=gtkhtml2_required_version
GIMPPRINT_REQUIRED_VERSION=gimpprint_required_version
GIMPPRINT_TOONEW_VERSION=gimpprint_toonew_version
RSVG_REQUIRED_VERSION=rsvg_required_version
WMF_REQUIRED_VERSION=wmf_required_version
AC_SUBST(GLIB_REQUIRED_VERSION)
AC_SUBST(GTK_REQUIRED_VERSION)
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
AC_SUBST(PANGOFT2_REQUIRED_VERSION)
AC_SUBST(FONTCONFIG_REQUIRED_VERSION)
AC_SUBST(GTKDOC_REQUIRED_VERSION)
AC_SUBST(GTKHTML2_REQUIRED_VERSION)
AC_SUBST(GIMPPRINT_REQUIRED_VERSION)
AC_SUBST(GIMPPRINT_TOONEW_VERSION)
AC_SUBST(RSVG_REQUIRED_VERSION)
AC_SUBST(WMF_REQUIRED_VERSION)

152 153 154 155
GETTEXT_PACKAGE=gimp20
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
156

Manish Singh's avatar
Manish Singh committed
157

158 159 160 161 162
dnl Initialize libtool
AC_PROG_CC
AM_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
Elliot Lee's avatar
Elliot Lee committed
163

164
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
165

166 167 168 169
dnl Initialize maintainer mode
AM_MAINTAINER_MODE


170 171 172 173 174 175 176 177 178 179 180 181 182 183
###########################
# Check target architecture
###########################

AC_MSG_CHECKING([for target architecture])
case x"$target" in
  xNONE | x)
    target_or_host="$host" ;;
  *)
    target_or_host="$target" ;;
esac
AC_MSG_RESULT([$target_or_host])

case "$target_or_host" in
184
  i*86-*-*)
185 186 187
    have_x86=yes
    AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
    ;;
188 189 190 191 192
  x86_64-*-*)
    have_x86=yes
    AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
    AC_DEFINE(ARCH_X86_64, 1, [Define to 1 if you are compiling for amd64.])
    ;;
Manish Singh's avatar
Manish Singh committed
193
  ppc-*-* | powerpc-*)
194 195 196
    have_ppc=yes
    AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
    ;;
Manish Singh's avatar
Manish Singh committed
197 198 199 200 201
  ppc64-*-* | powerpc64-*)
    have_ppc=yes
    AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
    AC_DEFINE(ARCH_PPC64, 1, [Define to 1 if you are compiling for PowerPC64.])
    ;;
202 203 204 205 206
  *)
    ;;
esac


207 208 209
#################
# Check for Win32
#################
210

211
AC_MSG_CHECKING([for some Win32 platform])
212 213
case "$target_or_host" in
  *-*-mingw* | *-*-cygwin*)
214 215 216 217 218 219 220 221 222 223
    platform_win32=yes
    ;;
  *)
    platform_win32=no
    ;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")

AC_MSG_CHECKING([for native Win32])
224
case "$target_or_host" in
225 226 227 228 229 230 231 232 233 234 235 236
  *-*-mingw*)
    os_win32=yes
    PATHSEP=';'
    ;;
  *)
    os_win32=no
    PATHSEP=':'
    ;;
esac
AC_MSG_RESULT([$os_win32])
AC_SUBST(PATHSEP)
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
237
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
238 239 240

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Manish Singh's avatar
Manish Singh committed
241
  AC_CHECK_TOOL(WINDRES, windres, :)
242 243
else
  WINDRES=":"
244
fi
Manish Singh's avatar
Manish Singh committed
245

246
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
247
AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
Manish Singh's avatar
Manish Singh committed
248 249

AC_SUBST(WINDRES)
250 251 252 253 254

###############
# Generic stuff
###############

255 256 257 258 259 260
dnl Checks for programs.
AC_ISC_POSIX
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

261 262
dnl Large file support for the swap file
AC_SYS_LARGEFILE
263

264
AC_MSG_CHECKING([whether to turn on debugging])
265
AC_ARG_ENABLE(debug,
266
              [  --enable-debug          turn on debugging (default=no)],
267 268 269
              if eval "test x$enable_debug = xyes"; then
                DEBUGFLAG="-g"
              fi)
270

271
if test -n "$DEBUGFLAG"; then
272
  AC_MSG_RESULT([yes])
273
  CFLAGS="$DEBUGFLAG $CFLAGS"
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
else
  AC_MSG_RESULT([no])
fi

AC_MSG_CHECKING([whether to turn on profiling])
AC_ARG_ENABLE(profile,
              [  --enable-profile        turn on profiling (default=no)],
              if eval "test x$enable_profile = xyes"; then
                PROFFLAG="-pg"
              fi)

if test -n "$PROFFLAG"; then
  AC_MSG_RESULT([yes])
  CFLAGS="$PROFFLAG $CFLAGS"
else
  AC_MSG_RESULT([no])
290
fi
291

292
AC_ARG_ENABLE(ansi,
293
              [  --enable-ansi           turn on strict ansi (default=no)],,
294
              enable_ansi=no)
295

296
changequote(,)dnl
297 298 299 300 301
if eval "test x$GCC = xyes"; then
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
302

303 304 305 306 307
  if test "x$enable_ansi" = "xyes"; then
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac
308

309 310 311 312
    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
313 314
  fi
fi
315
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
316

317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
# gcc2 uses "-fnative-struct".
if test x"$os_win32" = xyes; then
  if test x"$GCC" = xyes; then
    msnative_struct=''
    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
    if test -z "$ac_cv_prog_CC"; then
      our_gcc="$CC"
    else
      our_gcc="$ac_cv_prog_CC"
    fi
    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
      2.)
	if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
	  msnative_struct='-fnative-struct'
	fi
	;;
      *)
	if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
	  msnative_struct='-mms-bitfields'
	fi
	;;
    esac
    if test x"$msnative_struct" = x ; then
      AC_MSG_RESULT([no way])
344
      AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
345 346 347 348 349 350 351
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
  fi
fi

352 353 354
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

355

356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_HEADER_TIME

AC_CHECK_HEADERS(sys/param.h sys/time.h sys/times.h sys/wait.h unistd.h)

AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF

AC_FUNC_ALLOCA

dnl check some more funcs
AC_CHECK_FUNCS(difftime putenv mmap)


373 374 375 376 377 378 379 380 381 382 383 384
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
AC_TRY_LINK([#include <langinfo.h>], [
char c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
], nl_ok=yes, nl_ok=no)
AC_MSG_RESULT($nl_ok)
if test "$nl_ok" = "yes"; then
  AC_DEFINE(HAVE__NL_MEASUREMENT_MEASUREMENT, 1,
	    [Define to 1 if _NL_MEASUREMENT_MEASUREMENT is available])
fi


385 386 387
######################
# Internationalisation
######################
388

389
dnl Note to translators: you MUST have .po files in all 4 directories: po,
390
dnl po-libgimp, po-plug-ins, and po-script-fu before adding your language
391
dnl code to ALL_LINGUAS
392
ALL_LINGUAS="bg ca cs da de el en_CA en_GB es et eu fi fr ga gl gu he hu hr id it ja ko lt mk ms nb ne nl no pa pl pt pt_BR ro ru rw sk sr sr@Latn sv tr uk vi xh yi zh_CN zh_TW"
393

394
AC_PROG_INTLTOOL
395
AM_GLIB_GNU_GETTEXT
396

397

398 399 400
###############################
# Checks for required libraries
###############################
401

402
AM_PATH_GLIB_2_0(glib_required_version, :,
Sven Neumann's avatar
Sven Neumann committed
403 404
  AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
  gobject)
405

406
PKG_CHECK_MODULES(GMODULE, gmodule-2.0 gobject-2.0)
407

408 409 410
AC_MSG_CHECKING([if GLib is version 2.9.0 or newer])
if $PKG_CONFIG --atleast-version=2.9.0 glib-2.0; then
  have_glib_2_9=yes
411
else
412
  have_glib_2_9=no
413
fi
414
AC_MSG_RESULT($have_glib_2_9)
415

416 417 418 419 420 421 422 423 424
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$gimp_save_LIBS


AC_PATH_XTRA

425
AM_PATH_GTK_2_0(gtk_required_version, :,
426
    AC_MSG_ERROR(Test for GTK+ failed. See the file 'INSTALL' for help.))
Elliot Lee's avatar
Elliot Lee committed
427

428 429 430
AC_MSG_CHECKING([if GTK+ is version 2.9.0 or newer])
if $PKG_CONFIG --atleast-version=2.9.0 gtk+-2.0; then
  have_gtk_2_9=yes
431
else
432
  have_gtk_2_9=no
433
fi
434
AC_MSG_RESULT($have_gtk_2_9)
435

436
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version)
437

438 439 440 441 442
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
if test x$GDK_PIXBUF_CSOURCE = xno; then
  AC_MSG_ERROR(Could not find gdk-pixbuf-csource in your PATH)
fi

443 444
PKG_CHECK_MODULES(LIBART, libart-2.0)

445 446
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

447
PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= pangoft2_required_version, :,
448 449 450
  AC_MSG_ERROR([Test for PangoFT2 failed.
*** We require Pango with the optional support for FreeType2 compiled in.
*** See the file 'INSTALL' for more help.]))
451

452 453 454
AC_MSG_CHECKING([if Pango is version 1.11.0 or newer])
if $PKG_CONFIG --atleast-version=1.11.0 pango; then
  have_pango_1_11=yes
455
else
456
  have_pango_1_11=no
457
fi
458
AC_MSG_RESULT($have_pango_1_11)
459

460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483
gimp_save_CFLAGS=$CFLAGS
CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"

AC_MSG_CHECKING([if Pango is built with a recent fontconfig])
AC_TRY_COMPILE([#include <fontconfig/fontconfig.h>],
  [FcObjectSet *os; os = FcObjectSetBuild (FC_FAMILY, FC_WIDTH);],
  fontconfig_ok=yes, fontconfig_ok=no)
AC_MSG_RESULT($fontconfig_ok)

CFLAGS=$gimp_save_CFLAGS

if test "x$fontconfig_ok" = xno; then
  AC_MSG_ERROR([
*** You have a fontconfig >= fontconfig_required_version installed on your system, but your
*** PangoFT2 is using an older version. This old version is probably in
*** /usr/X11R6. Look at the above output, and note that the result for
*** FONTCONFIG_CFLAGS is not in the result for PANGOFT2_CFLAGS, and that
*** there is likely an extra -I line, other than the ones for GLIB,
*** Freetype, and Pango itself. That's where your old fontconfig files are.
*** Rebuild pango, and make sure that it uses the newer fontconfig. The
*** easiest way be sure of this is to simply get rid of the old fontconfig.
*** When you rebuild pango, make sure the result for FONTCONFIG_CFLAGS is
*** the same as the result here.])
fi
484

485 486
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
487
  AC_MSG_CHECKING([for freetype libraries])
488 489 490 491 492 493
  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
  AC_MSG_RESULT($FREETYPE_LIBS)
fi
AC_SUBST(FREETYPE_LIBS)


494 495 496
##########################################
# Check for some special functions we need
##########################################
Elliot Lee's avatar
Elliot Lee committed
497

David Neary's avatar
David Neary committed
498 499
AC_CHECK_HEADERS(math.h ieeefp.h)

Manish Singh's avatar
Manish Singh committed
500 501 502 503 504 505 506 507 508 509 510 511 512 513
dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
  AC_MSG_RESULT(none needed),
  gimp_save_CFLAGS=$CFLAGS
  CFLAGS="$CFLAGS -std1"
  AC_TRY_RUN([#include <math.h>
               int main (void) { return (log(1) != log(1.)); }],
    AC_MSG_RESULT(-std1),
    AC_MSG_RESULT()
    CFLAGS=$gimp_save_CFLAGS
514 515 516 517
    AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)]),
    AC_MSG_RESULT),
  AC_MSG_RESULT())

518 519 520 521 522 523 524 525 526 527 528 529 530 531 532
dnl Check for finite or isfinite
AC_CHECK_FUNCS(finite, , [
  AC_MSG_CHECKING(for finite in <math.h>)
  AC_TRY_LINK([#include <math.h>], [double f = 0.0; finite (f)], [
    AC_DEFINE(HAVE_FINITE, 1)
    AC_MSG_RESULT(yes)], [
    AC_MSG_RESULT(no)
    AC_MSG_CHECKING(for isfinite in <math.h>)
    AC_TRY_LINK([#include <math.h>], [float f = 0.0; isfinite(f)], [
      AC_DEFINE(HAVE_ISFINITE, 1,
                [Define to 1 if you have the isfinite function.])
      AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])])
AC_SUBST(HAVE_FINITE)
AC_SUBST(HAVE_ISFINITE)

533 534 535 536 537 538 539 540 541 542 543 544 545 546 547
LIBS=$gimp_save_LIBS


dnl NeXTStep cc seems to need this
AC_MSG_CHECKING([for extra flags for POSIX compliance])
AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
  AC_MSG_RESULT(none needed),
  gimp_save_CFLAGS=$CFLAGS
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
    CFLAGS=$gimp_save_CFLAGS
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

548 549 550 551 552 553 554
dnl check for rint
AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT, 1,
                              [Define to 1 if you have the rint function.]), [
  AC_CHECK_LIB(m, rint, [
    AC_DEFINE(HAVE_RINT)])])


555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570
######################################################
# Check for extra libs needed for inet_ntoa and socket
######################################################

gimp_save_LIBS=$LIBS
LIBS=""

AC_CHECK_FUNCS(inet_ntoa, , AC_CHECK_LIB(nsl, inet_ntoa))
AC_CHECK_LIB(socket, socket)

SOCKET_LIBS="$LIBS"
LIBS=$gimp_save_LIBS

AC_SUBST(SOCKET_LIBS)


571 572 573
########################
# Check for MMX assembly
########################
574

575 576 577 578 579 580
AC_ARG_ENABLE(mmx,
  [  --enable-mmx            enable MMX support (default=auto)],,
  enable_mmx=$have_x86)

AC_ARG_ENABLE(sse,
  [  --enable-sse            enable SSE support (default=auto)],,
581
  enable_sse=$enable_mmx)
582 583

if test "x$enable_mmx" = xyes; then
584 585
  GIMP_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
  SSE_EXTRA_CFLAGS=
586

587
  AC_MSG_CHECKING(whether we can compile MMX code)
588

589 590 591
  mmx_save_CFLAGS="$CFLAGS"
  CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
  
592 593
  AC_COMPILE_IFELSE([asm ("movq 0, %mm0");],

594 595 596
    AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
    AC_MSG_RESULT(yes)

597
    if test "x$enable_sse" = xyes; then
598 599
      GIMP_DETECT_CFLAGS(sse_flag, '-msse')
      SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $sse_flag"
600 601 602

      AC_MSG_CHECKING(whether we can compile SSE code)

603 604
      CFLAGS="$CFLAGS $sse_flag"

605
      AC_COMPILE_IFELSE([asm ("movntps %xmm0, 0");],
606 607
        AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
        AC_MSG_RESULT(yes)
608
      ,
609 610 611
        enable_sse=no
        AC_MSG_RESULT(no)
        AC_MSG_WARN([The assembler does not support the SSE command set.])
612
      )
613

614
    fi
615
  ,
616 617
    enable_mmx=no
    AC_MSG_RESULT(no)
618
    AC_MSG_WARN([The assembler does not support the MMX command set.])
619
  )
620

621 622 623 624
  CFLAGS="$mmx_save_CFLAGS"

  AC_SUBST(MMX_EXTRA_CFLAGS)
  AC_SUBST(SSE_EXTRA_CFLAGS)
625
fi
626

627 628

############################
629
# Check for AltiVec assembly
630 631 632
############################

AC_ARG_ENABLE(altivec,
633
  [  --enable-altivec        enable AltiVec support (default=auto)],,
634 635 636
  enable_altivec=$have_ppc)

if test "x$enable_altivec" = xyes; then
637

638
  GIMP_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
639 640 641 642 643 644 645 646 647 648 649 650 651

  ALTIVEC_EXTRA_CFLAGS=
  case "$altivec_flag" in
    -maltivec*)
      altivec_save_CPPFLAGS="$CPPFLAGS"
      CPPFLAGS="$altivec_save_CPPFLAGS $altivec_flag"
      AC_CHECK_HEADERS(altivec.h, [ALTIVEC_EXTRA_CFLAGS="$altivec_flag"])
      CPPFLAGS="$altivec_save_CPPFLAGS"
      ;;
    *)
      ALTIVEC_EXTRA_CFLAGS="$altivec_flag"
      ;;
  esac
652
  AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
653

654
  AC_MSG_CHECKING(whether we can compile AltiVec code)
655

656
  can_use_altivec=no
657
  if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
658
    AC_MSG_RESULT(no)
Manish Singh's avatar
Manish Singh committed
659
    AC_MSG_WARN([The compiler does not support the AltiVec command set.])
660 661 662 663 664 665 666 667 668 669 670 671 672
  else
    case "$target_or_host" in
      *-*-darwin*)
        can_use_altivec=yes
        AC_DEFINE(HAVE_ALTIVEC_SYSCTL, 1,
         [Define to 1 if the altivec runtime test should use a sysctl.])
        ;;
      *)
        AC_COMPILE_IFELSE([asm ("vand %v0, %v0, %v0");],
          can_use_altivec=yes, can_use_altivec=no)
        ;;
    esac
    AC_MSG_RESULT($can_use_altivec)
673

674 675 676 677 678 679 680
    if test "x$can_use_altivec" = "xyes"; then
      AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if AltiVec support is available.])
    else
      enable_altivec=no
      AC_MSG_WARN([The assembler does not support the AltiVec command set.])
    fi
  fi
681 682

  enable_altivec="$can_use_altivec"
683
fi
684

685

686 687 688
###################################
# Checks for shared memory handling
###################################
689

690
dnl MacOS X has broken SysV shm
691 692
case "$target_or_host" in
  *-*-darwin* | *-*-rhapsody* | *-*-machten*)
693
    shmdefault=posix
694 695 696 697 698 699 700
    ;;
  *)
    shmdefault=sysv
    ;;
esac

shmtype=auto
701
AC_ARG_WITH(shm, [  --with-shm=none|sysv|posix|auto    shared memory transport type (default=auto)], shmtype=$with_shm)
702 703

case $shmtype in
704
  none|sysv|posix) ;;
705
  auto) shmtype=$shmdefault ;;
706
  *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
707 708
esac

709 710 711 712

if test "x$platform_win32" = "xyes"; then
  shmtype=win32
elif test "x$shmtype" = "xsysv"; then
713 714
  AC_CHECK_HEADER(sys/ipc.h,
    [AC_DEFINE(HAVE_IPC_H, 1,
715
               [Define to 1 if you have the <sys/ipc.h> header file.])],
716 717 718 719 720
    no_sys_ipc=yes)
  AC_CHECK_HEADER(sys/shm.h,
    [AC_DEFINE(HAVE_SHM_H, 1,
               [Define to 1 if you have the <sys/shm.h> header file.])],
    no_sys_shm=yes)
721

722 723 724
  if test "$ac_cv_header_sys_shm_h" = "yes"; then
    AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
    AC_TRY_RUN([
Elliot Lee's avatar
Elliot Lee committed
725 726 727 728 729 730 731
	#include <sys/types.h>
	#include <sys/ipc.h>
	#include <sys/shm.h>
	int main()
	{
	  int id;
	  char *shmaddr;
732
	id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
Elliot Lee's avatar
Elliot Lee committed
733 734 735 736 737 738 739 740 741 742 743 744 745
	if (id == -1)
	  exit (2);
	  shmaddr = shmat (id, 0, 0);
	  shmctl (id, IPC_RMID, 0);
	  if ((char*) shmat (id, 0, 0) == (char*) -1)
	  {
	    shmdt (shmaddr);
	    exit (1);
	  }
	  shmdt (shmaddr);
	  shmdt (shmaddr);
	  exit (0);
	}
746 747 748 749 750 751
      ],
      AC_DEFINE(IPC_RMID_DEFERRED_RELEASE, 1,
	        [Define to 1 if shared memory segments are released deferred.])
        AC_MSG_RESULT(yes),
      AC_MSG_RESULT(no),
      AC_MSG_RESULT(assuming no))
752 753 754 755 756 757

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
758 759 760 761 762 763
  have_shm_open=no

  AC_CHECK_FUNC(shm_open, have_shm_open=yes)

  RT_LIBS=
  if test "$have_shm_open" != "yes"; then
Manish Singh's avatar
Manish Singh committed
764
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
765 766
  fi
  AC_SUBST(RT_LIBS)
767 768 769

  AC_CHECK_HEADER(sys/mman.h,
    [AC_DEFINE(HAVE_MMAN_H, 1,
770
               [Define to 1 if you have the <sys/mman.h> header file.])],
771 772 773
    no_sys_mman=yes)

  if test "$ac_cv_func_mmap" = "yes" &&
774 775
     test "$ac_cv_header_sys_mman_h" = "yes" &&
     test "$have_shm_open" = "yes"; then
776 777 778
    AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
  else
    shmtype=none
779
  fi
Elliot Lee's avatar
Elliot Lee committed
780 781
fi

782 783
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
784

785

786 787 788 789 790 791
########################
# Define a symbol prefix
########################

AC_MSG_CHECKING([whether symbols are prefixed])

792 793
case "$host_os" in
  mingw*)
794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811
    SYMPREFIX='_'
    ;;
  darwin* | rhapsody* | machten*)
    SYMPREFIX='_'
    ;;
  *)
    ;;
esac

if test -n "$SYMPREFIX"; then
  AC_MSG_RESULT([yes, with a $SYMPREFIX])
else
  AC_MSG_RESULT(no)
fi

AC_SUBST(SYMPREFIX)


812 813 814 815
##################################
# Check for regex support in glibc
##################################

816 817 818 819 820 821 822 823 824 825 826 827
AC_MSG_CHECKING(checking for regex in glibc)
AC_TRY_RUN([
#include <features.h>
#include <stdio.h>
#include <regex.h>
int main()
{
#if __GLIBC__ >= 2
  return (0);
#else
  return (1);
#endif
828 829
}], AC_DEFINE(HAVE_GLIBC_REGEX, 1,
              [Define to 1 if glibc has regex support.])
830
    have_glibc_regex=yes
831 832 833
    AC_MSG_RESULT(yes),
    AC_MSG_RESULT(no),
    AC_MSG_RESULT(assuming no))
834
AM_CONDITIONAL(HAVE_GLIBC_REGEX, test x$have_glibc_regex = xyes)
835

836
AC_SUBST(HAVE_GLIBC_REGEX)
837

David Neary's avatar
David Neary committed
838

839 840 841
############################
# Check for select and fdset
############################
Elliot Lee's avatar
Elliot Lee committed
842

843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858
if test x"$os_win32" != xyes; then
  AC_MSG_CHECKING([fd_set and sys/select])
  AC_TRY_COMPILE([#include <sys/types.h>],
	  [fd_set readMask, writeMask;], gimp_ok=yes, gimp_ok=no)
  if test $gimp_ok = no; then
      AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes)
      if test $gimp_ok = yes; then
	  AC_DEFINE(HAVE_SYS_SELECT_H, 1,
		    [Define to 1 if you have the <sys/select.h> header.])
      fi
  fi
  AC_MSG_RESULT($gimp_ok)
  if test $gimp_ok = no; then
      AC_DEFINE(NO_FD_SET, 1,
		[Define to 1 if you don't have the fd_set typedef.])
  fi
Elliot Lee's avatar
Elliot Lee committed
859 860
fi

861 862 863
#############################
# Threads and multi processor 
#############################
864

865
AC_ARG_ENABLE(mp, [  --disable-mp            disable support for multiple processors])
866
if test "x$enable_mp" != "xno"; then
867
  PKG_CHECK_MODULES(GTHREAD, gthread-2.0,
868
    [AC_DEFINE(ENABLE_MP, 1,
869 870
	       [Define to 1 to enable support for multiple processors.])]
  )
Sven Neumann's avatar
Sven Neumann committed
871 872
fi

873
if test "x$GIMP_UNSTABLE" = "xyes"; then
Sven Neumann's avatar
Sven Neumann committed
874 875 876 877
  AC_ARG_ENABLE(threaded-tile-swapper, [  --enable-threaded-tile-swapper  (experimental)])
  if test "x$enable_threaded_tile_swapper" = "xyes"; then
    PKG_CHECK_MODULES(GTHREAD, gthread-2.0,
      [AC_DEFINE(ENABLE_THREADED_TILE_SWAPPER, 1,
878
	       [Define to 1 to enable the experimental threaded tile-swapper.])]
Sven Neumann's avatar
Sven Neumann committed
879 880
    )
  fi
881 882
fi

883 884 885 886

################################
# Some plug-ins are X11 specific
################################
Sven Neumann's avatar
Sven Neumann committed
887 888 889 890

dnl Check if building for GTK+-X11
gdk_target=`$PKG_CONFIG --variable=target gtk+-2.0`
if test "$gdk_target" = x11; then
891 892 893
   dnl screenshot plug-in needs to link to X11 explicitely
   LIBSCREENSHOT="$X_LIBS -lX11"

894 895 896
   dnl doc-shooter is X11 specific
   DOC_SHOOTER=doc-shooter

897
    dnl Test for Xmu
Sven Neumann's avatar
Sven Neumann committed
898
    if test -z "$LIBXMU"; then
899
      gimp_save_CFLAGS="$CFLAGS"
900
      gimp_save_LDFLAGS="$LDFLAGS"
901
      CFLAGS="$CFLAGS $GTK_CFLAGS"
902
      LDFLAGS="$LDFLAGS $X_LIBS"
Sven Neumann's avatar
Sven Neumann committed
903
      AC_CHECK_LIB(Xmu, XmuClientWindow,
904
        [AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
905
          GIMP_REMOTE='gimp-remote-gimp_app_version$(EXEEXT)';
906
	  have_libxmu=yes
907
          LIBXMU="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt",
908
	  [AC_MSG_WARN(*** gimp-remote will not be built (XMU header file not found) ***)],[#include <gdk/gdkx.h>])],
909
	[AC_MSG_WARN(*** gimp-remote will not be built (XMU library not found) ***)], -lXt -lX11)
910
      CFLAGS="$gimp_save_CFLAGS"
911
      LDFLAGS="$gimp_save_LDFLAGS"
912
      LIBSCREENSHOT="$LIBXMU"
Sven Neumann's avatar
Sven Neumann committed
913
    fi
914

915
fi
Sven Neumann's avatar
Sven Neumann committed
916

917
AC_SUBST(LIBXMU)
918
AC_SUBST(LIBSCREENSHOT)
919
AC_SUBST(GIMP_REMOTE)
920
AC_SUBST(DOC_SHOOTER)
921 922 923 924 925 926


###################
# Check for libtiff
###################

Sven Neumann's avatar
Sven Neumann committed
927 928 929 930
AC_ARG_WITH(libtiff,  [  --without-libtiff       build without TIFF support])
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
    AC_CHECK_LIB(tiff, TIFFReadScanline,
      [AC_CHECK_HEADER(tiffio.h,
931
	TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff',
Sven Neumann's avatar
Sven Neumann committed
932 933 934
	[AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
	[AC_CHECK_HEADER(tiffio.h,
935
          TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
936 937 938
	  [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
	[AC_CHECK_LIB(tiff34, TIFFFlushData,
	  [AC_CHECK_HEADER(tiffio.h,
939
            TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff34 -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
940 941 942 943 944 945 946 947 948 949
	    [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
        [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***)], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
  fi

  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
     AC_MSG_ERROR([
*** Checks for TIFF libary failed. You can build without it by passing 
*** --without-libtiff to configure but you won't be able to use TIFFs then.])
  fi

950 951 952 953 954 955 956
AC_SUBST(TIFF)
AC_SUBST(LIBTIFF)


###################
# Check for libjpeg
###################
Sven Neumann's avatar
Sven Neumann committed
957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977

AC_ARG_WITH(libjpeg,  [  --without-libjpeg       build without JPEG support])
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
    AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
      jpeg_ok=yes,
      [jpeg_ok=no
      AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG library not found) ***)
      AC_MSG_WARN(*** XJT plug-in will not be built (JPEG library not found) ***)])
    if test "$jpeg_ok" = yes; then
      AC_MSG_CHECKING([for jpeglib.h])
      AC_TRY_CPP([
#include <stdio.h>
#undef HAVE_STDDEF_H
#undef HAVE_STDLIB_H
#undef PACKAGE
#undef VERSION
#include <jpeglib.h>],
	jpeg_ok=yes,
	jpeg_ok=no)
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
978 979 980 981 982
	AC_CHECK_LIB(jpeg, jpeg_save_markers,
	JPEG='jpeg$(EXEEXT)'; LIBJPEG='-ljpeg',
        [jpeg_ok=no
        AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG library is too old) ***)
        AC_MSG_WARN(*** XJT plug-in will not be built (JPEG library is too old) ***)])
Sven Neumann's avatar
Sven Neumann committed
983 984 985 986 987 988 989 990 991 992 993 994 995
      else
	AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG header file not found) ***)
        AC_MSG_WARN(*** XJT plug-in will not be built (JPEG header file not found) ***)
      fi
    fi
  fi

  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
     AC_MSG_ERROR([
*** Checks for JPEG library failed. You can build without it by passing 
*** --without-libjpeg to configure but you won't be able to use JPEGs then.])
  fi

996 997
AC_SUBST(JPEG)
AC_SUBST(LIBJPEG)
Sven Neumann's avatar
Sven Neumann committed
998

999 1000 1001 1002
## xjt does build, but it is more confusing than useful on Win32,
## as it wants to run tar, mv and bzip2, which seldom are available
AM_CONDITIONAL(BUILD_XJT, test x$jpeg_ok = xyes && test x"$os_win32" = xno)

Sven Neumann's avatar
Sven Neumann committed
1003

1004 1005 1006 1007 1008 1009 1010
################
# Check for libz
################

if test -z "$LIBZ"; then
  AC_CHECK_LIB(z, gzsetparams,
    [AC_CHECK_HEADER(zlib.h,
1011
      PSP='psp$(EXEEXT)'; LIBZ='-lz',
1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023
      [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB header files not found) ***)])],
    [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB library not found) ***)])
fi

AC_SUBST(LIBZ)
AC_SUBST(PSP)


##################
# Check for libpng
##################

Sven Neumann's avatar
Sven Neumann committed
1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038
AC_ARG_WITH(libpng,  [  --without-libpng        build without PNG support])
  if test x$with_libpng != xno && test -z "$LIBPNG" && test -n "$LIBZ"; then
    AC_CHECK_LIB(png, png_read_info,
      [AC_CHECK_HEADER(png.h,
	png_ok=yes,
	png_ok=no)],
      [AC_MSG_WARN(*** PNG plug-in will not be built (PNG library not found) ***)], -lz -lm)
    if test "$png_ok" = yes; then
      AC_MSG_CHECKING([for png_structp in png.h])
      AC_TRY_COMPILE([#include <png.h>],
        [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
        png_ok=yes,
        png_ok=no)
      AC_MSG_RESULT($png_ok)
      if test "$png_ok" = yes; then
1039
        PNG='png$(EXEEXT)'; LIBPNG="-lpng $LIBZ"
Sven Neumann's avatar
Sven Neumann committed
1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053
      else
        AC_MSG_WARN(*** PNG plug-in will not be built (PNG library is too old) ***)
      fi
    else
      AC_MSG_WARN(*** PNG plug-in will not be built (PNG header file not found) ***)
    fi
  fi

  if test x$with_libpng != xno && test -z "$LIBPNG"; then
     AC_MSG_ERROR([
*** Checks for PNG library failed. You can build without it by passing 
*** --without-libpng to configure but you won't be able to use PNGs then.])
  fi

1054 1055
AC_SUBST(PNG)
AC_SUBST(LIBPNG)
Sven Neumann's avatar
Sven Neumann committed
1056 1057


1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068
##################
# Check for libmng
##################

AC_ARG_WITH(libmng,  [  --without-libmng        build without MNG support])
  if test x$with_libmng != xno && test -z "$LIBMNG" &&
     test -n "$LIBPNG" && test -n "$LIBJPEG" && test -n "$LIBZ"; then
    AC_CHECK_LIB(mng, mng_create,
      [AC_CHECK_HEADER(libmng.h, mng_ok=yes)],
      [AC_MSG_WARN(*** MNG plug-in will not be built (MNG library not found) ***)], -lz -lm)
    if test "$mng_ok" = yes; then
1069
      MNG='mng$(EXEEXT)'; LIBMNG="-lmng $LIBJPEG $LIBPNG"
1070 1071 1072 1073 1074 1075 1076 1077 1078
    else
      AC_MSG_WARN(*** MNG plug-in will not be built (MNG header file not found) ***)
    fi
  fi

AC_SUBST(MNG)
AC_SUBST(LIBMNG)


1079 1080 1081 1082 1083 1084 1085 1086 1087
############################################################
# libexif: Library to allow exif tags to be read from, and
# saved to, jpeg files. Currently, this permits exif data to
# avoid destruction, but no data modification is performed.
############################################################

AC_ARG_WITH(libexif,  [  --without-libexif       build without EXIF support])
if test x$with_libexif != xno && test -z "$LIBEXIF" && test -n "$LIBJPEG"; then
  PKG_CHECK_MODULES(EXIF, libexif, 
1088
    AC_DEFINE(HAVE_EXIF, 1, [Define to 1 if libexif is available]),
1089 1090 1091
    AC_MSG_WARN([libexif not found!
EXIF support will not be built into the JPEG plug-in. 
libexif is available from http://www.sourceforge.net/projects/libexif]))
1092 1093 1094 1095 1096 1097 1098 1099
  AC_MSG_CHECKING([if libexif is version 0.6.0 or newer])
  if $PKG_CONFIG --atleast-version=0.6.0 libexif; then
    have_exif_0_6=yes
  else
    have_exif_0_6=no
  fi
  AC_MSG_RESULT($have_exif_0_6)
  if test x$have_exif_0_6 == xyes; then
1100 1101
    AC_DEFINE(HAVE_EXIF_0_6, 1,
              [Define to 1 if libexif is at least version 0.6.0])
1102
  fi
1103 1104
fi

1105 1106
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
1107

1108

1109 1110 1111
#################
# Check for libaa
#################
1112

1113

1114
AC_ARG_WITH(aa,  [  --without-aa            do not build the AA plug-in])
1115
if test x$with_aa != xno && test -z "$LIBAA"; then
1116 1117
  AC_CHECK_LIB(aa, aa_printf,
    [AC_CHECK_HEADER(aalib.h,
1118
      AA='aa$(EXEEXT)'; LIBAA='-laa',
1119 1120 1121
      [AC_MSG_WARN(*** AA plug-in will not be built (AA header file not found) ***)])],
    [AC_MSG_WARN(*** AA plug-in will not be built (AA library not found) ***)])
fi
1122

1123 1124
AC_SUBST(AA)
AC_SUBST(LIBAA)
1125

1126

1127 1128 1129
##################
# Check for libxpm
##################
1130

1131 1132
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
1133 1134 1135 1136
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
if test "$gdk_target" = x11; then
  lib_X11=-lX11
1137
fi
1138 1139 1140
if test -z "$LIBXPM"; then
  AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
    [AC_CHECK_HEADER(X11/xpm.h,
1141
      XPM='xpm$(EXEEXT)'; LIBXPM="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
1142 1143
      [AC_MSG_WARN(*** XPM plug-in will not be built (XPM header file not found) ***)])],
    [AC_MSG_WARN(*** XPM plug-in will not be built (XPM library not found) ***)], $X_PRE_LIBS $lib_X11)
Sven Neumann's avatar
Sven Neumann committed
1144
fi
1145
CFLAGS="$gimp_save_CFLAGS"
1146
LDFLAGS="$gimp_save_LDFLAGS"
1147

1148 1149
AC_SUBST(XPM)
AC_SUBST(LIBXPM)
1150

1151

1152 1153 1154 1155
####################
# Check for gtkhtml2
####################

1156 1157 1158 1159 1160 1161 1162 1163 1164 1165
AC_ARG_WITH(gtkhtml2, [  --without-gtkhtml2      build without gtkhtml2 support])

have_gtkhtml2=no
if test "x$with_gtkhtml2" != xno; then
  PKG_CHECK_MODULES(GTKHTML2, libgtkhtml-2.0 >= gtkhtml2_required_version,
    have_gtkhtml2=yes,
    AC_MSG_WARN([*** Help browser plug-in will not be built (GtkHtml2 not found) ***]))
else
  AC_MSG_WARN([*** Help browser plug-in will not be built (GtkHtml2 support disabled) ***])
fi
1166

1167
AM_CONDITIONAL(BUILD_HELPBROWSER, test x$have_gtkhtml2 = xyes)
1168

1169

1170 1171 1172 1173
###################
# Check for librsvg
###################

1174 1175 1176 1177 1178 1179 1180 1181 1182 1183
AC_ARG_WITH(librsvg,[  --without-librsvg       build without librsvg support])

if test "x$with_librsvg" != xno; then
  PKG_CHECK_MODULES(SVG, librsvg-2.0 >= rsvg_required_version,
    SVG='svg$(EXEEXT)'
    LIBSVG=$SVG_LIBS,
    AC_MSG_WARN([*** SVG import plug-in will not be built (librsvg not found) ***]))
else
  AC_MSG_WARN([*** SVG import plug-in will not be built (librsvg support disabled) ***])
fi
1184

1185 1186 1187
AC_SUBST(SVG)
AC_SUBST(LIBSVG)

Sven Neumann's avatar
Sven Neumann committed
1188 1189 1190 1191

######################
# Check for libpoppler
######################
1192

1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205
AC_ARG_WITH(poppler,[  --without-poppler       build without poppler support])

if test "x$with_poppler" != xno; then
  PKG_CHECK_MODULES(POPPLER,
    poppler-glib >= poppler_required_version gthread-2.0,
    POPPLER='poppler$(EXEEXT)'
    LIBPOPPLER=$POPPLER_LIBS
    AC_DEFINE(HAVE_POPPLER, 1, [Define to 1 if libpoppler is available])
    have_poppler=yes,
    AC_MSG_WARN([*** PDF will be imported by the postscript plugin (libpoppler not found) ***]))
else
  AC_MSG_WARN([*** PDF will be imported by the postscript plugin (libpoppler support disabled)])
fi
1206 1207 1208 1209

AC_SUBST(POPPLER)
AC_SUBST(LIBPOPPLER)

1210 1211 1212 1213 1214
if test "x$have_poppler" = xyes; then
  if $PKG_CONFIG --atleast-version=0.4 poppler-glib; then
    AC_DEFINE(HAVE_POPPLER_0_4, 1,
              [Define to 1 if libpoppler >= 0.4 is available])
  fi
1215

1216 1217 1218 1219
  if $PKG_CONFIG --atleast-version=0.4.1 poppler-glib; then
    AC_DEFINE(HAVE_POPPLER_0_4_1, 1,
              [Define to 1 if libpoppler >= 0.4.1 is available])
  fi
1220 1221
fi

1222

1223 1224 1225
###################################################################
# Check for gnome-vfs (and optionally libgnomeui and gnome-keyring)
###################################################################
1226

1227 1228 1229 1230 1231 1232 1233 1234 1235
uri_modules="gnome-vfs-2.0 >= gnome_vfs_required_version"

if $PKG_CONFIG --atleast-version=gnomeui_required_version libgnomeui-2.0; then
  have_gnomeui=yes
  uri_modules="$uri_modules libgnomeui-2.0"
else
  AC_MSG_WARN([*** URI plug-in will be built without libgnomeui support (libgnomeui-2.0 not found) ***])
fi

1236 1237 1238 1239 1240 1241 1242
if $PKG_CONFIG --atleast-version=gnome_keyring_required_version gnome-keyring-1; then
  have_gnome_keyring=yes
  uri_modules="$uri_modules gnome-keyring-1"
else
  AC_MSG_WARN([*** URI plug-in will be built without gnome-keyring support (gnome-keyring-1 not found) ***])
fi

1243
PKG_CHECK_MODULES(URI, $uri_modules,
1244 1245
  have_gnomevfs=yes,
  AC_MSG_WARN([*** URI plug-in will be built without gnome-vfs support (gnome-vfs-2.0 not found) ***]))
1246

1247 1248
AM_CONDITIONAL(HAVE_GNOMEVFS, test x$have_gnomevfs = xyes)

1249
if test "x$have_gnomeui" = xyes; then
1250
  AC_DEFINE(HAVE_GNOMEUI, 1, [Define to 1 if libgnomeui is available])
1251 1252
fi

1253 1254 1255 1256
if test "x$have_gnome_keyring" = xyes; then
  AC_DEFINE(HAVE_GNOME_KEYRING, 1, [Define to 1 if gnome-keyring is available])
fi

1257

1258 1259 1260 1261 1262 1263 1264 1265 1266
#######################
# Check for gnome-print
#######################

AC_ARG_WITH(gnomeprint,[  --without-gnomeprint    disable build of gnomeprint plug-in])

if test "x$with_gnomeprint" != xno; then
  PKG_CHECK_MODULES(GNOMEPRINT,
    libgnomeprintui-2.2 >= gnome_print_required_version,
1267 1268
    have_gnomeprint=yes,
    AC_MSG_WARN([libgnomeprintui not found!]))
1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282
fi

AM_CONDITIONAL(HAVE_GNOMEPRINT, test x$have_gnomeprint = xyes)

if test "x$have_gnomeprint" = xyes; then
  GNOMEPRINT='gnomeprint$(EXEEXT)'
  LIBGNOMEPRINT=$GNOMEPRINT_LIBS
  AC_DEFINE(HAVE_GNOME_PRINT, 1, [Define to 1 if libgnomeprintui is available])
fi

AC_SUBST(GNOMEPRINT)
AC_SUBST(LIBGNOMEPRINT)


1283 1284 1285
######################
# Check for gimp-print
######################
1286

1287
AC_ARG_WITH(gimpprint, [  --without-gimpprint     disable build of gimpprint plug-in])
1288

1289
if test "x$with_gimpprint" != xno; then
1290 1291 1292 1293
  AM_PATH_GIMPPRINT(gimpprint_required_version,
    [print_version=`$GIMPPRINT_CONFIG --version`
      if expr $print_version \>= gimpprint_toonew_version >/dev/null; then
        AC_MSG_WARN([
1294 1295
*** libgimpprint version $print_version is too new.
*** It is likely an unstable development version.
1296
*** You need a version before gimpprint_toonew_version.])
1297
      else
1298
        have_gimp_print=yes
1299 1300 1301 1302 1303 1304
dnl sanity check to avoid bug #125283
        if expr $print_version \< gimpprint_suggested_version >/dev/null; then
          AC_MSG_WARN([
*** libgimpprint version $print_version causes problems under certain locales.
*** We strongly suggest you upgrade to version gimpprint_suggested_version.])
        fi
1305
      fi
1306 1307
    ])
fi
1308

1309 1310
AC_SUBST(PRINT_LIBS)
AC_SUBST(PRINT_CFLAGS)
1311
AM_CONDITIONAL(BUILD_PRINT, test x$have_gimp_print = xyes)
1312 1313


1314 1315 1316 1317 1318 1319
###################
# Check for libwmf2
###################

AC_PATH_PROG(WMF_CONFIG, libwmf-config, no)
if test "x$WMF_CONFIG" != "xno" ; then
1320
  AC_MSG_CHECKING(for libwmf >= wmf_required_version)
1321
  wmf_version=`$WMF_CONFIG --version`
1322
  if expr $wmf_version \>= wmf_required_version >/dev/null; then
1323
    AC_MSG_RESULT([yes (version $wmf_version)])
1324
    WMF='wmf$(EXEEXT)'
1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336
    LIBWMF=`$WMF_CONFIG --libs`
    WMF_CFLAGS=`$WMF_CONFIG --cflags`
  else
    AC_MSG_WARN([*** WMF plug-in will not be built (libwmf is too old)])
  fi
else
  AC_MSG_WARN([*** WMF plug-in will not be built (libwmf not found) ***])
fi
AC_SUBST(LIBWMF)
AC_SUBST(WMF_CFLAGS)


1337 1338 1339 1340
################
# Check for lcms
################

1341
AC_ARG_WITH(lcms,[  --without-lcms          build without lcms support])
1342

1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358
have_lcms=no
if test "x$with_lcms" != xno; then
  AC_CHECK_LIB(lcms, cmsCreate_sRGBProfile, [
    AC_CHECK_HEADER(lcms.h,
      have_lcms=yes, [
      AC_CHECK_HEADER(lcms/lcms.h,
        have_lcms=yes
        AC_DEFINE(HAVE_LCMS_LCMS_H, 1,
          [Define to 1 if the lcms header must be included as lcms/lcms.h]))
      ])
  ])
  if test $have_lcms = yes; then
    LCMS_LIBS="-llcms"
  else
    AC_MSG_WARN([*** color proof module will not be built (lcms not found or unusable) ***])
  fi
1359
else
1360
  AC_MSG_WARN([*** color proof module will not be built (lcms support disabled) ***])
1361 1362
fi

1363 1364 1365 1366
AC_SUBST(LCMS_LIBS)
AM_CONDITIONAL(HAVE_LCMS, test $have_lcms = yes)


1367 1368 1369 1370 1371 1372 1373 1374 1375
################
# Check for alsa
################

AM_PATH_ALSA(alsa_required_version,
             AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if alsa is available]),
             AC_MSG_WARN([*** midi input controller will be built without alsa support (alsa not found or unuseable) ***]))


Sven Neumann's avatar
Sven Neumann committed
1376 1377 1378 1379
#######################
# Check for linux input
#######################

1380 1381 1382
AC_ARG_WITH(linux-input,
              [  --without-linux-input   don't build linux input event controller module])

Sven Neumann's avatar
Sven Neumann committed
1383
have_linux_input=no
1384 1385 1386
if test "x$with_linux_input" != "xno"; then
  AC_CHECK_HEADER(linux/input.h, have_linux_input=yes)
fi
Sven Neumann's avatar
Sven Neumann committed
1387 1388 1389 1390

AM_CONDITIONAL(HAVE_LINUX_INPUT, test $have_linux_input = yes)


1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410
############################################################
# GIF compression: Allow builder to specify at compile time
# which compression style she wants to use for GIFs.
# LZW: Unisys patented Lempel-Ziff encoding.
# RLE: Runlength encoding (produces files about twice as big
#			   as the LZW compressed equivalent).
# None: Raw data.
############################################################

AC_ARG_WITH(gif-compression, 
            [  --with-gif-compression=lzw|rle|none     GIF compression style (default=lzw)])

case x"$with_gif_compression" in
  xnone)
    AC_DEFINE(GIF_UN, 1, [Define to 1 for no GIF compression]) ;;
  xrle)
    AC_DEFINE(GIF_RLE, 1, [Define to 1 for RLE GIF compression]) ;;
esac


1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427
####################
# Check for sendmail
####################

AC_ARG_WITH(sendmail,[  --with-sendmail=DIR     set sendmail command location])

if test "x$with_sendmail" != "x"; then
  sendmail_path=$with_sendmail
else
  sendmail_path=$PATH:/usr/sbin:/usr/lib
fi

AC_PATH_PROG(SENDMAIL, sendmail, , $sendmail_path)
if test "x$SENDMAIL" != "x"; then
  AC_DEFINE_UNQUOTED(SENDMAIL, "$SENDMAIL",
	             [The MTA used by the mail plug-in.])
fi
1428 1429


1430 1431 1432 1433
################
# Check for perl
################

1434 1435 1436
AC_PATH_PROGS(PERL,perl5 perl perl5.005 perl5.004,perl)


1437 1438 1439
AC_ARG_WITH(pdbgen,
            [  --with-pdbgen           use 'pdbgen' code generation tool],,
  with_pdbgen=$enable_maintainer_mode)
1440 1441 1442 1443

AM_CONDITIONAL(WITH_PDBGEN, test x$with_pdbgen = xyes)


1444 1445 1446 1447
##################
# Check for python
##################

1448
dnl Pygimp configure stuff ...
Manish Singh's avatar
Manish Singh committed
1449
AC_ARG_ENABLE(python,
Manish Singh's avatar
Manish Singh committed
1450 1451
  AC_HELP_STRING([--disable-python],
                 [do not build the python extension]))
Manish Singh's avatar
Manish Singh committed
1452

1453 1454 1455 1456 1457 1458
m4_define([pycheck_error], [
*** Could not find $1.
*** Please install $2, or skip building the python scripting extension by
*** passing --disable-python to configure (but then you will not be able
*** to use scripts for GIMP that are written in Python).])

Manish Singh's avatar
Manish Singh committed
1459 1460
if test "x$enable_python" != xno; then
  dnl check for Python
1461 1462 1463 1464
  AM_PATH_PYTHON(2.2.1,,
    [AC_MSG_ERROR([pycheck_error([Python 2.2.1 or better], [it])])])
  AM_CHECK_PYTHON_HEADERS(,
    [AC_MSG_ERROR([pycheck_error([Python headers], [them])])])
Manish Singh's avatar
Manish Singh committed
1465

1466 1467 1468 1469 1470 1471
  dnl Win32 needs all symbols resolved for linking, even for DLLs
  dnl Assume the link library is in $exec_prefix/libs
  dnl This might be able to be figured out from distutils, but it's
  dnl not documented so we won't rely on internal implementation
  PYLINK_LIBS=
  if test "x$platform_win32" = "xyes"; then
1472
    PYBIN_PATH="$py_exec_prefix\pythonw.exe"
1473 1474 1475
    PYTHON_INCLUDES=`$echo "$PYTHON_INCLUDES" | sed -e 's/\\\\/\\//g'`
    py_exec_prefix=`echo "$py_exec_prefix" | sed -e 's/\\\\/\\//g'`
    pylibversion=`echo $PYTHON_VERSION | sed -e 's/\\.//'`
1476
    PYLINK_LIBS="-L${py_exec_prefix}/libs -lpython${pylibversion}"
1477 1478
  else
    PYBIN_PATH="$PYTHON"
1479 1480
  fi
  AC_SUBST(PYLINK_LIBS)
1481
  AC_SUBST(PYBIN_PATH)
1482

Manish Singh's avatar
Manish Singh committed
1483
  dnl check for PyGTK
1484 1485
  PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version,,
    [AC_MSG_ERROR([pycheck_error([PyGTK], [it])])])
1486

1487 1488
  AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
  if test "x$PYGTK_CODEGEN" = xno; then
1489
    AC_MSG_ERROR([pycheck_error([pygtk-codegen-2.0 script], [it])])
1490 1491 1492 1493 1494 1495 1496
  fi

  AC_MSG_CHECKING(for pygtk defs)
  PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
  AC_SUBST(PYGTK_DEFSDIR)
  AC_MSG_RESULT($PYGTK_DEFSDIR)

1497
  GIMP_DETECT_CFLAGS(PYGIMP_EXTRA_CFLAGS, '-fno-strict-aliasing')
1498
  AC_SUBST(PYGIMP_EXTRA_CFLAGS)
Manish Singh's avatar
Manish Singh committed
1499 1500 1501
fi
AM_CONDITIONAL(BUILD_PYTHON, test "x$enable_python" != xno)

1502

1503 1504 1505 1506 1507
###########################################################
# Some plug-ins don't build on Win32, others are Win32-only
###########################################################

if test x"$os_win32" = xyes; then
1508
  WINPRINT='winprint$(EXEEXT)'
1509
else
1510 1511
  MAIL='mail$(EXEEXT)'
  SCREENSHOT='screenshot$(EXEEXT)'
1512 1513 1514 1515 1516
fi

AC_SUBST(MAIL)
AC_SUBST(SCREENSHOT)
AC_SUBST(WINPRINT)
1517
AC_SUBST(WMF)
1518

1519

1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534
############################################################
# Check for Mac OS X TWAIN framework (can't build on Darwin)
############################################################

AC_MSG_CHECKING([checking for Mac OS X TWAIN support])
AC_TRY_CPP([
#include <Carbon/Carbon.h>
#include <TWAIN/TWAIN.h>
],
twain_ok=yes,
twain_ok=no)
AC_MSG_RESULT($twain_ok)
AM_CONDITIONAL(HAVE_MAC_TWAIN, test x$twain_ok = xyes)


1535 1536 1537
##########################################################
# Determine where to install the desktop & mime info files
##########################################################
1538

1539
AC_ARG_WITH(desktop-dir, [  --with-desktop-dir=PATH where to install desktop files (default=PREFIX/share)])
1540

1541 1542
if test "x$with_desktop_dir" != x; then
  DESKTOP_DATADIR=$with_desktop_dir
1543
else
1544
  DESKTOP_DATADIR="$datadir"
1545 1546
fi

1547
AM_CONDITIONAL(DESKTOP_DATADIR, test "x$with_desktop_dir" != xno)
1548
AC_SUBST(DESKTOP_DATADIR)
1549 1550


1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561
#####################
# Check for XML tools
#####################

AC_PATH_PROG(XMLLINT, xmllint, no)
AM_CONDITIONAL(HAVE_XMLLINT, test "x$XMLLINT" != "xno")

AC_PATH_PROG(XSLTPROC, xsltproc, no)
AM_CONDITIONAL(HAVE_XSLTPROC, test "x$XSLTPROC" != "xno")


1562 1563 1564
######################################
# Checks for gtk-doc and docbook-tools
######################################
1565

1566
GTK_DOC_CHECK([1.0])
1567

1568 1569 1570
dnl NOTE: We need to use a separate automake conditional for this
dnl       to make this work with the tarballs.
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1571

1572

1573 1574 1575
#########################################
# Allow to configure the gimp environment
#########################################
1576

1577
AC_ARG_ENABLE(default-binary, [  --enable-default-binary install this as the default gimp binary (default=gimp_stable)], , enable_default_binary=gimp_stable)
1578

1579
AM_CONDITIONAL(DEFAULT_BINARY, test x$enable_default_binary = xyes)
1580

1581

1582
AC_ARG_ENABLE(gimp-console, [  --enable-gimp-console   build a console-only binary which does not link GTK+], , enable_gimp_console=yes)
1583

1584
AM_CONDITIONAL(ENABLE_GIMP_CONSOLE, test x$enable_gimp_console != xno)
1585 1586


Manish Singh's avatar
Manish Singh committed
1587
dnl Possibly change default gimpdir from .gimp-major.minor
1588 1589
gimpdir=.gimp-gimp_user_version
AC_ARG_WITH(gimpdir, [  --with-gimpdir=DIR      change default gimpdir from .gimp-gimp_user_version to DIR],
1590 1591 1592
if eval "test x$with_gimpdir != x"; then
  if eval "test x$with_gimpdir != xyes"; then
    gimpdir=$with_gimpdir
1593 1594
  fi
fi)
1595

1596 1597 1598
gimpdatadir="$datadir/$PACKAGE/gimp_data_version"
gimpplugindir="$libdir/$PACKAGE/gimp_plugin_version"
gimpsysconfdir="$sysconfdir/$PACKAGE/gimp_sysconf_version"