configure.ac 65.1 KB
Newer Older
1
# Process this file with autoconf to produce a configure script.
Elliot Lee's avatar
Elliot Lee committed
2

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], [9])
m4_define([gimp_micro_version], [1])
12 13 14
m4_define([gimp_real_version],
          [gimp_major_version.gimp_minor_version.gimp_micro_version])
m4_define([gimp_version], [gimp_real_version])
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.9.1])
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.9])
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.9])
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([babl_required_version], [0.1.11])
44
m4_define([gegl_required_version], [0.2.1])
45
m4_define([glib_required_version], [2.32.0])
46 47 48
m4_define([atk_required_version], [2.2.0])
m4_define([gtk_required_version], [2.24.10])
m4_define([gdk_pixbuf_required_version], [2.24.1])
49 50
m4_define([cairo_required_version], [1.12.2])
m4_define([cairo_pdf_required_version], [1.12.2])
51
m4_define([pangocairo_required_version], [1.29.4])
52 53
m4_define([fontconfig_required_version], [2.2.0])
m4_define([gtkdoc_required_version], [1.0])
54
m4_define([webkit_required_version], [1.6.1])
55
m4_define([alsa_required_version], [1.0.0])
56
m4_define([rsvg_required_version], [2.36.0])
57
m4_define([wmf_required_version], [0.2.8])
58
m4_define([pygtk_required_version], [2.10.4])
59
m4_define([poppler_required_version], [0.12.4])
60
m4_define([libcurl_required_version], [7.15.1])
61
m4_define([dbus_glib_required_version], [0.70])
62
m4_define([libgudev_required_version], [167])
63
m4_define([exif_required_version], [0.6.15])
64
m4_define([lcms_required_version], [2.2])
65
m4_define([libpng_required_version], [1.2.37])
66
m4_define([liblzma_required_version], [5.0.0])
67

68 69 70 71 72

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

73
AC_CONFIG_HEADERS([config.h])
74
AC_CONFIG_SRCDIR([app/core/gimp.c])
75
AC_CONFIG_MACRO_DIR([m4macros])
76

77
AM_INIT_AUTOMAKE(no-define dist-bzip2 dist-xz no-dist-gzip -Wno-portability)
Elliot Lee's avatar
Elliot Lee committed
78

79 80 81 82 83
# Enable silent build rules by default, requires at least
# Automake-1.11. Disable by either passing --disable-silent-rules to
# configure or passing V=1 to make
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
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
99 100
GIMP_UNSTABLE=gimp_unstable
GIMP_FULL_NAME="gimp_full_name"
101 102 103
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)
AC_SUBST(GIMP_MICRO_VERSION)
104 105
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
106
AC_SUBST(GIMP_VERSION)
107 108 109 110 111 112 113 114 115
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)
116 117
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
118

119

120 121
# These are used in the .pc files
GLIB_REQUIRED_VERSION=glib_required_version
122
GDK_PIXBUF_REQUIRED_VERSION=gdk_pixbuf_required_version
123 124
GTK_REQUIRED_VERSION=gtk_required_version
CAIRO_REQUIRED_VERSION=cairo_required_version
125
GEGL_REQUIRED_VERSION=gegl_required_version
126
AC_SUBST(GLIB_REQUIRED_VERSION)
127
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
128 129
AC_SUBST(GTK_REQUIRED_VERSION)
AC_SUBST(CAIRO_REQUIRED_VERSION)
130
AC_SUBST(GEGL_REQUIRED_VERSION)
131 132 133 134

# The symbol GIMP_UNSTABLE is defined above for substitution in
# Makefiles and conditionally defined here as a preprocessor symbol
# and automake conditional.
135
if test "x$GIMP_UNSTABLE" = "xyes"; then
136
  AC_DEFINE(GIMP_UNSTABLE, 1,
137
            [Define to 1 if this is an unstable version of GIMP])
138
fi
139 140
AM_CONDITIONAL(GIMP_UNSTABLE, test "x$GIMP_UNSTABLE" = "xyes")

141 142

# libtool versioning
143
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
144 145 146 147 148
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)
149 150
AC_SUBST(LT_CURRENT_MINUS_AGE)

151

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

158 159 160
# Determine a C compiler to use
AC_PROG_CC
AM_PROG_CC_C_O
Manish Singh's avatar
Manish Singh committed
161

162
# Initialize libtool
163 164
LT_PREREQ([2.2])
LT_INIT([disable-static win32-dll])
Elliot Lee's avatar
Elliot Lee committed
165

166
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
167

168
# Initialize maintainer mode
169
AM_MAINTAINER_MODE([enable])
170

171 172 173 174
# Check for pkg-config
PKG_PROG_PKG_CONFIG(0.16)


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


212 213 214
#################
# Check for Win32
#################
215

216
AC_MSG_CHECKING([for some Win32 platform])
217 218
case "$target_or_host" in
  *-*-mingw* | *-*-cygwin*)
219 220 221 222 223 224 225 226 227 228
    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])
229
case "$target_or_host" in
230 231
  *-*-mingw*)
    os_win32=yes
232 233 234 235 236 237 238
    case "$host" in
      x86_64-*-*)
	;;
      *)
	WIN32_LARGE_ADDRESS_AWARE='-Wl,--large-address-aware'
	;;
    esac
