configure.in 48.5 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
6
7
# Making releases:
#   GIMP_MICRO_VERSION += 1;
#   GIMP_INTERFACE_AGE += 1;
8

9
m4_define([gimp_major_version], [2])
Sven Neumann's avatar
Sven Neumann committed
10
11
m4_define([gimp_minor_version], [3])
m4_define([gimp_micro_version], [0])
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
41

m4_define([gimp_full_name], [The GIMP])

42
# required versions of other packages
Sven Neumann's avatar
Sven Neumann committed
43
m4_define([glib_required_version], [2.6.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])
William Skaggs's avatar
William Skaggs committed
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
58
59
60
61
62
63
64
65

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
66

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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
82
83
GIMP_UNSTABLE=gimp_unstable
GIMP_FULL_NAME="gimp_full_name"
84
85
86
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)
AC_SUBST(GIMP_MICRO_VERSION)
87
88
89
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
AC_SUBST(GIMP_API_VERSION)
90
AC_SUBST(GIMP_VERSION)
91
92
93
94
95
96
97
98
99
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)
100
101
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
102

103

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

113

114
115
dnl Choose a desktop icon
if test "x$GIMP_UNSTABLE" = "xyes"; then
Sven Neumann's avatar
Sven Neumann committed
116
  GIMP_DESKTOP_ICON="wilber-devel-icon.png"
117
else
Sven Neumann's avatar
Sven Neumann committed
118
  GIMP_DESKTOP_ICON="wilber-icon.png"
119
120
121
122
123
fi

AC_SUBST(GIMP_DESKTOP_ICON)


124
# libtool versioning
125
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
126
127
128
129
130
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)
131
132
AC_SUBST(LT_CURRENT_MINUS_AGE)

133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
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)

156
157
158
159
GETTEXT_PACKAGE=gimp20
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
160

Manish Singh's avatar
Manish Singh committed
161

162
163
164
165
166
dnl Initialize libtool
AC_PROG_CC
AM_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
Elliot Lee's avatar
Elliot Lee committed
167

168
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
169

170
171
172
173
dnl Initialize maintainer mode
AM_MAINTAINER_MODE


174
175
176
177
178
179
180
181
182
183
184
185
186
187
###########################
# 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
Manish Singh's avatar
Manish Singh committed
188
  i*86-*-*)
189
190
191
    have_x86=yes
    AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
    ;;
Manish Singh's avatar
Manish Singh committed
192
193
194
195
196
  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
197
  ppc-*-* | powerpc-*)
198
199
200
    have_ppc=yes
    AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
    ;;
Manish Singh's avatar
Manish Singh committed
201
202
203
204
205
  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.])
    ;;
206
207
208
209
210
  *)
    ;;
esac


211
212
213
#################
# Check for Win32
#################
214

215
AC_MSG_CHECKING([for some Win32 platform])
216
217
case "$target_or_host" in
  *-*-mingw* | *-*-cygwin*)
218
219
220
221
222
223
224
225
226
227
    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])
228
case "$target_or_host" in
229
230
231
232
233
234
235
236
237
238
239
240
  *-*-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")
241
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
242
243
244

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Manish Singh's avatar
Manish Singh committed
245
  AC_CHECK_TOOL(WINDRES, windres, :)
246
247
else
  WINDRES=":"
248
fi
Manish Singh's avatar
Manish Singh committed
249

250
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
251
AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
Manish Singh's avatar
Manish Singh committed
252
253

AC_SUBST(WINDRES)
254
255
256
257
258

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

259
260
261
262
263
264
dnl Checks for programs.
AC_ISC_POSIX
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

265
266
dnl Large file support for the swap file
AC_SYS_LARGEFILE
267

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

275
if test -n "$DEBUGFLAG"; then
276
  AC_MSG_RESULT([yes])
277
  CFLAGS="$DEBUGFLAG $CFLAGS"
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
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])
294
fi
295

