configure.in 56.8 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])
10 11
m4_define([gimp_minor_version], [4])
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.
20
m4_define([gimp_version], [2.4.0-rc3])
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.4])
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.4])
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.12.3])
44
m4_define([gtk_required_version], [2.10.13])
45
m4_define([gdk_pixbuf_required_version], [gtk_required_version])
46
m4_define([pangoft2_required_version], [1.12.2])
47 48 49
m4_define([fontconfig_required_version], [2.2.0])
m4_define([gtkdoc_required_version], [1.0])
m4_define([gtkhtml2_required_version], [2.0.0])
50
m4_define([alsa_required_version], [1.0.0])
51
m4_define([rsvg_required_version], [2.14.0])
52
m4_define([wmf_required_version], [0.2.8])
53
m4_define([pygtk_required_version], [2.10.4])
54
m4_define([poppler_required_version], [0.4.1])
55 56
m4_define([gnome_vfs_required_version], [2.10.0])
m4_define([gnomeui_required_version], [2.10.0])
57
m4_define([gnome_keyring_required_version], [0.4.5])
58
m4_define([libcurl_required_version], [7.15.1])
59
m4_define([dbus_glib_required_version], [0.70])
60
m4_define([libhal_required_version], [0.5.7])
61
m4_define([exif_required_version], [0.6.15])
62

63 64 65 66 67 68 69

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

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

70
AM_INIT_AUTOMAKE(no-define dist-bzip2)
71
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
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
95
AC_SUBST(GIMP_VERSION)
96 97 98 99 100 101 102 103 104
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)
105 106
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
107

108

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

118 119

# libtool versioning
120
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
121 122 123 124 125
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)
126 127
AC_SUBST(LT_CURRENT_MINUS_AGE)

128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
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
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(RSVG_REQUIRED_VERSION)
AC_SUBST(WMF_REQUIRED_VERSION)

147 148 149 150
GETTEXT_PACKAGE=gimp20
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
151

Manish Singh's avatar
Manish Singh committed
152

153 154 155 156 157
dnl Initialize libtool
AC_PROG_CC
AM_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AM_PROG_LIBTOOL
Elliot Lee's avatar
Elliot Lee committed
158

159
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
160

161 162 163
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

164 165 166
dnl Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

167

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


205 206 207
#################
# Check for Win32
#################
208

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

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

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

AC_SUBST(WINDRES)
248

249

250 251 252 253
###############
# Generic stuff
###############

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

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

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

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

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

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

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

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

316

317
# If possible, warn if C99isms are used
318 319 320
GIMP_DETECT_CFLAGS(extra_warnings, '-Wdeclaration-after-statement')
CFLAGS="$CFLAGS $extra_warnings"

321 322 323 324 325 326
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-prototypes')
CFLAGS="$CFLAGS $extra_warnings"

GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-declarations')
CFLAGS="$CFLAGS $extra_warnings"

327 328 329 330 331 332
GIMP_DETECT_CFLAGS(extra_warnings, '-Winit-self')
CFLAGS="$CFLAGS $extra_warnings"

GIMP_DETECT_CFLAGS(extra_warnings, '-Wpointer-arith')
CFLAGS="$CFLAGS $extra_warnings"

333

334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
# 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])
361
      AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
362 363 364 365 366 367 368
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
  fi
fi

369

370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
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)

386 387
AM_BINRELOC

388

389 390 391 392 393 394 395 396 397 398 399 400
# _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


401 402 403
######################
# Internationalisation
######################
404

405 406 407
dnl Note to translators: you MUST have .po files in all 5 directories: po,
dnl po-libgimp, po-plug-ins, po-python and po-script-fu before adding your
dnl language code to ALL_LINGUAS.
408
ALL_LINGUAS="ar bg ca cs da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hu hr id it ja km ko lt mk ms nb ne nl oc pa pl pt pt_BR ro ru rw sk sr sr@Latn sv tr tt uk vi xh yi zh_CN zh_TW"
409

410
AC_PROG_INTLTOOL
411
AM_GLIB_GNU_GETTEXT
412

413

414 415 416
###############################
# Checks for required libraries
###############################
417