239 240 241 242 243 244 245 246
    PATHSEP=';'
    ;;
  *)
    os_win32=no
    PATHSEP=':'
    ;;
esac
AC_MSG_RESULT([$os_win32])
247
AC_SUBST(WIN32_LARGE_ADDRESS_AWARE)
248 249
AC_SUBST(PATHSEP)
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
250
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
251 252 253

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Manish Singh's avatar
Manish Singh committed
254
  AC_CHECK_TOOL(WINDRES, windres, :)
255 256
else
  WINDRES=":"
257
fi
Manish Singh's avatar
Manish Singh committed
258

259
AM_CONDITIONAL(MS_LIB_AVAILABLE, test "x$ms_librarian" = xyes)
260
AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
Manish Singh's avatar
Manish Singh committed
261 262

AC_SUBST(WINDRES)
263

264

265 266 267 268
###############
# Generic stuff
###############

269
# Checks for programs.
270 271 272
AC_PROG_INSTALL
AC_PROG_MAKE_SET

273
# Large file support for the swap file
274
AC_SYS_LARGEFILE
275

276
AC_MSG_CHECKING([whether to turn on debugging])
277
AC_ARG_ENABLE(debug,
278
              [  --enable-debug          turn on debugging (default=no)],
279 280 281
              if eval "test x$enable_debug = xyes"; then
                DEBUGFLAG="-g"
              fi)
282

283
if test -n "$DEBUGFLAG"; then
284
  AC_MSG_RESULT([yes])
285
  CFLAGS="$DEBUGFLAG $CFLAGS"
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301
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])
302
fi
303

304
AC_ARG_ENABLE(ansi,
305
              [  --enable-ansi           turn on strict ansi (default=no)],,
306
              enable_ansi=no)
307

308
changequote(,)dnl
309 310 311 312 313
if eval "test x$GCC = xyes"; then
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
314

315 316 317 318 319
  if test "x$enable_ansi" = "xyes"; then
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac
320

321 322 323 324
    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
325 326
  fi
fi
327
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
328

329

330
# If possible, warn if C99isms are used
331 332 333
GIMP_DETECT_CFLAGS(extra_warnings, '-Wdeclaration-after-statement')
CFLAGS="$CFLAGS $extra_warnings"

334
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-prototypes')
335 336 337 338 339 340
CFLAGS="$CFLAGS $extra_warnings"

# We really don't want anyone using code with missing prototypes, which
# can cause random behavior. If compile breaks due to the following,
# come to us and we will point you to a newer version which works.
GIMP_DETECT_CFLAGS(extra_warnings, '-Werror=missing-prototypes')
341 342
CFLAGS="$CFLAGS $extra_warnings"

343 344 345
GIMP_DETECT_CFLAGS(extra_warnings, '-Wstrict-prototypes')
CFLAGS="$CFLAGS $extra_warnings"

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

349 350 351 352 353
GIMP_DETECT_CFLAGS(extra_warnings, '-Winit-self')
CFLAGS="$CFLAGS $extra_warnings"

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

GIMP_DETECT_CFLAGS(extra_warnings, '-Wold-style-definition')
CFLAGS="$CFLAGS $extra_warnings"
357

358 359 360
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-format-attribute')
CFLAGS="$CFLAGS $extra_warnings"

361 362 363 364 365 366
GIMP_DETECT_CFLAGS(extra_warnings, '-Wformat-security')
CFLAGS="$CFLAGS $extra_warnings"

GIMP_DETECT_CFLAGS(extra_warnings, '-Wformat-non-literal')
CFLAGS="$CFLAGS $extra_warnings"

367 368 369
GIMP_DETECT_CFLAGS(extra_warnings, '-fno-common')
CFLAGS="$CFLAGS $extra_warnings"

370 371 372
GIMP_DETECT_CFLAGS(extra_warnings, '-fdiagnostics-show-option')
CFLAGS="$CFLAGS $extra_warnings"

373

374 375 376 377 378 379 380 381
# Extra optimization flags for super performance
GIMP_DETECT_CFLAGS(extra_warnings, '--omg-optimized')
CFLAGS="$CFLAGS $extra_warnings"

GIMP_DETECT_CFLAGS(extra_warnings, '--disable-instructions')
CFLAGS="$CFLAGS $extra_warnings"


382 383 384 385
# 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".
386 387
if test "x$os_win32" = xyes; then
  if test "x$GCC" = xyes; then
388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406
    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
407
    if test "x$msnative_struct" = x ; then
408
      AC_MSG_RESULT([no way])
409
      AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
410 411 412 413 414 415 416
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
  fi
fi

417

418 419 420 421 422 423 424 425 426 427 428
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_FUNC_VPRINTF

AC_FUNC_ALLOCA

429
# check some more funcs
Sven Neumann's avatar
Sven Neumann committed
430
AC_CHECK_FUNCS(fsync)
431
AC_CHECK_FUNCS(difftime mmap)
432

Sven Neumann's avatar
Sven Neumann committed
433

434 435
AM_BINRELOC

436

437 438
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
439 440
AC_LINK_IFELSE(
  [AC_LANG_PROGRAM(
441 442 443 444
    [[#include <langinfo.h>]],
    [[char c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));]])],
  [nl_ok=yes],
  [nl_ok=no])