296
AC_ARG_ENABLE(ansi,
297
              [  --enable-ansi           turn on strict ansi (default=no)],,
298
              enable_ansi=no)
299

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

307
308
309
310
311
  if test "x$enable_ansi" = "xyes"; then
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac
312

313
314
315
316
    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
317
318
  fi
fi
319
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
320

321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
# 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])
Tor Lillqvist's avatar
Tor Lillqvist committed
348
      AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
349
350
351
352
353
354
355
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
  fi
fi

356
357
358
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

359

360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
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)


######################
# Internationalisation
######################
380

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

386
AC_PROG_INTLTOOL
387
AM_GLIB_GNU_GETTEXT
388

389

390
391
392
###############################
# Checks for required libraries
###############################
393

394
AM_PATH_GLIB_2_0(glib_required_version, :,
Sven Neumann's avatar
Sven Neumann committed
395
396
  AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
  gobject)
Sven Neumann's avatar
Sven Neumann committed
397

398
PKG_CHECK_MODULES(GMODULE, gmodule-2.0 gobject-2.0)
399

400
401
402
AC_MSG_CHECKING([if GLib is version 2.7.0 or newer])
if $PKG_CONFIG --atleast-version=2.7.0 glib-2.0; then
  have_glib_2_7=yes
403
else
404
  have_glib_2_7=no
405
fi
406
AC_MSG_RESULT($have_glib_2_7)
407

408
409
410
411
412
413
414
415
416
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

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

420
421
422
AC_MSG_CHECKING([if GTK+ is version 2.7.0 or newer])
if $PKG_CONFIG --atleast-version=2.7.0 gtk+-2.0; then
  have_gtk_2_7=yes
423
else
424
  have_gtk_2_7=no
425
fi
426
AC_MSG_RESULT($have_gtk_2_7)
427

428
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version)
429

430
431
432
433
434
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

435
436
PKG_CHECK_MODULES(LIBART, libart-2.0)

437
438
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

439
PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= pangoft2_required_version, :,
440
441
442
  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.]))
443

444
445
446
AC_MSG_CHECKING([if Pango is version 1.9.0 or newer])
if $PKG_CONFIG --atleast-version=1.9.0 pango; then
  have_pango_1_9=yes
447
else
448
  have_pango_1_9=no
449
fi
450
AC_MSG_RESULT($have_pango_1_9)
451

452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
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
Manish Singh's avatar
Manish Singh committed
476

477
478
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
479
  AC_MSG_CHECKING([for freetype libraries])
480
481
482
483
484
485
  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
  AC_MSG_RESULT($FREETYPE_LIBS)
fi
AC_SUBST(FREETYPE_LIBS)


486
487
488
##########################################
# Check for some special functions we need
##########################################
Elliot Lee's avatar
Elliot Lee committed
489

David Neary's avatar
ted    
David Neary committed
490
491
AC_CHECK_HEADERS(math.h ieeefp.h)

Manish Singh's avatar
Manish Singh committed
492
493
494
495
496
497
498
499
500
501
502
503
504
505
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
506
507
508
509
    AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)]),
    AC_MSG_RESULT),
  AC_MSG_RESULT())

510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
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)

525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
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.)])))

540
541
542
543
544
545
546
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)])])


547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
######################################################
# 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)


563
564
565
########################
# Check for MMX assembly
########################
Manish Singh's avatar
Manish Singh committed
566

567
568
569
570
571
572
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)],,
573
  enable_sse=$enable_mmx)
574
575
576

if test "x$enable_mmx" = xyes; then

Sven Neumann's avatar
Sven Neumann committed
577
  AC_MSG_CHECKING(whether we can compile MMX code)
578