418
AM_PATH_GLIB_2_0(glib_required_version, :,
Sven Neumann's avatar
Sven Neumann committed
419
  AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
420
  gobject gthread)
421

422
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
423

424 425 426
AC_MSG_CHECKING([if GLib is version 2.15.0 or newer])
if $PKG_CONFIG --atleast-version=2.15.0 glib-2.0; then
  have_glib_2_15=yes
427
else
428
  have_glib_2_15=no
429
fi
430
AC_MSG_RESULT($have_glib_2_15)
431

432 433 434
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
435 436 437 438
AC_CHECK_FUNCS(bind_textdomain_codeset,,
  AC_MSG_ERROR([
*** Check for bind_textdomain_codeset() failed!  This is required.
]))
439 440 441 442 443
LIBS=$gimp_save_LIBS


AC_PATH_XTRA

444
AM_PATH_GTK_2_0(gtk_required_version, :,
445 446
  AC_MSG_ERROR(Test for GTK+ failed. See the file 'INSTALL' for help.),
  gthread)
Elliot Lee's avatar
Elliot Lee committed
447

448 449 450
AC_MSG_CHECKING([if GTK+ is version 2.13.0 or newer])
if $PKG_CONFIG --atleast-version=2.13.0 gtk+-2.0; then
  have_gtk_2_13=yes
451
else
452
  have_gtk_2_13=no
453
fi
454
AC_MSG_RESULT($have_gtk_2_13)
455

456
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version)
457

458 459 460 461 462
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

463 464
PKG_CHECK_MODULES(LIBART, libart-2.0)

465 466
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

467
PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= pangoft2_required_version, :,
468 469 470
  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.]))
471

472 473 474
AC_MSG_CHECKING([if Pango is version 1.19.0 or newer])
if $PKG_CONFIG --atleast-version=1.19.0 pango; then
  have_pango_1_19=yes
475
else
476
  have_pango_1_19=no
477
fi
478
AC_MSG_RESULT($have_pango_1_19)
479

480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503
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
504

505 506
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
507
  AC_MSG_CHECKING([for freetype libraries])
508 509 510 511 512 513
  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
  AC_MSG_RESULT($FREETYPE_LIBS)
fi
AC_SUBST(FREETYPE_LIBS)


514 515 516
##########################################
# Check for some special functions we need
##########################################
Elliot Lee's avatar
Elliot Lee committed
517

David Neary's avatar
David Neary committed
518 519
AC_CHECK_HEADERS(math.h ieeefp.h)

Manish Singh's avatar
Manish Singh committed
520 521 522 523 524 525 526 527 528 529 530 531 532 533
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
534 535 536 537
    AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)]),
    AC_MSG_RESULT),
  AC_MSG_RESULT())

538 539 540 541 542 543 544 545 546 547 548 549 550 551 552
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)

553 554 555 556 557 558 559 560 561 562 563 564 565 566 567
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.)])))

568 569 570 571 572 573 574
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)])])


575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590
######################################################
# 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)


591 592 593
########################
# Check for MMX assembly
########################
594

595 596 597 598 599 600
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)],,
601
  enable_sse=$enable_mmx)
602 603

if test "x$enable_mmx" = xyes; then
604 605
  GIMP_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
  SSE_EXTRA_CFLAGS=
606

607
  AC_MSG_CHECKING(whether we can compile MMX code)
608

609 610
  mmx_save_CFLAGS="$CFLAGS"
  CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
611

612 613
  AC_COMPILE_IFELSE([asm ("movq 0, %mm0");],

614 615 616
    AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
    AC_MSG_RESULT(yes)

617
    if test "x$enable_sse" = xyes; then
618 619
      GIMP_DETECT_CFLAGS(sse_flag, '-msse')
      SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $sse_flag"
620 621 622

      AC_MSG_CHECKING(whether we can compile SSE code)

623 624
      CFLAGS="$CFLAGS $sse_flag"

625
      AC_COMPILE_IFELSE([asm ("movntps %xmm0, 0");],
626 627
        AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
        AC_MSG_RESULT(yes)
628
      ,
629 630 631
        enable_sse=no
        AC_MSG_RESULT(no)
        AC_MSG_WARN([The assembler does not support the SSE command set.])
632
      )
633

634
    fi
635
  ,
636 637
    enable_mmx=no
    AC_MSG_RESULT(no)
638
    AC_MSG_WARN([The assembler does not support the MMX command set.])
639
  )