445 446 447 448 449 450 451
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


452 453 454
######################
# Internationalisation
######################
455

456
IT_PROG_INTLTOOL(0.40.1)
457
AM_GLIB_GNU_GETTEXT
458

459

Sven Neumann's avatar
Sven Neumann committed
460 461 462 463
###########
# iso-codes
###########

464 465 466 467 468
AC_MSG_CHECKING([for iso-codes])
PKG_CHECK_EXISTS(iso-codes,
  have_iso_codes="yes"
  AC_DEFINE(HAVE_ISO_CODES, 1,
  	    [Define to 1 if the iso-codes package is available])
469
  ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
470 471 472 473 474 475 476 477 478
  ISO_CODES_LOCATION="$ISO_CODES_PREFIX/share/xml/iso-codes"
  ISO_CODES_LOCALEDIR="$ISO_CODES_PREFIX/$DATADIRNAME/locale",
  have_iso_codes="no (iso-codes package not found)")
AC_MSG_RESULT($have_iso_codes)

AC_SUBST(ISO_CODES_LOCATION)
AC_SUBST(ISO_CODES_LOCALEDIR)


479 480 481
###############################
# Checks for required libraries
###############################
482

483
PKG_CHECK_MODULES(BABL, babl >= babl_required_version)
484
PKG_CHECK_MODULES(GEGL, gegl-0.2 >= gegl_required_version)
485
PKG_CHECK_MODULES(ATK, atk >= atk_required_version)
486

487
AM_PATH_GLIB_2_0(glib_required_version, :,
Sven Neumann's avatar
Sven Neumann committed
488
  AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
489
  gobject)
490

491
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
492

493 494
PKG_CHECK_MODULES(GIO, gio-2.0)

495 496 497
AC_MSG_CHECKING([if GLib is version 2.31.0 or newer])
if $PKG_CONFIG --atleast-version=2.31.0 glib-2.0; then
  have_glib_2_31=yes
498
else
499
  have_glib_2_31=no
500
fi
501
AC_MSG_RESULT($have_glib_2_31)
502

503

504
# Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
505 506
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
507 508 509 510
AC_CHECK_FUNCS(bind_textdomain_codeset,,
  AC_MSG_ERROR([
*** Check for bind_textdomain_codeset() failed!  This is required.
]))
511 512 513 514 515
LIBS=$gimp_save_LIBS


AC_PATH_XTRA

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

519 520 521 522 523
# GTK+ 2.26.0 will never be released, we keep the check around anyway
# because we will need it again after the switch to GTK+ 3.x
AC_MSG_CHECKING([if GTK+ is version 2.26.0 or newer (bogus placeholder check)])
if $PKG_CONFIG --atleast-version=2.26.0 gtk+-2.0; then
  have_gtk_2_26=yes
524
else
525
  have_gtk_2_26=no
526
fi
527
AC_MSG_RESULT($have_gtk_2_26)
528

529
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version)
530

531
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
532
if test "x$GDK_PIXBUF_CSOURCE" = xno; then
533 534 535
  AC_MSG_ERROR(Could not find gdk-pixbuf-csource in your PATH)
fi

536 537 538 539 540 541 542 543
AC_MSG_CHECKING([if GdkPixbuf is version 2.26.0 or newer])
if $PKG_CONFIG --atleast-version=2.26.0 gdk-pixbuf-2.0; then
  have_gdk_pixbuf_2_26=yes
else
  have_gdk_pixbuf_2_26=no
fi
AC_MSG_RESULT($have_gdk_pixbuf_2_26)

544
PKG_CHECK_MODULES(CAIRO, cairo >= cairo_required_version)
545

546
PKG_CHECK_MODULES(PANGOCAIRO,
547
	          pangocairo >= pangocairo_required_version pangoft2, :,
548 549 550 551
  AC_MSG_ERROR([Test for PangoCairo failed.
*** We require Pango with the optional support for Cairo compiled in.
*** See the file 'INSTALL' for more help.]))

Martin Nordholts's avatar
Martin Nordholts committed
552
gimp_save_CFLAGS=$CFLAGS
553 554
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"

555 556
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

557 558 559
AC_MSG_CHECKING([if Pango is version 1.32.0 or newer])
if $PKG_CONFIG --atleast-version=1.32.0 pango; then
  have_pango_1_32=yes
560
else
561
  have_pango_1_32=no
562
fi
563
AC_MSG_RESULT($have_pango_1_32)
564

565
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"
566 567