579
580
  AC_COMPILE_IFELSE([asm ("movq 0, %mm0");],

581
582
583
    AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
    AC_MSG_RESULT(yes)

584
585
586
587
    if test "x$enable_sse" = xyes; then

      AC_MSG_CHECKING(whether we can compile SSE code)

588
      AC_COMPILE_IFELSE([asm ("movntps %xmm0, 0");],
589
590
        AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
        AC_MSG_RESULT(yes)
591
      ,
592
593
594
        enable_sse=no
        AC_MSG_RESULT(no)
        AC_MSG_WARN([The assembler does not support the SSE command set.])
595
      )
596

597
    fi
598
  ,
599
600
    enable_mmx=no
    AC_MSG_RESULT(no)
601
    AC_MSG_WARN([The assembler does not support the MMX command set.])
602
  )
603

604
fi
605

606
607

############################
608
# Check for AltiVec assembly
609
610
611
############################

AC_ARG_ENABLE(altivec,
612
  [  --enable-altivec        enable AltiVec support (default=auto)],,
613
614
615
  enable_altivec=$have_ppc)

if test "x$enable_altivec" = xyes; then
Manish Singh's avatar
Manish Singh committed
616
617

  altivec_flag= 
618
  for flag in '-faltivec' '-maltivec -mabi=altivec'; do
Manish Singh's avatar
Manish Singh committed
619
    if test -z "$altivec_flag"; then
620
621
622
623
624
625
626
      altivec_save_CFLAGS="$CFLAGS"
      CFLAGS="$altivec_save_CFLAGS $flag"
      AC_MSG_CHECKING([whether [$]CC understands [$]flag])
      AC_TRY_COMPILE([], [], [altivec_flag_works=yes], [altivec_flag_works=no])
      AC_MSG_RESULT($altivec_flag_works)
      CFLAGS="$altivec_save_CFLAGS"
      if test "x$altivec_flag_works" = "xyes"; then
Manish Singh's avatar
Manish Singh committed
627
        altivec_flag="$flag"
628
629
630
      fi
    fi
  done
Manish Singh's avatar
Manish Singh committed
631
632
633
634
635
636
637
638
639
640
641
642
643

  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
644
  AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
645

646
  AC_MSG_CHECKING(whether we can compile AltiVec code)
647

Manish Singh's avatar
Manish Singh committed
648
  can_use_altivec=no
649
  if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
650
    AC_MSG_RESULT(no)
Manish Singh's avatar
Manish Singh committed
651
    AC_MSG_WARN([The compiler does not support the AltiVec command set.])
652
653
654
655
656
657
658
659
660
661
662
663
664
  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)
665

666
667
668
669
670
671
672
    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
Manish Singh's avatar
Manish Singh committed
673
674

  enable_altivec="$can_use_altivec"
675
fi
676

677

678
679
680
###################################
# Checks for shared memory handling
###################################
Sven Neumann's avatar
Sven Neumann committed
681

682
dnl MacOS X has broken SysV shm
683
684
case "$target_or_host" in
  *-*-darwin* | *-*-rhapsody* | *-*-machten*)
685
    shmdefault=posix
686
687
688
689
690
691
692
    ;;
  *)
    shmdefault=sysv
    ;;
esac

shmtype=auto
693
AC_ARG_WITH(shm, [  --with-shm=none|sysv|posix|auto    shared memory transport type (default=auto)], shmtype=$with_shm)
694
695

case $shmtype in
696
  none|sysv|posix) ;;
697
  auto) shmtype=$shmdefault ;;
698
  *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
699
700
esac

701
702
703
704

if test "x$platform_win32" = "xyes"; then
  shmtype=win32
elif test "x$shmtype" = "xsysv"; then
705
706
  AC_CHECK_HEADER(sys/ipc.h,
    [AC_DEFINE(HAVE_IPC_H, 1,
707
               [Define to 1 if you have the <sys/ipc.h> header file.])],
708
709
710
711
712
    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)
713

714
715
716
  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