640

641 642 643 644
  CFLAGS="$mmx_save_CFLAGS"

  AC_SUBST(MMX_EXTRA_CFLAGS)
  AC_SUBST(SSE_EXTRA_CFLAGS)
645
fi
646

647 648

############################
649
# Check for AltiVec assembly
650 651 652
############################

AC_ARG_ENABLE(altivec,
653
  [  --enable-altivec        enable AltiVec support (default=auto)],,
654 655 656
  enable_altivec=$have_ppc)

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

658
  GIMP_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
659 660 661 662 663 664 665 666 667 668 669 670 671

  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
672
  AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
673

674
  AC_MSG_CHECKING(whether we can compile AltiVec code)
675

676
  can_use_altivec=no
677
  if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
678
    AC_MSG_RESULT(no)
Manish Singh's avatar
Manish Singh committed
679
    AC_MSG_WARN([The compiler does not support the AltiVec command set.])
680 681 682 683 684 685 686 687 688 689 690 691 692
  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)
693

694 695 696 697 698 699 700
    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
701 702

  enable_altivec="$can_use_altivec"
703
fi
704

705

706 707 708
###################################
# Checks for shared memory handling
###################################
709

710
dnl MacOS X has broken SysV shm
711 712
case "$target_or_host" in
  *-*-darwin* | *-*-rhapsody* | *-*-machten*)
713
    shmdefault=posix
714 715 716 717 718 719 720
    ;;
  *)
    shmdefault=sysv
    ;;
esac

shmtype=auto
721
AC_ARG_WITH(shm, [  --with-shm=none|sysv|posix|auto    shared memory transport type (default=auto)], shmtype=$with_shm)
722 723

case $shmtype in
724
  none|sysv|posix) ;;
725
  auto) shmtype=$shmdefault ;;
726
  *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
727 728
esac

729 730 731 732

if test "x$platform_win32" = "xyes"; then
  shmtype=win32
elif test "x$shmtype" = "xsysv"; then
733 734
  AC_CHECK_HEADER(sys/ipc.h,
    [AC_DEFINE(HAVE_IPC_H, 1,
735
               [Define to 1 if you have the <sys/ipc.h> header file.])],
736 737 738 739 740
    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)
741

742 743 744
  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
745 746 747 748 749 750 751
	#include <sys/types.h>
	#include <sys/ipc.h>
	#include <sys/shm.h>
	int main()
	{
	  int id;
	  char *shmaddr;
752
	id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
Elliot Lee's avatar
Elliot Lee committed
753 754 755 756 757 758 759 760 761 762 763 764 765
	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);
	}
766 767 768 769 770 771
      ],
      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))
772 773 774 775 776 777

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
778 779 780 781 782 783
  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
784
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
785 786
  fi
  AC_SUBST(RT_LIBS)
787 788 789

  AC_CHECK_HEADER(sys/mman.h,
    [AC_DEFINE(HAVE_MMAN_H, 1,
790
               [Define to 1 if you have the <sys/mman.h> header file.])],
791 792 793
    no_sys_mman=yes)

  if test "$ac_cv_func_mmap" = "yes" &&
794 795
     test "$ac_cv_header_sys_mman_h" = "yes" &&
     test "$have_shm_open" = "yes"; then
796 797 798
    AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
  else
    shmtype=none
799
  fi
Elliot Lee's avatar
Elliot Lee committed
800 801
fi

802 803
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
804

805

806 807 808 809 810 811
########################
# Define a symbol prefix
########################

AC_MSG_CHECKING([whether symbols are prefixed])

812 813
case "$host_os" in
  mingw*)
814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831
    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)


832 833 834 835
##################################
# Check for regex support in glibc
##################################

836 837 838 839 840 841 842 843 844 845 846 847
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
848 849
}], AC_DEFINE(HAVE_GLIBC_REGEX, 1,
              [Define to 1 if glibc has regex support.])