AC_MSG_CHECKING([if Pango is built with a recent fontconfig])
568 569 570 571 572 573
AC_COMPILE_IFELSE(
  [AC_LANG_PROGRAM(
    [[#include <fontconfig/fontconfig.h>]],
    [[FcObjectSet *os; os = FcObjectSetBuild (FC_FAMILY, FC_WIDTH);]])],
  [fontconfig_ok=yes],
  [fontconfig_ok=no])
574 575 576 577 578 579 580
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
581
*** Pango library is using an older version. This old version is probably in
582
*** /usr/X11R6. Look at the above output, and note that the result for
583
*** FONTCONFIG_CFLAGS is not in the result for PANGOCAIRO_CFLAGS, and that
584 585 586 587 588 589 590
*** 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
591

592

593 594
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
595
  AC_MSG_CHECKING([for freetype libraries])
596 597 598 599 600 601
  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
  AC_MSG_RESULT($FREETYPE_LIBS)
fi
AC_SUBST(FREETYPE_LIBS)


602 603 604
##########################################
# Check for some special functions we need
##########################################
Elliot Lee's avatar
Elliot Lee committed
605

David Neary's avatar
David Neary committed
606 607
AC_CHECK_HEADERS(math.h ieeefp.h)

608
# DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
Manish Singh's avatar
Manish Singh committed
609 610 611
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lm"
612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628
AC_RUN_IFELSE(
  [AC_LANG_SOURCE([[
    #include <math.h>
    int main (void) { return (log(1) != log(1.)); }]])],
  [AC_MSG_RESULT(none needed)],
  [gimp_save_CFLAGS=$CFLAGS
   CFLAGS="$CFLAGS -std1"
   AC_RUN_IFELSE(
     [AC_LANG_SOURCE([[
       #include <math.h>
       int main (void) { return (log(1) != log(1.)); }]])],
     [AC_MSG_RESULT(-std1)],
     [AC_MSG_RESULT()
      CFLAGS=$gimp_save_CFLAGS
      AC_MSG_WARN([No ANSI prototypes found in library. (-std1 didn't work.)])],
     [AC_MSG_RESULT])],
  [AC_MSG_RESULT()])
629

630
# Check for finite or isfinite
631 632
AC_CHECK_FUNCS(finite, , [
  AC_MSG_CHECKING(for finite in <math.h>)
633 634 635 636 637 638 639 640 641 642 643 644 645 646 647
  AC_LINK_IFELSE(
    [AC_LANG_PROGRAM(
      [[#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_LINK_IFELSE(
       [AC_LANG_PROGRAM(
         [[#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)])])])
648 649 650
AC_SUBST(HAVE_FINITE)
AC_SUBST(HAVE_ISFINITE)

651 652 653
LIBS=$gimp_save_LIBS


654
# check for rint
655 656 657 658 659 660
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)])])


661 662 663
#####################################################################
# Check for extra libs needed for getaddrinfo, getnameinfo and socket
#####################################################################
664 665 666 667

gimp_save_LIBS=$LIBS
LIBS=""

668
AC_CHECK_FUNCS(getaddrinfo, , AC_CHECK_LIB(nsl, getaddrinfo))
669
AC_CHECK_FUNCS(getnameinfo, , AC_CHECK_LIB(nsl, getnameinfo))
670 671 672 673 674 675 676 677
AC_CHECK_LIB(socket, socket)

SOCKET_LIBS="$LIBS"
LIBS=$gimp_save_LIBS

AC_SUBST(SOCKET_LIBS)


678 679 680
########################
# Check for MMX assembly
########################
681

682 683 684 685 686 687
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)],,
688
  enable_sse=$enable_mmx)
689 690

if test "x$enable_mmx" = xyes; then
691 692
  GIMP_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
  SSE_EXTRA_CFLAGS=
693

694
  AC_MSG_CHECKING(whether we can compile MMX code)
695

696 697
  mmx_save_CFLAGS="$CFLAGS"
  CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
698

699
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movq 0, %mm0");])],
700

701 702 703
    AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
    AC_MSG_RESULT(yes)

704
    if test "x$enable_sse" = xyes; then
705 706
      GIMP_DETECT_CFLAGS(sse_flag, '-msse')
      SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $sse_flag"
707 708 709

      AC_MSG_CHECKING(whether we can compile SSE code)

710 711
      CFLAGS="$CFLAGS $sse_flag"

712
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movntps %xmm0, 0");])],
713 714
        AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
        AC_MSG_RESULT(yes)
715
      ,
716 717 718
        enable_sse=no
        AC_MSG_RESULT(no)
        AC_MSG_WARN([The assembler does not support the SSE command set.])
719
      )
720

721
    fi
722
  ,
723 724
    enable_mmx=no
    AC_MSG_RESULT(no)
725
    AC_MSG_WARN([The assembler does not support the MMX command set.])
726
  )
727

728 729 730 731
  CFLAGS="$mmx_save_CFLAGS"

  AC_SUBST(MMX_EXTRA_CFLAGS)
  AC_SUBST(SSE_EXTRA_CFLAGS)
732
fi
733

734 735

############################
736
# Check for AltiVec assembly
737 738 739
############################

AC_ARG_ENABLE(altivec,
740
  [  --enable-altivec        enable AltiVec support (default=auto)],,
741 742 743
  enable_altivec=$have_ppc)

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

745
  GIMP_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
746 747 748 749 750 751 752 753 754 755 756 757 758

  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
759
  AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
760

761
  AC_MSG_CHECKING(whether we can compile AltiVec code)
762

763
  can_use_altivec=no
764
  if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
765
    AC_MSG_RESULT(no)
Manish Singh's avatar
Manish Singh committed
766
    AC_MSG_WARN([The compiler does not support the AltiVec command set.])
767 768 769 770 771 772 773 774
  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.])
        ;;
      *)
775
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vand %v0, %v0, %v0");])],
776 777 778 779
          can_use_altivec=yes, can_use_altivec=no)
        ;;
    esac
    AC_MSG_RESULT($can_use_altivec)
780

781 782 783 784 785 786 787
    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
788 789

  enable_altivec="$can_use_altivec"
790
fi
791

792

793 794 795
###################################
# Checks for shared memory handling
###################################
796

797
# MacOS X has broken SysV shm
798 799
case "$target_or_host" in
  *-*-darwin* | *-*-rhapsody* | *-*-machten*)
800
    shmdefault=posix
801 802 803 804 805 806 807
    ;;
  *)
    shmdefault=sysv
    ;;
esac

shmtype=auto
808
AC_ARG_WITH(shm, [  --with-shm=none|sysv|posix|auto    shared memory transport type (default=auto)], shmtype=$with_shm)
809 810

case $shmtype in
811
  none|sysv|posix) ;;