717
718
719
720
721
722
723
	#include <sys/types.h>
	#include <sys/ipc.h>
	#include <sys/shm.h>
	int main()
	{
	  int id;
	  char *shmaddr;
724
	id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
Elliot Lee's avatar
Elliot Lee committed
725
726
727
728
729
730
731
732
733
734
735
736
737
	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);
	}
738
739
740
741
742
743
      ],
      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))
744
745
746
747
748
749

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
750
751
752
753
754
755
  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
756
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
757
758
  fi
  AC_SUBST(RT_LIBS)
759
760
761

  AC_CHECK_HEADER(sys/mman.h,
    [AC_DEFINE(HAVE_MMAN_H, 1,
762
               [Define to 1 if you have the <sys/mman.h> header file.])],
763
764
765
    no_sys_mman=yes)

  if test "$ac_cv_func_mmap" = "yes" &&
766
767
     test "$ac_cv_header_sys_mman_h" = "yes" &&
     test "$have_shm_open" = "yes"; then
768
769
770
    AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
  else
    shmtype=none
771
  fi
Elliot Lee's avatar
Elliot Lee committed
772
773
fi

774
775
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
776

777

778
779
780
781
782
783
########################
# Define a symbol prefix
########################

AC_MSG_CHECKING([whether symbols are prefixed])

784
785
case "$host_os" in
  mingw*)
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
    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)


804
805
806
807
##################################
# Check for regex support in glibc
##################################

808
809
810
811
812
813
814
815
816
817
818
819
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
820
821
}], AC_DEFINE(HAVE_GLIBC_REGEX, 1,
              [Define to 1 if glibc has regex support.])
822
    have_glibc_regex=yes
823
824
825
    AC_MSG_RESULT(yes),
    AC_MSG_RESULT(no),
    AC_MSG_RESULT(assuming no))
826
AM_CONDITIONAL(HAVE_GLIBC_REGEX, test x$have_glibc_regex = xyes)
827

828
AC_SUBST(HAVE_GLIBC_REGEX)
Manish Singh's avatar
Manish Singh committed
829

David Neary's avatar
ted    
David Neary committed
830

831
832
833
############################
# Check for select and fdset
############################
Elliot Lee's avatar
Elliot Lee committed
834
835
836
837
838

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
Sven Neumann's avatar
Sven Neumann committed
839
    AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes)
Elliot Lee's avatar
Elliot Lee committed
840
    if test $gimp_ok = yes; then
841
842
        AC_DEFINE(HAVE_SYS_SELECT_H, 1,
                  [Define to 1 if you have the <sys/select.h> header.])
Elliot Lee's avatar
Elliot Lee committed
843
844
845
846
    fi
fi
AC_MSG_RESULT($gimp_ok)
if test $gimp_ok = no; then
847
848
    AC_DEFINE(NO_FD_SET, 1,
              [Define to 1 if you don't have the fd_set function.])
Elliot Lee's avatar
Elliot Lee committed
849
850
fi

851
852
853
854

#############################
# Threads and multi processor 
#############################
855

856
AC_ARG_ENABLE(mp, [  --disable-mp            disable support for multiple processors])
857
if test "x$enable_mp" != "xno"; then
858
  PKG_CHECK_MODULES(GTHREAD, gthread-2.0,
859
    [AC_DEFINE(ENABLE_MP, 1,
860
861
	       [Define to 1 to enable support for multiple processors.])]
  )
Sven Neumann's avatar
Sven Neumann committed
862
863
fi

864
if test "x$GIMP_UNSTABLE" = "xyes"; then
Sven Neumann's avatar
Sven Neumann committed
865
866
867
868
  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,
869
	       [Define to 1 to enable the experimental threaded tile-swapper.])]
Sven Neumann's avatar
Sven Neumann committed
870
871
    )
  fi
872
873
fi

874
875
876
877

################################
# Some plug-ins are X11 specific
################################
Sven Neumann's avatar
Sven Neumann committed
878
879
880
881

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