850
    have_glibc_regex=yes
851 852 853
    AC_MSG_RESULT(yes),
    AC_MSG_RESULT(no),
    AC_MSG_RESULT(assuming no))
854
AM_CONDITIONAL(HAVE_GLIBC_REGEX, test x$have_glibc_regex = xyes)
855

856
AC_SUBST(HAVE_GLIBC_REGEX)
857

David Neary's avatar
David Neary committed
858

859 860 861
############################
# Check for select and fdset
############################
Elliot Lee's avatar
Elliot Lee committed
862

863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878
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
879 880
fi

881

882
#############################
883
# Threads and multi processor
884
#############################
885

886
AC_ARG_ENABLE(mp, [  --disable-mp            disable support for multiple processors])
887
if test "x$enable_mp" != "xno"; then
888 889
  AC_DEFINE(ENABLE_MP, 1,
	    [Define to 1 to enable support for multiple processors.])
Sven Neumann's avatar
Sven Neumann committed
890 891
fi

892 893 894 895

################################
# Some plug-ins are X11 specific
################################
Sven Neumann's avatar
Sven Neumann committed
896

897 898
GIMP_COMMAND='gimp-gimp_app_version'

Sven Neumann's avatar
Sven Neumann committed
899 900 901
dnl Check if building for GTK+-X11
gdk_target=`$PKG_CONFIG --variable=target gtk+-2.0`
if test "$gdk_target" = x11; then
902 903 904
   dnl screenshot plug-in needs to link to X11 explicitely
   LIBSCREENSHOT="$X_LIBS -lX11"

905 906 907
   dnl doc-shooter is X11 specific
   DOC_SHOOTER=doc-shooter

908 909 910 911 912
   gimp_save_CFLAGS="$CFLAGS"
   gimp_save_LDFLAGS="$LDFLAGS"
   CFLAGS="$CFLAGS $GTK_CFLAGS"
   LDFLAGS="$LDFLAGS $X_LIBS"

913 914 915
   dnl Test for Xmu
   enable_gimp_remote=yes
   if test -z "$LIBXMU"; then