812
  auto) shmtype=$shmdefault ;;
813
  *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
814 815
esac

816 817 818 819

if test "x$platform_win32" = "xyes"; then
  shmtype=win32
elif test "x$shmtype" = "xsysv"; then
820 821
  AC_CHECK_HEADER(sys/ipc.h,
    [AC_DEFINE(HAVE_IPC_H, 1,
822
               [Define to 1 if you have the <sys/ipc.h> header file.])],
823 824 825 826 827
    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)
828

829 830
  if test "$ac_cv_header_sys_shm_h" = "yes"; then
    AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
831 832
    AC_RUN_IFELSE(
      [AC_LANG_SOURCE([[
Elliot Lee's avatar
Elliot Lee committed
833 834 835 836 837 838 839
	#include <sys/types.h>
	#include <sys/ipc.h>
	#include <sys/shm.h>
	int main()
	{
	  int id;
	  char *shmaddr;
840
	id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
Elliot Lee's avatar
Elliot Lee committed
841 842 843 844 845 846 847 848 849 850 851 852 853
	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);
	}
854 855 856 857 858 859
      ]])],
      [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)])
860 861 862 863 864 865

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
866 867 868 869 870 871
  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
872
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
873 874
  fi
  AC_SUBST(RT_LIBS)
875 876 877

  AC_CHECK_HEADER(sys/mman.h,
    [AC_DEFINE(HAVE_MMAN_H, 1,
878
               [Define to 1 if you have the <sys/mman.h> header file.])],
879 880 881
    no_sys_mman=yes)

  if test "$ac_cv_func_mmap" = "yes" &&
882 883
     test "$ac_cv_header_sys_mman_h" = "yes" &&
     test "$have_shm_open" = "yes"; then
884 885 886
    AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
  else
    shmtype=none
887
  fi
Elliot Lee's avatar
Elliot Lee committed
888 889
fi

890 891
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
892

893

894 895 896 897 898 899
########################
# Define a symbol prefix
########################

AC_MSG_CHECKING([whether symbols are prefixed])

900 901
case "$host_os" in
  mingw*)
902 903 904 905
    case "$host_cpu" in 
	  x86_64) SYMPREFIX='' ;;
	  *) SYMPREFIX='_' ;;
	esac
906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922
    ;;
  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)


923 924 925
############################
# Check for select and fdset
############################
Elliot Lee's avatar
Elliot Lee committed
926

927
if test "x$os_win32" != xyes; then
928
  AC_MSG_CHECKING([fd_set and sys/select])
929 930 931 932 933 934
  AC_COMPILE_IFELSE(
    [AC_LANG_PROGRAM(
      [[#include <sys/types.h>]],
      [[fd_set readMask, writeMask;]])],
    [gimp_ok=yes],
    [gimp_ok=no])
935
  if test "x$gimp_ok" = xno; then
936
      AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes)
937
      if test "x$gimp_ok" = xyes; then
938 939 940 941 942
	  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)
943
  if test "x$gimp_ok" = xno; then
944 945 946
      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
947 948
fi

949

950
#############################
951
# Threads and multi processor
952
#############################
953

954
AC_ARG_ENABLE(mp, [  --disable-mp            disable support for multiple processors])
955

956
if test "x$enable_mp" != "xno"; then
957 958
  AC_DEFINE(ENABLE_MP, 1,
	    [Define to 1 to enable support for multiple processors.])
Sven Neumann's avatar
Sven Neumann committed
959 960
fi

961

962 963 964
################################
# Some plug-ins are X11 specific
################################
Sven Neumann's avatar
Sven Neumann committed
965

966
# Check if building for GTK+-X11
Sven Neumann's avatar
Sven Neumann committed
967
gdk_target=`$PKG_CONFIG --variable=target gtk+-2.0`
968

969 970
have_libxmu="no (building for $gdk_target)"

Sven Neumann's avatar
Sven Neumann committed
971
if test "$gdk_target" = x11; then
972

973
   # doc-shooter is X11 specific
974 975
   DOC_SHOOTER=doc-shooter

976
   # screenshot plug-in needs to link to X11 explicitly
977
   SCREENSHOT_LIBS="$X_LIBS -lX11"
978

979 980 981 982 983
   gimp_save_CFLAGS="$CFLAGS"
   gimp_save_LDFLAGS="$LDFLAGS"
   CFLAGS="$CFLAGS $GTK_CFLAGS"
   LDFLAGS="$LDFLAGS $X_LIBS"

984
   # Test for Xmu
985
   if test -z "$XMU_LIBS"; then