885
    dnl Test for Xmu
Sven Neumann's avatar
Sven Neumann committed
886
    if test -z "$LIBXMU"; then
887
      gimp_save_CFLAGS="$CFLAGS"
888
      gimp_save_LDFLAGS="$LDFLAGS"
889
      CFLAGS="$CFLAGS $GTK_CFLAGS"
890
      LDFLAGS="$LDFLAGS $X_LIBS"
Sven Neumann's avatar
Sven Neumann committed
891
      AC_CHECK_LIB(Xmu, XmuClientWindow,
892
        [AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
893
          GIMP_REMOTE='gimp-remote-gimp_app_version$(EXEEXT)';
894
	  have_libxmu=yes
895
          LIBXMU="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt",
896
	  [AC_MSG_WARN(*** gimp-remote will not be built (XMU header file not found) ***)],[#include <gdk/gdkx.h>])],
897
	[AC_MSG_WARN(*** gimp-remote will not be built (XMU library not found) ***)], -lXt -lX11)
898
      CFLAGS="$gimp_save_CFLAGS"
899
      LDFLAGS="$gimp_save_LDFLAGS"
900
      LIBSCREENSHOT="$LIBXMU"
Sven Neumann's avatar
Sven Neumann committed
901
    fi
902

903
fi
Sven Neumann's avatar
Sven Neumann committed
904

905
AC_SUBST(LIBXMU)
906
AC_SUBST(LIBSCREENSHOT)
907
908
909
910
911
912
913
AC_SUBST(GIMP_REMOTE)


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

Sven Neumann's avatar
Sven Neumann committed
914
915
916
917
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,
918
	TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff',
Sven Neumann's avatar
Sven Neumann committed
919
920
921
	[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,
922
          TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
923
924
925
	  [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,
926
            TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff34 -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
927
928
929
930
931
932
933
934
935
936
	    [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

937
938
939
940
941
942
943
AC_SUBST(TIFF)
AC_SUBST(LIBTIFF)


###################
# Check for libjpeg
###################
Sven Neumann's avatar
Sven Neumann committed
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964

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
965
	JPEG='jpeg$(EXEEXT)'; LIBJPEG='-ljpeg'
Sven Neumann's avatar
Sven Neumann committed
966
	AC_CHECK_LIB(jpeg, jpeg_simple_progression,	
967
968
	  AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
                    [Define to 1 if jpeglib supports progressive JPEG.]),
Sven Neumann's avatar
Sven Neumann committed
969
970
971
972
973
974
975
976
977
978
979
980
981
982
	  AC_MSG_WARN(JPEG library does not support progressive saving.))
      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

983
984
AC_SUBST(JPEG)
AC_SUBST(LIBJPEG)
Sven Neumann's avatar
Sven Neumann committed
985

986
987
988
989
## 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
990

991
992
993
994
995
996
997
################
# Check for libz
################

if test -z "$LIBZ"; then
  AC_CHECK_LIB(z, gzsetparams,
    [AC_CHECK_HEADER(zlib.h,
998
      PSP='psp$(EXEEXT)'; LIBZ='-lz',
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
      [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
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
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
1026
        PNG='png$(EXEEXT)'; LIBPNG="-lpng $LIBZ"
Sven Neumann's avatar
Sven Neumann committed
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
      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

1041
1042
AC_SUBST(PNG)
AC_SUBST(LIBPNG)
Sven Neumann's avatar
Sven Neumann committed
1043
1044


1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
##################
# 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
1056
      MNG='mng$(EXEEXT)'; LIBMNG="-lmng $LIBJPEG $LIBPNG"
1057
1058
1059
1060
1061
1062
1063
1064
1065
    else
      AC_MSG_WARN(*** MNG plug-in will not be built (MNG header file not found) ***)
    fi
  fi

AC_SUBST(MNG)
AC_SUBST(LIBMNG)


1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
############################################################
# 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, 
    AC_DEFINE(HAVE_EXIF, 1, "Define to 1 if libexif is available"),
    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]))
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
  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
    AC_DEFINE(HAVE_EXIF_0_6, 1, "Define to 1 if libexif is at least version 0.6.0")
  fi
1089
1090
fi

1091
1092
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
1093

1094

1095
1096
1097
#################
# Check for libaa
#################
1098

1099

1100
AC_ARG_WITH(aa,  [  --without-aa            do not build the AA plug-in])
1101
if test x$with_aa != xno && test -z "$LIBAA"; then
1102
1103
  AC_CHECK_LIB(aa, aa_printf,
    [AC_CHECK_HEADER(aalib.h,
1104
      AA='aa$(EXEEXT)'; LIBAA='-laa',
1105
1106
1107
      [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
1108

1109
1110
AC_SUBST(AA)
AC_SUBST(LIBAA)
1111

1112

1113
1114
1115
##################
# Check for libxpm
##################
1116

1117
1118
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
1119
1120
1121
1122
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
if test "$gdk_target" = x11; then
  lib_X11=-lX11
1123
fi
1124
1125
1126
if test -z "$LIBXPM"; then
  AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
    [AC_CHECK_HEADER(X11/xpm.h,
1127
      XPM='xpm$(EXEEXT)'; LIBXPM="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
1128
1129
      [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
1130
fi
1131
CFLAGS="$gimp_save_CFLAGS"
1132
LDFLAGS="$gimp_save_LDFLAGS"
Sven Neumann's avatar
Sven Neumann committed
1133

1134
1135
AC_SUBST(XPM)
AC_SUBST(LIBXPM)
Sven Neumann's avatar
Sven Neumann committed
1136

1137

1138
1139
1140
1141
####################
# Check for gtkhtml2
####################

1142
PKG_CHECK_MODULES(GTKHTML2, libgtkhtml-2.0 >= gtkhtml2_required_version,
1143
  have_gtkhtml2=yes,
1144
  AC_MSG_WARN([*** Help browser plug-in will not be built (GtkHtml2 not found) ***]))
1145

1146
AM_CONDITIONAL(BUILD_HELPBROWSER, test x$have_gtkhtml2 = xyes)
1147

1148

Sven Neumann's avatar
Sven Neumann committed
1149
1150
1151
1152
###################
# Check for librsvg
###################

1153
PKG_CHECK_MODULES(SVG, librsvg-2.0 >= rsvg_required_version,
1154
  SVG='svg$(EXEEXT)'
Sven Neumann's avatar
Sven Neumann committed
1155
1156
  LIBSVG=$SVG_LIBS,
  AC_MSG_WARN([*** SVG import plug-in will not be built (librsvg not found) ***]))
1157

Sven Neumann's avatar
Sven Neumann committed
1158
1159
1160
1161
AC_SUBST(SVG)
AC_SUBST(LIBSVG)


Michael Natterer's avatar
Michael Natterer committed
1162
1163
1164
1165
1166
1167
1168
#####################
# Check for gnome-vfs
#####################

PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
  have_gnomevfs=yes,
  AC_MSG_WARN([*** URI plug-in will be built without gnome-vfs support (gnome-vfs-2.0 not found) ***]))
1169

Michael Natterer's avatar
Michael Natterer committed
1170
1171
1172
AM_CONDITIONAL(HAVE_GNOMEVFS, test x$have_gnomevfs = xyes)


1173
1174
1175
######################
# Check for gimp-print
######################
1176
1177

AC_ARG_ENABLE(print, [  --disable-print         build without print support (requires libgimpprint)])
1178
1179
1180
1181
1182
1183
1184

have_gimp_print=no
if test "x$enable_print" != "xno"; then
  AM_PATH_GIMPPRINT(gimpprint_required_version,
    [print_version=`$GIMPPRINT_CONFIG --version`
      if expr $print_version \>= gimpprint_toonew_version >/dev/null; then
        AC_MSG_WARN([
1185
1186
*** libgimpprint version $print_version is too new.
*** It is likely an unstable development version.
1187
*** You need a version before gimpprint_toonew_version.])
1188
      else
1189
        have_gimp_print=yes
1190
1191
1192
1193
1194
1195
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
1196
      fi
1197
1198
    ])
fi
1199

1200
if test x$enable_print != xno && test x$have_gimp_print != xyes; then
1201
  AC_MSG_ERROR([
1202
1203
1204
*** Check for libgimpprint failed. You can download it from 
*** http://gimp-print.sourceforge.net/ or you can build without it by passing 
*** --disable-print to configure (but you won't be able to print then).])
1205
1206
fi

1207
1208
AC_SUBST(PRINT_LIBS)
AC_SUBST(PRINT_CFLAGS)
1209
1210
1211
1212
AM_CONDITIONAL(BUILD_PRINT,
               test x$enable_print != xno && test x$have_gimp_print = xyes)


1213
1214
1215
1216
1217
1218
###################
# Check for libwmf2
###################

AC_PATH_PROG(WMF_CONFIG, libwmf-config, no)
if test "x$WMF_CONFIG" != "xno" ; then
1219
  AC_MSG_CHECKING(for libwmf >= wmf_required_version)
1220
  wmf_version=`$WMF_CONFIG --version`
1221
  if expr $wmf_version \>= wmf_required_version >/dev/null; then
1222
    AC_MSG_RESULT([yes (version $wmf_version)])
1223
    WMF='wmf$(EXEEXT)'
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
    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)


Sven Neumann's avatar
Sven Neumann committed
1236
1237
1238
1239
1240
################
# Check for lcms
################

have_lcms=no
1241
AC_CHECK_LIB(lcms, cmsCreate_sRGBProfile, [
Sven Neumann's avatar
Sven Neumann committed
1242
  AC_CHECK_HEADER(lcms.h,
1243
    have_lcms=yes, [
1244
1245
1246
    AC_CHECK_HEADER(lcms/lcms.h,
      have_lcms=yes
      AC_DEFINE(HAVE_LCMS_LCMS_H, 1,
1247
1248
        [Define to 1 if the lcms header must be included as lcms/lcms.h]))
    ])
1249
])
Sven Neumann's avatar
Sven Neumann committed
1250

1251
1252
1253
1254
1255
1256
if test $have_lcms = yes; then
  LCMS_LIBS="-llcms"
else
  AC_MSG_WARN([*** color proof module will not be built (lcms not found or unuseable) ***])
fi

Sven Neumann's avatar
Sven Neumann committed
1257
1258
1259
1260
AC_SUBST(LCMS_LIBS)
AM_CONDITIONAL(HAVE_LCMS, test $have_lcms = yes)


1261
1262
1263
1264
1265
1266
1267
1268
1269
################
# 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
1270
1271
1272
1273
#######################
# Check for linux input
#######################

1274
1275
1276
AC_ARG_WITH(linux-input,
              [  --without-linux-input   don't build linux input event controller module])

Sven Neumann's avatar
Sven Neumann committed
1277
have_linux_input=no
1278
1279
1280
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
1281
1282
1283
1284

AM_CONDITIONAL(HAVE_LINUX_INPUT, test $have_linux_input = yes)


1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
############################################################
# 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


1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
####################
# 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
1322
1323


1324
1325
1326
1327
################
# Check for perl
################

1328
1329
1330
AC_PATH_PROGS(PERL,perl5 perl perl5.005 perl5.004,perl)


1331
1332
1333
AC_ARG_WITH(pdbgen,
            [  --with-pdbgen           use 'pdbgen' code generation tool],,
  with_pdbgen=$enable_maintainer_mode)
1334
1335