Sven Neumann's avatar
Sven Neumann committed
916
      AC_CHECK_LIB(Xmu, XmuClientWindow,
917
        [AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
918
          GIMP_REMOTE='gimp-remote-gimp_app_version$(EXEEXT)';
919
	  GIMP_COMMAND='gimp-remote-gimp_app_version'
920
	  have_libxmu=yes
921
          LIBXMU="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt",
922 923
	  [enable_gimp_remote="no (XMU header file not found)"],[#include <gdk/gdkx.h>])],
	[enable_gimp_remote="no (XMU library not found)"], -lXt -lX11)
924
      LIBSCREENSHOT="$LIBXMU"
925
   fi
926 927 928 929 930 931 932 933 934

   dnl Check for shaped window extension
   AC_CHECK_LIB(Xext, XShapeGetRectangles,
     [AC_CHECK_HEADERS(X11/extensions/shape.h,
        LIBSCREENSHOT="$LIBSCREENSHOT -lXext",,[#include <gdk/gdkx.h>])],,
     -lX11 -lXext)

   CFLAGS="$gimp_save_CFLAGS"
   LDFLAGS="$gimp_save_LDFLAGS"
935 936
else
   enable_gimp_remote="no (building for $gdk_target)"
937
fi
Sven Neumann's avatar
Sven Neumann committed
938

939
AC_SUBST(LIBXMU)
940
AC_SUBST(LIBSCREENSHOT)
941

942
AC_SUBST(DOC_SHOOTER)
943

944 945 946
AC_SUBST(GIMP_REMOTE)
AC_SUBST(GIMP_COMMAND)

947

948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963
###################################
# Allow to disable the toolbox menu
###################################

AC_ARG_ENABLE(toolbox-menu,
              [  --disable-toolbox-menu disable the menu in the toolbox (default=depends on platform)], ,
  if test "x$gdk_target" = "xquartz"; then
     enable_toolbox_menu=no
  else
     enable_toolbox_menu=yes
  fi)

if test "x$enable_toolbox_menu" = "xyes"; then
  AC_DEFINE(ENABLE_TOOLBOX_MENU, 1,
	    [Define to 1 to enable the toolbox menu.])
fi
964

965
AM_CONDITIONAL(TOOLBOX_MENU, test "x$enable_toolbox_menu" = "xyes")
966 967


968 969 970 971
###################
# Check for libtiff
###################

972
have_libtiff=no
Sven Neumann's avatar
Sven Neumann committed
973 974
AC_ARG_WITH(libtiff,  [  --without-libtiff       build without TIFF support])
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
975
    have_libtiff=yes
Sven Neumann's avatar
Sven Neumann committed
976 977
    AC_CHECK_LIB(tiff, TIFFReadScanline,
      [AC_CHECK_HEADER(tiffio.h,
978
	TIFF_LOAD='tiff-load$(EXEEXT)'; TIFF_SAVE='tiff-save$(EXEEXT)'; LIBTIFF='-ltiff',
979
	[have_libtiff="no (TIFF header files not found)"])],
Sven Neumann's avatar
Sven Neumann committed
980 981
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
	[AC_CHECK_HEADER(tiffio.h,
982
          TIFF_LOAD='tiff-load$(EXEEXT)'; TIFF_SAVE='tiff-save$(EXEEXT)'; LIBTIFF='-ltiff -ljpeg -lz',
983
	  [have_libtiff="no (TIFF header files not found)"])],
Sven Neumann's avatar
Sven Neumann committed
984 985
	[AC_CHECK_LIB(tiff34, TIFFFlushData,
	  [AC_CHECK_HEADER(tiffio.h,
986
            TIFF_LOAD='tiff-load$(EXEEXT)'; TIFF_SAVE='tiff-save$(EXEEXT)'; LIBTIFF='-ltiff34 -ljpeg -lz',
987 988
	    [have_libtiff="no (TIFF header files not found)"])],
        [have_libtiff="no (TIFF library not found)"], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
Sven Neumann's avatar
Sven Neumann committed
989 990 991 992
  fi

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

997 998
AC_SUBST(TIFF_LOAD)
AC_SUBST(TIFF_SAVE)
999 1000 1001 1002 1003 1004
AC_SUBST(LIBTIFF)


###################
# Check for libjpeg
###################
Sven Neumann's avatar
Sven Neumann committed
1005 1006 1007 1008 1009

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,
1010
      [jpeg_ok="no (JPEG library not found)"
Sven Neumann's avatar
Sven Neumann committed
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
      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,
1022
	jpeg_ok="no (Can't include jpeglib.h)")
Sven Neumann's avatar
Sven Neumann committed
1023 1024
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
1025 1026
	AC_CHECK_LIB(jpeg, jpeg_save_markers,
	JPEG='jpeg$(EXEEXT)'; LIBJPEG='-ljpeg',
1027
        jpeg_ok="no (JPEG library is too old)")
Sven Neumann's avatar
Sven Neumann committed
1028
      else
1029
	jpeg_ok="no (JPEG header file not found)"
Sven Neumann's avatar
Sven Neumann committed
1030 1031 1032 1033 1034 1035
      fi
    fi
  fi

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

1040 1041
AC_SUBST(JPEG)
AC_SUBST(LIBJPEG)
Sven Neumann's avatar
Sven Neumann committed
1042

1043 1044 1045
## 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)
1046 1047 1048 1049 1050 1051 1052
if test x$jpeg_ok != xyes; then
  have_xjt="no (no JPEG library)"
elif test x"$os_win32" = xyes; then
  have_xjt="no (not built on Windows)"
else
  have_xjt=yes
fi
1053

Sven Neumann's avatar
Sven Neumann committed
1054

1055 1056 1057 1058
################
# Check for libz
################

1059
have_zlib=yes
1060 1061 1062
if test -z "$LIBZ"; then
  AC_CHECK_LIB(z, gzsetparams,
    [AC_CHECK_HEADER(zlib.h,
1063
      PSP='psp$(EXEEXT)'; LIBZ='-lz',
1064 1065
      [have_zlib="no (ZLIB header files not found)"])],
    [have_zlib="no (ZLIB library not found)"])
1066 1067 1068 1069 1070 1071 1072 1073 1074 1075
fi

AC_SUBST(LIBZ)
AC_SUBST(PSP)


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

1076
have_libpng=no
Sven Neumann's avatar
Sven Neumann committed
1077
AC_ARG_WITH(libpng,  [  --without-libpng        build without PNG support])
1078
if test x$with_libpng != xno; then
1079
  have_libpng=yes
1080 1081 1082 1083
  PKG_CHECK_MODULES(PNG, libpng,
    PNG='png$(EXEEXT)'
    LIBPNG="$PNG_LIBS",
    [have_libpng="no (libpng not found)"
Sven Neumann's avatar
Sven Neumann committed
1084
     AC_MSG_ERROR([
1085 1086 1087
*** 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
Sven Neumann's avatar
Sven Neumann committed
1088

1089 1090
AC_SUBST(PNG)
AC_SUBST(LIBPNG)
Sven Neumann's avatar
Sven Neumann committed
1091

1092 1093
AM_CONDITIONAL(HAVE_PNG, test x$have_libpng = xyes)

Sven Neumann's avatar
Sven Neumann committed
1094

1095 1096 1097 1098
##################
# Check for libmng
##################

1099
have_libmng=no
1100
AC_ARG_WITH(libmng,  [  --without-libmng        build without MNG support])
1101
  have_libmng=yes
1102 1103 1104 1105
  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)],
1106
      [have_libmng="no (MNG library not found)"], -lz -lm)
1107
    if test "$mng_ok" = yes; then
1108
      MNG='mng$(EXEEXT)'; LIBMNG="-lmng $LIBJPEG $LIBPNG"
1109
    else
1110
      have_libmng="no (MNG header file not found)"
1111 1112 1113 1114 1115 1116 1117
    fi
  fi

AC_SUBST(MNG)
AC_SUBST(LIBMNG)


1118 1119 1120 1121 1122 1123
############################################################
# 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.
############################################################

1124
have_libexif=no
1125 1126
AC_ARG_WITH(libexif,  [  --without-libexif       build without EXIF support])
if test x$with_libexif != xno && test -z "$LIBEXIF" && test -n "$LIBJPEG"; then
1127
  have_libexif=yes
Sven Neumann's avatar
Sven Neumann committed
1128
  PKG_CHECK_MODULES(EXIF, libexif >= exif_required_version,
1129
    AC_DEFINE(HAVE_EXIF, 1, [Define to 1 if libexif is available]),
1130 1131
    have_libexif="no (libexif not found or too old)"
    AC_MSG_RESULT([$have_libexif]))
1132 1133
fi

1134 1135
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
1136

1137

1138 1139 1140
#################
# Check for libaa
#################
1141

1142

1143
have_libaa=no
1144
AC_ARG_WITH(aa,  [  --without-aa            do not build the AA plug-in])
1145
if test x$with_aa != xno && test -z "$LIBAA"; then
1146
  have_libaa=yes
1147 1148
  AC_CHECK_LIB(aa, aa_printf,
    [AC_CHECK_HEADER(aalib.h,
1149
      AA='aa$(EXEEXT)'; LIBAA='-laa',
1150 1151
      [have_libaa="no (AA header file not found)"])],
    [have_libaa="no (AA library not found)"])
1152
fi
1153

1154 1155
AC_SUBST(AA)
AC_SUBST(LIBAA)
1156

1157

1158 1159 1160
##################
# Check for libxpm
##################
1161

1162 1163
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
1164 1165 1166 1167
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
if test "$gdk_target" = x11; then
  lib_X11=-lX11
1168
fi
1169
have_libxpm=yes
1170 1171 1172
if test -z "$LIBXPM"; then
  AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
    [AC_CHECK_HEADER(X11/xpm.h,
1173
      XPM='xpm$(EXEEXT)'; LIBXPM="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
1174 1175
      [have_libxpm="no (XPM header file not found)"])],
    [have_libxpm="no (XPM library not found)"], $X_PRE_LIBS $lib_X11)
Sven Neumann's avatar
Sven Neumann committed
1176
fi
1177
CFLAGS="$gimp_save_CFLAGS"
1178
LDFLAGS="$gimp_save_LDFLAGS"
1179

1180 1181
AC_SUBST(XPM)
AC_SUBST(LIBXPM)
1182

1183

1184 1185 1186 1187
####################
# Check for gtkhtml2
####################

1188 1189 1190 1191 1192 1193
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,
1194
    AC_MSG_RESULT([no])
1195
    have_gtkhtml2="no (GtkHtml2 not found)")
1196
else
1197
  have_gtkhtml2="no (GtkHtml2 support disabled)"
1198
fi
1199

1200
AM_CONDITIONAL(BUILD_HELPBROWSER, test "x$have_gtkhtml2" = xyes)
1201

1202

1203 1204 1205 1206
###################
# Check for librsvg
###################

1207 1208
AC_ARG_WITH(librsvg,[  --without-librsvg       build without librsvg support])

1209
have_librsvg=no
1210
if test "x$with_librsvg" != xno; then
1211
  have_librsvg=yes
1212 1213 1214
  PKG_CHECK_MODULES(SVG, librsvg-2.0 >= rsvg_required_version,
    SVG='svg$(EXEEXT)'
    LIBSVG=$SVG_LIBS,
1215
    AC_MSG_RESULT([no])
1216
    have_librsvg="no (librsvg not found)")
1217
else
1218
   have_librsvg="no (librsvg support disabled)"
1219
fi
1220

1221 1222 1223
AC_SUBST(SVG)
AC_SUBST(LIBSVG)

Sven Neumann's avatar
Sven Neumann committed
1224

1225
####################################
1226
# Allow to disable the print plug-in
1227 1228
####################################

1229
enable_print="no (disabled)"
1230
AC_ARG_WITH(print,[  --without-print         build without print support])
1231 1232

if test "x$with_print" != xno; then
1233
    enable_print="yes"
1234 1235 1236 1237
fi
AM_CONDITIONAL(BUILD_PRINT, test "x$enable_print" == xyes)


Sven Neumann's avatar
Sven Neumann committed
1238 1239 1240
######################
# Check for libpoppler
######################
1241

1242
have_poppler=no
1243 1244 1245 1246 1247 1248 1249 1250 1251
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,
1252
    AC_MSG_RESULT([no])
1253
    have_poppler="Using PostScript plug-in (libpoppler not found)")
1254
else
1255
  have_poppler="Using PostScript plug-in (libpoppler support disabled)"
1256
fi
1257 1258 1259 1260

AC_SUBST(POPPLER)
AC_SUBST(LIBPOPPLER)

1261

1262 1263 1264
###############################################################################
# Check for gnome-vfs and libcurl (and optionally libgnomeui and gnome-keyring)
###############################################################################
1265

1266
uri_plugin=no
1267
gnome_vfs_modules="gnome-vfs-2.0 >= gnome_vfs_required_version"
1268

1269 1270 1271 1272 1273 1274 1275 1276
AC_ARG_WITH(gnomevfs,  [  --without-gnomevfs      build without gnomevfs support])

have_gnomeui="no (disabled)"
have_gnome_keyring="no (disabled)"
have_gnomevfs="no (disabled)"

if test x$with_gnomevfs != xno; then

1277 1278
if $PKG_CONFIG --atleast-version=gnomeui_required_version libgnomeui-2.0; then
  have_gnomeui=yes
1279
  gnome_vfs_modules="$gnome_vfs_modules libgnomeui-2.0"
1280
else
1281
  have_gnomeui="no (libgnomeui-2.0 not found)"
1282 1283
fi

1284 1285
if $PKG_CONFIG --atleast-version=gnome_keyring_required_version gnome-keyring-1; then
  have_gnome_keyring=yes
1286
  gnome_vfs_modules="$gnome_vfs_modules gnome-keyring-1"
1287
else
1288
  have_gnome_keyring="no (gnome-keyring-1 not found)"
1289 1290
fi

1291
PKG_CHECK_MODULES(URI_GNOME_VFS, $gnome_vfs_modules,
1292
  have_gnomevfs=yes,
1293
  AC_MSG_RESULT([no])
1294
  have_gnomevfs="no (gnome-vfs-2.0 not found)")
1295

1296 1297
fi

1298
AM_CONDITIONAL(HAVE_GNOMEVFS, test x"$have_gnomevfs" = xyes)
1299

1300 1301
libcurl_modules="libcurl >= libcurl_required_version"

1302 1303 1304 1305 1306 1307
AC_ARG_WITH(libcurl,  [  --without-libcurl       build without curl support])

have_libcurl="no (disabled)"

if test x$with_libcurl != xno; then

1308 1309
PKG_CHECK_MODULES(URI_LIBCURL, $libcurl_modules,
  have_libcurl=yes,
1310
  AC_MSG_RESULT([no])
1311 1312
  have_libcurl="no (libcurl not found)")

1313 1314
fi

1315
AM_CONDITIONAL(HAVE_LIBCURL, test "x$have_libcurl" = xyes)
1316

1317
if test "x$have_gnomevfs" = xyes; then
1318
  uri_plugin="yes (using gnome-vfs)"
1319 1320
elif test x"$have_libcurl" = xyes; then
  uri_plugin="yes (using libcurl)"
1321 1322 1323 1324
elif test x"$os_win32" = xno; then
  uri_plugin="yes (using wget)"
fi

1325
if test "x$have_gnomeui" = xyes; then
1326
  AC_DEFINE(HAVE_GNOMEUI, 1, [Define to 1 if libgnomeui is available])
1327 1328
fi

1329 1330 1331 1332
if test "x$have_gnome_keyring" = xyes; then
  AC_DEFINE(HAVE_GNOME_KEYRING, 1, [Define to 1 if gnome-keyring is available])
fi

1333

1334 1335


1336 1337 1338 1339
###################
# Check for libwmf2
###################

1340
have_libwmf=no
1341 1342
AC_PATH_PROG(WMF_CONFIG, libwmf-config, no)
if test "x$WMF_CONFIG" != "xno" ; then
1343
  have_libwmf=yes
1344
  AC_MSG_CHECKING(for libwmf >= wmf_required_version)
1345
  wmf_version=`$WMF_CONFIG --version`
1346
  if expr $wmf_version \>= wmf_required_version >/dev/null; then
1347
    AC_MSG_RESULT([yes (version $wmf_version)])
1348
    WMF='wmf$(EXEEXT)'
1349 1350 1351
    LIBWMF=`$WMF_CONFIG --libs`
    WMF_CFLAGS=`$WMF_CONFIG --cflags`
  else
1352
    have_libwmf="no (libwmf is too old)"
1353 1354
  fi
else
1355
  have_libwmf="no (libwmf not found)"
1356 1357 1358
fi
AC_SUBST(LIBWMF)
AC_SUBST(WMF_CFLAGS)
1359
AC_SUBST(WMF)
1360 1361


1362 1363 1364 1365
################
# Check for lcms
################

1366
AC_ARG_WITH(lcms, [  --without-lcms          build without lcms support])
1367

1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379
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
1380
    LIBLCMS="-llcms"
1381
    LCMS='lcms$(EXEEXT)'
1382
  else
1383
    have_lcms="no (lcms not found or unusable)"
1384
  fi
1385
else
1386
  have_lcms="no (lcms support disabled)"
1387 1388
fi

1389
AC_SUBST(LCMS)
1390
AC_SUBST(LIBLCMS)
1391 1392 1393
AM_CONDITIONAL(HAVE_LCMS, test $have_lcms = yes)


1394 1395 1396 1397
################
# Check for alsa
################

1398
have_alsa=no
1399 1400 1401
AC_ARG_WITH(alsa, [  --without-alsa          disable alsa support in midi input controller])

if test "x$with_alsa" != xno; then
1402
  have_alsa=yes
1403 1404
  AM_PATH_ALSA(alsa_required_version,
               AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if alsa is available]),
1405
               have_alsa="no (libasound not found or unusable)")
1406
fi
1407 1408


Sven Neumann's avatar
Sven Neumann committed
1409
#######################
1410
# Check for Linux Input
Sven Neumann's avatar
Sven Neumann committed
1411 1412
#######################

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