Sven Neumann's avatar
Sven Neumann committed
986
      AC_CHECK_LIB(Xmu, XmuClientWindow,
987
        [AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
988
	  have_libxmu=yes
989 990
          XMU_LIBS="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt"
          SCREENSHOT_LIBS="$XMU_LIBS",
991 992
	  [have_libxmu="no (XMU header file not found)"],[#include <gdk/gdkx.h>])],
	[have_libxmu="no (XMU library not found)"], -lXt -lX11)
993
   fi
994

995
   # Check for shaped window extension
996 997
   AC_CHECK_LIB(Xext, XShapeGetRectangles,
     [AC_CHECK_HEADERS(X11/extensions/shape.h,
998
        SCREENSHOT_LIBS="$SCREENSHOT_LIBS -lXext",,[#include <gdk/gdkx.h>])],,
999 1000 1001 1002
     -lX11 -lXext)

   CFLAGS="$gimp_save_CFLAGS"
   LDFLAGS="$gimp_save_LDFLAGS"
1003

1004
   # check for the XFixes extension
1005 1006 1007
   PKG_CHECK_MODULES(XFIXES, xfixes,
      AC_DEFINE(HAVE_XFIXES, 1,
                [Define to 1 to if the XFIXES X extension is available])
1008
      SCREENSHOT_LIBS="$SCREENSHOT_LIBS $XFIXES_LIBS",
1009
      true)
1010
fi
Sven Neumann's avatar
Sven Neumann committed
1011

1012 1013
AC_SUBST(XMU_LIBS)
AC_SUBST(SCREENSHOT_LIBS)
1014

1015
AC_SUBST(DOC_SHOOTER)
1016

1017

1018
GIMP_COMMAND='gimp-gimp_app_version'
1019

1020 1021
AC_SUBST(GIMP_COMMAND)

1022

1023 1024 1025 1026 1027 1028
############
# MIME types
############

# The list of MIME types that are supported by plug-ins that are compiled
# unconditionally:
1029
MIME_TYPES="image/bmp;image/g3fax;image/gif;image/x-fits;image/x-pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/x-gimp-gbr;image/x-gimp-pat;image/x-gimp-gih"
1030 1031


1032 1033 1034 1035
###################
# Check for libtiff
###################

Sven Neumann's avatar
Sven Neumann committed
1036
AC_ARG_WITH(libtiff,  [  --without-libtiff       build without TIFF support])
1037 1038 1039 1040 1041 1042 1043 1044 1045

have_libtiff=no
if test "x$with_libtiff" != xno && test -z "$TIFF_LIBS"; then
  have_libtiff=yes
  AC_CHECK_LIB(tiff, TIFFReadScanline,
    [AC_CHECK_HEADER(tiffio.h,
      FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff',
      [have_libtiff="no (TIFF header files not found)"])],
    [AC_CHECK_LIB(tiff, TIFFWriteScanline,
Sven Neumann's avatar
Sven Neumann committed
1046
      [AC_CHECK_HEADER(tiffio.h,
1047
        FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff -ljpeg -lz',
1048
	[have_libtiff="no (TIFF header files not found)"])],
1049
      [AC_CHECK_LIB(tiff34, TIFFFlushData,
Sven Neumann's avatar
Sven Neumann committed
1050
	[AC_CHECK_HEADER(tiffio.h,
1051
          FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff34 -ljpeg -lz',
1052
	  [have_libtiff="no (TIFF header files not found)"])],
1053 1054
      [have_libtiff="no (TIFF library not found)"], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
fi
Sven Neumann's avatar
Sven Neumann committed
1055

1056 1057
if test "x$with_libtiff" != xno && test -z "$TIFF_LIBS"; then
  AC_MSG_ERROR([
1058
*** Checks for TIFF library failed. You can build without it by passing
Sven Neumann's avatar
Sven Neumann committed
1059
*** --without-libtiff to configure but you won't be able to use TIFFs then.])
1060
fi
Sven Neumann's avatar
Sven Neumann committed
1061

1062 1063 1064
if test "x$have_libtiff" = xyes; then
  MIME_TYPES="$MIME_TYPES;image/tiff"
fi
1065

1066 1067
AC_SUBST(FILE_TIFF_LOAD)
AC_SUBST(FILE_TIFF_SAVE)
1068
AC_SUBST(TIFF_LIBS)
1069 1070 1071 1072 1073


###################
# Check for libjpeg
###################
Sven Neumann's avatar
Sven Neumann committed
1074 1075

AC_ARG_WITH(libjpeg,  [  --without-libjpeg       build without JPEG support])
1076 1077 1078 1079 1080

jpeg_ok=no
if test "x$with_libjpeg" != xno && test -z "$JPEG_LIBS"; then
  AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
    jpeg_ok=yes,
1081
    [jpeg_ok="no (JPEG library not found)"])
1082 1083
  if test "$jpeg_ok" = yes; then
    AC_MSG_CHECKING([for jpeglib.h])
1084 1085
    AC_PREPROC_IFELSE(
      [AC_LANG_SOURCE([[
Sven Neumann's avatar
Sven Neumann committed
1086 1087 1088 1089 1090
#include <stdio.h>
#undef HAVE_STDDEF_H
#undef HAVE_STDLIB_H
#undef PACKAGE
#undef VERSION
1091 1092 1093
#include <jpeglib.h>]])],
      [jpeg_ok=yes],
      [jpeg_ok="no (Can't include jpeglib.h)"])
1094 1095 1096 1097 1098 1099 1100
    AC_MSG_RESULT($jpeg_ok)
    if test "$jpeg_ok" = yes; then
      AC_CHECK_LIB(jpeg, jpeg_save_markers,
      JPEG='jpeg$(EXEEXT)'; JPEG_LIBS='-ljpeg',
      jpeg_ok="no (JPEG library is too old)")
    else
      jpeg_ok="no (JPEG header file not found)"
Sven Neumann's avatar
Sven Neumann committed
1101 1102
    fi
  fi
1103
fi
Sven Neumann's avatar
Sven Neumann committed
1104

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

1111 1112 1113
if test "x$jpeg_ok" = xyes; then
  MIME_TYPES="$MIME_TYPES;image/jpeg"
fi
1114

1115
AM_CONDITIONAL(BUILD_JPEG, test "x$jpeg_ok" = xyes)
1116
AC_SUBST(JPEG_LIBS)
Sven Neumann's avatar
Sven Neumann committed
1117

1118

1119 1120 1121 1122
################
# Check for libz
################

1123
have_zlib=yes
1124
if test -z "$Z_LIBS"; then
1125 1126
  AC_CHECK_LIB(z, gzsetparams,
    [AC_CHECK_HEADER(zlib.h,
1127
      FILE_PSP='file-psp$(EXEEXT)'; Z_LIBS='-lz',
1128 1129
      [have_zlib="no (ZLIB header files not found)"])],
    [have_zlib="no (ZLIB library not found)"])
1130 1131
fi

1132
if test "x$have_zlib" = xyes; then
1133
  MIME_TYPES="$MIME_TYPES;image/x-psp"
1134 1135
fi

1136
AC_SUBST(FILE_PSP)
1137 1138

AM_CONDITIONAL(HAVE_Z, test "x$have_zlib" = xyes)
1139
AC_SUBST(Z_LIBS)
1140 1141


1142 1143 1144 1145
####################
# Check for libbzip2
####################

1146
AC_ARG_WITH(bzip2,  [  --without-bzip2         build without bzip2 support])
1147 1148 1149 1150

have_libbzip2=no
if test "x$with_bzip2" != xno; then
  have_libbzip2=yes
1151 1152 1153 1154 1155
  AC_CHECK_LIB(bz2, BZ2_bzCompress,
    [AC_CHECK_HEADER(bzlib.h,
      BZIP2_LIBS='-lbz2',
      [have_libbzip2="no (libbzip2 header files not found)"])],
    [have_libbzip2="no (libbzip2 library not found)"])
1156 1157 1158 1159 1160
  if test "x$have_libbzip2" != xyes -a "x$with_bzip2" = xyes; then
    AC_MSG_ERROR([
*** Checks for bzip2 library failed. You can build without it by passing
*** --without-bzip2 to configure but you won't be able to use compressed files then.])
  fi
1161 1162
fi

1163
AM_CONDITIONAL(HAVE_BZIP2, test "x$have_libbzip2" = xyes)
1164 1165
AC_SUBST(BZIP2_LIBS)

1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191

###################
# Check for liblzma
###################

AC_ARG_WITH(liblzma,  [  --without-liblzma       build without LZMA support])

have_liblzma=no
if test "x$with_liblzma" != xno; then
  have_liblzma=yes
  PKG_CHECK_MODULES(LZMA, liblzma >= liblzma_required_version,
    AC_DEFINE(HAVE_LIBLZMA, 1, [Define to 1 if liblzma is available]),
    have_liblzma="no (liblzma not found or too old)")
fi

AC_SUBST(LZMA_CFLAGS)
AC_SUBST(LZMA_LIBS)

AM_CONDITIONAL(HAVE_LIBLZMA, test "x$have_liblzma" = xyes)


#######################################################################
# file-compressor is only built when all the compressor libraries are
# available. We should revisit this at some point to make it build even
# with fewer libraries.
#######################################################################
1192
have_compressor=no
1193
if test "x$have_zlib" = xyes && test "x$have_libbzip2" = xyes && test "x$have_liblzma" = xyes; then
1194 1195
   have_compressor=yes
fi
1196

1197 1198 1199 1200 1201

###############################
# Check for Ghostscript library
###############################

1202 1203 1204 1205 1206
AC_ARG_WITH(gs,  [  --without-gs            build without Ghostscript support])

have_gs=no
if test "x$with_gs" != xno; then
  have_gs=yes
1207 1208 1209 1210 1211
  AC_CHECK_LIB(gs, gsapi_new_instance,
    [AC_CHECK_HEADER(ghostscript/iapi.h,
      FILE_PS='file-ps$(EXEEXT)'; GS_LIBS='-lgs',
      [have_gs="no (Ghostscript header files not found)"])],
    [have_gs="no (Ghostscript library not found)"])
1212 1213 1214 1215 1216
  if test "x$have_gs" != xyes -a "x$with_gs" = xyes; then
    AC_MSG_ERROR([
*** Checks for Ghostscript library failed. You can build without it by passing
*** --without-gs to configure but you won't be able to use Postscript files then.])
  fi
1217 1218
fi

1219 1220 1221 1222
if test "x$have_gs" = xyes; then
  MIME_TYPES="$MIME_TYPES;application/postscript"
fi

1223 1224 1225 1226 1227
AC_SUBST(FILE_PS)
AM_CONDITIONAL(HAVE_GS, test "x$have_gs" = xyes)
AC_SUBST(GS_LIBS)


1228 1229 1230 1231
##################
# Check for libpng
##################

Sven Neumann's avatar
Sven Neumann committed
1232
AC_ARG_WITH(libpng,  [  --without-libpng        build without PNG support])
1233 1234

have_libpng=no
1235
if test "x$with_libpng" != xno; then
1236
  have_libpng=yes
1237
  PKG_CHECK_MODULES(PNG, libpng >= libpng_required_version,
1238
    FILE_PNG='file-png$(EXEEXT)',
1239
    [have_libpng="no (libpng not found)"
Sven Neumann's avatar
Sven Neumann committed
1240
     AC_MSG_ERROR([
1241 1242 1243
*** 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
1244

1245 1246
if test "x$have_libpng" = xyes; then
  MIME_TYPES="$MIME_TYPES;image/png;image/x-icon"
1247
  PNG_CFLAGS="$PNG_CFLAGS -DPNG_PEDANTIC_WARNINGS"
1248 1249
fi

1250
AC_SUBST(FILE_PNG)
Sven Neumann's avatar
Sven Neumann committed
1251

1252
AM_CONDITIONAL(HAVE_PNG, test "x$have_libpng" = xyes)
1253

Sven Neumann's avatar
Sven Neumann committed
1254

1255 1256 1257 1258 1259
##################
# Check for libmng
##################

AC_ARG_WITH(libmng,  [  --without-libmng        build without MNG support])
1260

1261
have_libmng=no
1262 1263 1264 1265 1266 1267
if test "x$with_libmng" != xno && test -z "$MNG_LIBS" &&
   test -n "$PNG_LIBS" && test -n "$JPEG_LIBS" && test -n "$Z_LIBS"; then
  AC_CHECK_LIB(mng, mng_create,
    [AC_CHECK_HEADER(libmng.h, mng_ok=yes)],
    [have_libmng="no (MNG library not found)"], -lz -lm)
  if test "$mng_ok" = yes; then
1268
    have_libmng=yes
1269
    FILE_MNG='file-mng$(EXEEXT)'; MNG_LIBS="-lmng $JPEG_LIBS $PNG_LIBS"; MNG_CFLAGS="$PNG_CFLAGS"
1270 1271
  else
    have_libmng="no (MNG header file not found)"
1272
  fi
1273
fi
1274

1275
AC_SUBST(FILE_MNG)
1276
AC_SUBST(MNG_LIBS)
1277
AC_SUBST(MNG_CFLAGS)
1278 1279


1280 1281 1282 1283 1284 1285 1286
############################################################
# 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])
1287 1288

have_libexif=no
1289
if test "x$with_libexif" != xno && test -z "$EXIF_LIBS" && test -n "$JPEG_LIBS"; then
1290
  have_libexif=yes
Sven Neumann's avatar
Sven Neumann committed
1291
  PKG_CHECK_MODULES(EXIF, libexif >= exif_required_version,
1292
    AC_DEFINE(HAVE_LIBEXIF, 1, [Define to 1 if libexif is available]),
1293
    have_libexif="no (libexif not found or too old)")
1294 1295
fi

1296 1297
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
1298

1299
AM_CONDITIONAL(HAVE_LIBEXIF, test "x$have_libexif" = xyes)
1300

1301

1302 1303 1304
#################
# Check for libaa
#################
1305

1306
AC_ARG_WITH(aa,  [  --without-aa            do not build the AA plug-in])
1307

1308
have_libaa=no
1309
if test "x$with_aa" != xno && test -z "$AA_LIBS"; then
1310
  have_libaa=yes
1311 1312
  AC_CHECK_LIB(aa, aa_printf,
    [AC_CHECK_HEADER(aalib.h,
1313
      FILE_AA='file-aa$(EXEEXT)'; AA_LIBS='-laa',
1314 1315
      [have_libaa="no (AA header file not found)"])],
    [have_libaa="no (AA library not found)"])
1316
fi
1317

1318
AC_SUBST(FILE_AA)
1319
AC_SUBST(AA_LIBS)
1320

1321

1322 1323 1324
##################
# Check for libxpm
##################
1325

1326 1327
AC_ARG_WITH(libxpm,  [  --without-libxpm        build without XPM support])

1328 1329
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
1330 1331 1332 1333
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
if test "$gdk_target" = x11; then
  lib_X11=-lX11
1334
fi
1335 1336 1337
have_libxpm=no
if test "x$with_libxpm" != xno && test -z "$XPM_LIBS"; then
  have_libxpm=yes
1338 1339
  AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
    [AC_CHECK_HEADER(X11/xpm.h,
1340
      FILE_XPM='file-xpm$(EXEEXT)'; XPM_LIBS="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
1341 1342
      [have_libxpm="no (XPM header file not found)"])],
    [have_libxpm="no (XPM library not found)"], $X_PRE_LIBS $lib_X11)