configure.ac 65.6 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

Sven Neumann's avatar
Sven Neumann committed
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])
Daniel Sabo's avatar
Daniel Sabo committed
44
m4_define([gegl_required_version], [0.3.0])
45
m4_define([glib_required_version], [2.36.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
m4_define([fontconfig_required_version], [2.2.0])
53
m4_define([freetype2_required_version], [2.1.7])
54
m4_define([harfbuzz_required_version], [0.9.19])
55
m4_define([gtkdoc_required_version], [1.0])
56
m4_define([webkit_required_version], [1.6.1])
57
m4_define([alsa_required_version], [1.0.0])
58
m4_define([rsvg_required_version], [2.36.0])
59
m4_define([wmf_required_version], [0.2.8])
60
m4_define([pygtk_required_version], [2.10.4])
61
m4_define([poppler_required_version], [0.12.4])
62
m4_define([libcurl_required_version], [7.15.1])
63
m4_define([libgudev_required_version], [167])
64
m4_define([gexiv2_required_version], [0.6.1])
65
m4_define([lcms_required_version], [2.2])
66
m4_define([libpng_required_version], [1.2.37])
67
m4_define([liblzma_required_version], [5.0.0])
68
m4_define([openexr_required_version], [1.6.1])
69
m4_define([gtk_mac_integration_required_version], [2.0.0])
70
m4_define([intltool_required_version], [0.40.1])
71
m4_define([python2_required_version], [2.5.0])
72

73 74 75 76
# Current test considers only 2 version numbers. If we update the recommended
# version of gettext with more version numbers, please update the tests.
m4_define([xgettext_recommended_version], [0.19])

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

81
AC_CONFIG_HEADERS([config.h])
82
AC_CONFIG_SRCDIR([app/core/gimp.c])
83
AC_CONFIG_MACRO_DIR([m4macros])
84

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

87 88 89 90 91
# 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])])

92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
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
107 108
GIMP_UNSTABLE=gimp_unstable
GIMP_FULL_NAME="gimp_full_name"
109 110 111
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)
AC_SUBST(GIMP_MICRO_VERSION)
112 113
AC_SUBST(GIMP_INTERFACE_AGE)
AC_SUBST(GIMP_BINARY_AGE)
114
AC_SUBST(GIMP_VERSION)
115 116 117 118 119 120 121 122 123
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)
124 125
AC_SUBST(GIMP_UNSTABLE)
AC_SUBST(GIMP_FULL_NAME)
126

127

128 129
# These are used in the .pc files
GLIB_REQUIRED_VERSION=glib_required_version
130
GDK_PIXBUF_REQUIRED_VERSION=gdk_pixbuf_required_version
131 132
GTK_REQUIRED_VERSION=gtk_required_version
CAIRO_REQUIRED_VERSION=cairo_required_version
Michael Natterer's avatar
Michael Natterer committed
133
GEGL_REQUIRED_VERSION=gegl_required_version
134
GEXIV2_REQUIRED_VERSION=gexiv2_required_version
135 136 137 138
PANGOCAIRO_REQUIRED_VERSION=pangocairo_required_version
BABL_REQUIRED_VERSION=babl_required_version
FONTCONFIG_REQUIRED_VERSION=fontconfig_required_version
FREETYPE2_REQUIRED_VERSION=freetype2_required_version
139
HARFBUZZ_REQUIRED_VERSION=harfbuzz_required_version
140 141
ATK_REQUIRED_VERSION=atk_required_version
INTLTOOL_REQUIRED_VERSION=intltool_required_version
142
PYTHON2_REQUIRED_VERSION=python2_required_version
143
AC_SUBST(GLIB_REQUIRED_VERSION)
144
AC_SUBST(GDK_PIXBUF_REQUIRED_VERSION)
145 146
AC_SUBST(GTK_REQUIRED_VERSION)
AC_SUBST(CAIRO_REQUIRED_VERSION)
Michael Natterer's avatar
Michael Natterer committed
147
AC_SUBST(GEGL_REQUIRED_VERSION)
148
AC_SUBST(GEXIV2_REQUIRED_VERSION)
149 150 151 152
AC_SUBST(PANGOCAIRO_REQUIRED_VERSION)
AC_SUBST(BABL_REQUIRED_VERSION)
AC_SUBST(FONTCONFIG_REQUIRED_VERSION)
AC_SUBST(FREETYPE2_REQUIRED_VERSION)
153
AC_SUBST(HARFBUZZ_REQUIRED_VERSION)
154 155
AC_SUBST(ATK_REQUIRED_VERSION)
AC_SUBST(INTLTOOL_REQUIRED_VERSION)
156
AC_SUBST(PYTHON2_REQUIRED_VERSION)
157 158 159 160

# The symbol GIMP_UNSTABLE is defined above for substitution in
# Makefiles and conditionally defined here as a preprocessor symbol
# and automake conditional.
161
if test "x$GIMP_UNSTABLE" = "xyes"; then
162
  AC_DEFINE(GIMP_UNSTABLE, 1,
163
            [Define to 1 if this is an unstable version of GIMP])
164
fi
165 166
AM_CONDITIONAL(GIMP_UNSTABLE, test "x$GIMP_UNSTABLE" = "xyes")

167 168

# libtool versioning
169
m4_define([lt_current], [m4_eval(100 * gimp_minor_version + gimp_micro_version - gimp_interface_age)])
170 171 172 173 174
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)
175 176
AC_SUBST(LT_CURRENT_MINUS_AGE)

177

Sven Neumann's avatar
Sven Neumann committed
178
# gettext i18n support
179 180 181 182
GETTEXT_PACKAGE=gimp20
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
183

184 185 186
# Determine a C compiler to use
AC_PROG_CC
AM_PROG_CC_C_O
Manish Singh's avatar
Manish Singh committed
187

188 189 190
# Determine a C++ compiler to use
AC_PROG_CXX

191
# Initialize libtool
192 193
LT_PREREQ([2.2])
LT_INIT([disable-static win32-dll])
Elliot Lee's avatar
Elliot Lee committed
194

195
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
196

197
# Initialize maintainer mode
198
AM_MAINTAINER_MODE([enable])
199

200 201 202 203
# Check for pkg-config
PKG_PROG_PKG_CONFIG(0.16)


204 205 206 207 208 209 210 211 212 213 214 215 216 217
###########################
# Check target architecture
###########################

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

case "$target_or_host" in
Manish Singh's avatar
Manish Singh committed
218
  i*86-*-*)
219 220 221
    have_x86=yes
    AC_DEFINE(ARCH_X86, 1, [Define to 1 if you are compiling for ix86.])
    ;;
Manish Singh's avatar
Manish Singh committed
222 223 224 225 226
  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
227
  ppc-*-* | powerpc-*)
228 229 230
    have_ppc=yes
    AC_DEFINE(ARCH_PPC, 1, [Define to 1 if you are compiling for PowerPC.])
    ;;
Manish Singh's avatar
Manish Singh committed
231 232 233 234 235
  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.])
    ;;
236 237 238 239 240
  *)
    ;;
esac


241 242 243
#################
# Check for Win32
#################
244

245
AC_MSG_CHECKING([for some Win32 platform])
246 247
case "$target_or_host" in
  *-*-mingw* | *-*-cygwin*)
248 249 250 251 252 253 254 255 256 257
    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])
258
case "$target_or_host" in
259 260
  *-*-mingw*)
    os_win32=yes
261 262 263 264 265 266 267
    case "$host" in
      x86_64-*-*)
	;;
      *)
	WIN32_LARGE_ADDRESS_AWARE='-Wl,--large-address-aware'
	;;
    esac
268 269 270 271 272 273 274 275
    PATHSEP=';'
    ;;
  *)
    os_win32=no
    PATHSEP=':'
    ;;
esac
AC_MSG_RESULT([$os_win32])
276
AC_SUBST(WIN32_LARGE_ADDRESS_AWARE)
277 278
AC_SUBST(PATHSEP)
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
279
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
280 281 282

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
Manish Singh's avatar
Manish Singh committed
283
  AC_CHECK_TOOL(WINDRES, windres, :)
284 285
else
  WINDRES=":"
286
fi
Manish Singh's avatar
Manish Singh committed
287

288
AM_CONDITIONAL(MS_LIB_AVAILABLE, test "x$ms_librarian" = xyes)
289
AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
Manish Singh's avatar
Manish Singh committed
290 291

AC_SUBST(WINDRES)
292

293

294 295 296 297
###############
# Generic stuff
###############

298
# Checks for programs.
299 300 301
AC_PROG_INSTALL
AC_PROG_MAKE_SET

302
# Large file support for the swap file
303
AC_SYS_LARGEFILE
304

305
AC_MSG_CHECKING([whether to turn on debugging])
306
AC_ARG_ENABLE(debug,
307
              [  --enable-debug          turn on debugging (default=no)],
308 309 310
              if eval "test x$enable_debug = xyes"; then
                DEBUGFLAG="-g"
              fi)
311

312
if test -n "$DEBUGFLAG"; then
313
  AC_MSG_RESULT([yes])
314
  CFLAGS="$DEBUGFLAG $CFLAGS"
315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330
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])
331
fi
332

333
AC_ARG_ENABLE(ansi,
334
              [  --enable-ansi           turn on strict ansi (default=no)],,
335
              enable_ansi=no)
336

337
changequote(,)dnl
338 339 340 341 342
if eval "test x$GCC = xyes"; then
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
343

344 345 346 347 348
  if test "x$enable_ansi" = "xyes"; then
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac
349

350 351 352 353
    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
354 355
  fi
fi
356
changequote([,])dnl
Elliot Lee's avatar
Elliot Lee committed
357

358

359
# If possible, warn if C99isms are used
360 361 362
GIMP_DETECT_CFLAGS(extra_warnings, '-Wdeclaration-after-statement')
CFLAGS="$CFLAGS $extra_warnings"

363
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-prototypes')
364 365 366 367 368 369
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')
370 371
CFLAGS="$CFLAGS $extra_warnings"

372 373 374
GIMP_DETECT_CFLAGS(extra_warnings, '-Wstrict-prototypes')
CFLAGS="$CFLAGS $extra_warnings"

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

378 379 380 381 382
GIMP_DETECT_CFLAGS(extra_warnings, '-Winit-self')
CFLAGS="$CFLAGS $extra_warnings"

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

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

387 388 389
GIMP_DETECT_CFLAGS(extra_warnings, '-Wmissing-format-attribute')
CFLAGS="$CFLAGS $extra_warnings"

390 391 392
GIMP_DETECT_CFLAGS(extra_warnings, '-Wformat-security')
CFLAGS="$CFLAGS $extra_warnings"

Mukund Sivaraman's avatar
Mukund Sivaraman committed
393 394 395
GIMP_DETECT_CFLAGS(extra_warnings, '-fno-common')
CFLAGS="$CFLAGS $extra_warnings"

396 397 398
GIMP_DETECT_CFLAGS(extra_warnings, '-fdiagnostics-show-option')
CFLAGS="$CFLAGS $extra_warnings"

399

400 401 402 403 404 405 406 407
# 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"


408 409 410 411
# 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".
412 413
if test "x$os_win32" = xyes; then
  if test "x$GCC" = xyes; then
414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
    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
433
    if test "x$msnative_struct" = x ; then
434
      AC_MSG_RESULT([no way])
Tor Lillqvist's avatar
Tor Lillqvist committed
435
      AC_MSG_WARN([build will be incompatible with GTK+ DLLs])
436 437 438 439 440 441 442
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
  fi
fi

443

444 445 446 447
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_HEADER_TIME

448
AC_CHECK_HEADERS(execinfo.h sys/param.h sys/time.h sys/times.h sys/wait.h unistd.h)
449
AC_CHECK_FUNCS(backtrace, , AC_CHECK_LIB(execinfo, backtrace))
450 451 452 453 454 455

AC_TYPE_PID_T
AC_FUNC_VPRINTF

AC_FUNC_ALLOCA

456
# check some more funcs
Sven Neumann's avatar
Sven Neumann committed
457
AC_CHECK_FUNCS(fsync)
Michael Natterer's avatar
Michael Natterer committed
458
AC_CHECK_FUNCS(difftime mmap)
459

Sven Neumann's avatar
Sven Neumann committed
460

461 462
AM_BINRELOC

463

464 465
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
466 467
AC_LINK_IFELSE(
  [AC_LANG_PROGRAM(
468 469 470 471
    [[#include <langinfo.h>]],
    [[char c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));]])],
  [nl_ok=yes],
  [nl_ok=no])
472 473 474 475 476 477 478
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


479 480 481
######################
# Internationalisation
######################
482

483
IT_PROG_INTLTOOL(intltool_required_version)
484
AM_GLIB_GNU_GETTEXT
485

486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517
# Testing xgettext version since we had some problem with localizing script-fu. See bug 720052.
AC_MSG_CHECKING([for recommended xgettext version (>= xgettext_recommended_version)])
XGETTEXT_RECOMMENDED_VERSION=xgettext_recommended_version
XGETTEXT_RECOMMENDED_VERSION_MAJOR=`echo $XGETTEXT_RECOMMENDED_VERSION | awk -F. '{ print $ 1; }'`
XGETTEXT_RECOMMENDED_VERSION_MINOR_1=`echo $XGETTEXT_RECOMMENDED_VERSION | awk -F. '{ print $ 2; }'`

XGETTEXT_APPLIED_VERSION=`$XGETTEXT --version | head -1 | cut -d" " -f4`
XGETTEXT_APPLIED_VERSION_MAJOR=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 1; }'`
XGETTEXT_APPLIED_VERSION_MINOR_1=`echo $XGETTEXT_APPLIED_VERSION | awk -F. '{ print $ 2; }'`

have_recommended_xgettext="no"
if test -n "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
    if test "$XGETTEXT_RECOMMENDED_VERSION_MAJOR" -lt "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
        have_recommended_xgettext="yes"
    elif test "$XGETTEXT_RECOMMENDED_VERSION_MAJOR" -eq "$XGETTEXT_APPLIED_VERSION_MAJOR"; then
        if test -n "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then
            if test "$XGETTEXT_RECOMMENDED_VERSION_MINOR_1" -le "$XGETTEXT_APPLIED_VERSION_MINOR_1"; then
                have_recommended_xgettext="yes"
            fi
        fi
    fi
fi
AC_MSG_RESULT($have_recommended_xgettext)

if test "x$have_recommended_xgettext" = "xno"; then
    have_recommended_xgettext="
WARNING: Your gettext version is $XGETTEXT_APPLIED_VERSION.
         The recommended gettext version is $XGETTEXT_RECOMMENDED_VERSION or over.
         If you continue without updating gettext, your build will have partially broken localization."
else
    have_recommended_xgettext=""
fi
518

Sven Neumann's avatar
Sven Neumann committed
519 520 521 522
###########
# iso-codes
###########

523 524 525 526 527
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])
Sven Neumann's avatar
Sven Neumann committed
528
  ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
529 530 531 532 533 534 535 536 537
  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)


538 539 540
###############################
# Checks for required libraries
###############################
541

542
PKG_CHECK_MODULES(BABL, babl >= babl_required_version)
Daniel Sabo's avatar
Daniel Sabo committed
543
PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
544
PKG_CHECK_MODULES(ATK, atk >= atk_required_version)
Sven Neumann's avatar
Sven Neumann committed
545

546
AM_PATH_GLIB_2_0(glib_required_version, :,
Sven Neumann's avatar
Sven Neumann committed
547
  AC_MSG_ERROR(Test for GLIB failed. See the file 'INSTALL' for help.),
548
  gobject)
Sven Neumann's avatar
Sven Neumann committed
549

550
PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
551

552 553
PKG_CHECK_MODULES(GIO, gio-2.0)

554 555 556 557 558 559 560 561 562
if test "$os_win32" != "yes"; then
  PKG_CHECK_MODULES(GIO_UNIX, gio-unix-2.0)
fi

AC_PATH_PROG(GDBUS_CODEGEN, gdbus-codegen, no)
if test "x$GDBUS_CODEGEN" = xno; then
  AC_MSG_ERROR([Could not find gdbus-codegen in your PATH])
fi

563 564 565
AC_MSG_CHECKING([if GLib is version 2.39.0 or newer])
if $PKG_CONFIG --atleast-version=2.39.0 glib-2.0; then
  have_glib_2_39=yes
566
else
567
  have_glib_2_39=no
568
fi
569
AC_MSG_RESULT($have_glib_2_39)
570

Sven Neumann's avatar
Sven Neumann committed
571

572
# Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
573 574
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
575 576 577 578
AC_CHECK_FUNCS(bind_textdomain_codeset,,
  AC_MSG_ERROR([
*** Check for bind_textdomain_codeset() failed!  This is required.
]))
579 580 581 582 583
LIBS=$gimp_save_LIBS


AC_PATH_XTRA

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

587 588 589 590 591
AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
if test "x$GTK_UPDATE_ICON_CACHE" = xno; then
  AC_MSG_ERROR(Could not find gtk-update-icon-cache in your PATH)
fi

592 593 594 595 596
# 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
597
else
598
  have_gtk_2_26=no
599
fi
600
AC_MSG_RESULT($have_gtk_2_26)
601

602
PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= gdk_pixbuf_required_version)
603

604
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
605
if test "x$GDK_PIXBUF_CSOURCE" = xno; then
606 607 608
  AC_MSG_ERROR(Could not find gdk-pixbuf-csource in your PATH)
fi

609 610 611
AC_MSG_CHECKING([if GdkPixbuf is version 2.31.0 or newer])
if $PKG_CONFIG --atleast-version=2.31.0 gdk-pixbuf-2.0; then
  have_gdk_pixbuf_2_31=yes
612
else
613
  have_gdk_pixbuf_2_31=no
614
fi
615
AC_MSG_RESULT($have_gdk_pixbuf_2_31)
616

617
PKG_CHECK_MODULES(CAIRO, cairo >= cairo_required_version)
618

619
PKG_CHECK_MODULES(PANGOCAIRO,
620
	          pangocairo >= pangocairo_required_version pangoft2, :,
621 622 623 624
  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
625
gimp_save_CFLAGS=$CFLAGS
626 627
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"

628 629
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

630 631 632
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
633
else
634
  have_pango_1_32=no
635
fi
636
AC_MSG_RESULT($have_pango_1_32)
637

Sven Neumann's avatar
Sven Neumann committed
638
CFLAGS="$PANGOCAIRO_CFLAGS $CFLAGS"
639 640

AC_MSG_CHECKING([if Pango is built with a recent fontconfig])
641 642 643 644 645 646
AC_COMPILE_IFELSE(
  [AC_LANG_PROGRAM(
    [[#include <fontconfig/fontconfig.h>]],
    [[FcObjectSet *os; os = FcObjectSetBuild (FC_FAMILY, FC_WIDTH);]])],
  [fontconfig_ok=yes],
  [fontconfig_ok=no])
647 648 649 650 651 652 653
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
Sven Neumann's avatar
Sven Neumann committed
654
*** Pango library is using an older version. This old version is probably in
655
*** /usr/X11R6. Look at the above output, and note that the result for
Sven Neumann's avatar
Sven Neumann committed
656
*** FONTCONFIG_CFLAGS is not in the result for PANGOCAIRO_CFLAGS, and that
657 658 659 660 661 662 663
*** there is likely an extra -I line, other than the ones for GLIB,
*** Freetype, and Pango itself. That's where your old fontconfig files are.
*** Rebuild pango, and make sure that it uses the newer fontconfig. The
*** easiest way be sure of this is to simply get rid of the old fontconfig.
*** When you rebuild pango, make sure the result for FONTCONFIG_CFLAGS is
*** the same as the result here.])
fi
Manish Singh's avatar
Manish Singh committed
664

665

666 667
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
if test "x$FREETYPE_CONFIG" != "xno" ; then
668
  AC_MSG_CHECKING([for freetype libraries])
669 670 671 672 673
  FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
  AC_MSG_RESULT($FREETYPE_LIBS)
fi
AC_SUBST(FREETYPE_LIBS)

674 675
PKG_CHECK_MODULES(HARFBUZZ, harfbuzz >= harfbuzz_required_version)

676
PKG_CHECK_MODULES(GEXIV2, gexiv2 >= gexiv2_required_version)
677

678 679 680
##########################################
# Check for some special functions we need
##########################################
Elliot Lee's avatar
Elliot Lee committed
681

David Neary's avatar
ted  
David Neary committed
682 683
AC_CHECK_HEADERS(math.h ieeefp.h)

684
# DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
Manish Singh's avatar
Manish Singh committed
685 686 687
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
gimp_save_LIBS=$LIBS
LIBS="$LIBS -lm"
688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704
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()])
705

706
# Check for finite or isfinite
707 708
AC_CHECK_FUNCS(finite, , [
  AC_MSG_CHECKING(for finite in <math.h>)
709 710 711 712 713 714 715 716 717 718 719 720 721 722 723
  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)])])])
724 725 726
AC_SUBST(HAVE_FINITE)
AC_SUBST(HAVE_ISFINITE)

727 728 729
LIBS=$gimp_save_LIBS


730
# check for rint
731 732 733 734 735 736
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)])])


737 738 739
#####################################################################
# Check for extra libs needed for getaddrinfo, getnameinfo and socket
#####################################################################
740 741 742 743

gimp_save_LIBS=$LIBS
LIBS=""

744
AC_CHECK_FUNCS(getaddrinfo, , AC_CHECK_LIB(nsl, getaddrinfo))
745
AC_CHECK_FUNCS(getnameinfo, , AC_CHECK_LIB(nsl, getnameinfo))
746 747 748 749 750 751 752
AC_CHECK_LIB(socket, socket)

SOCKET_LIBS="$LIBS"
LIBS=$gimp_save_LIBS

AC_SUBST(SOCKET_LIBS)

753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788
###################################
# Check for Intel vector intrinsics
###################################
intrinsics_save_CFLAGS="$CFLAGS"
#FIXME: Check the CFLAGS separatly
GIMP_DETECT_CFLAGS(SSE_MATH_CFLAG, '-mfpmath=sse')
GIMP_DETECT_CFLAGS(SSE2_CFLAG, '-msse2')
SSE2_EXTRA_CFLAGS="$SSE_MATH_CFLAG $SSE2_CFLAG"
CFLAGS="$intrinsics_save_CFLAGS $SSE2_EXTRA_CFLAGS"

AC_MSG_CHECKING(whether we can compile SSE2 intrinsics)
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <emmintrin.h>],[__m128i one = _mm_set1_epi32 (1);])],
  AC_DEFINE(COMPILE_SSE2_INTRINISICS, 1, [Define to 1 if SSE2 intrinsics are available.])
  AC_SUBST(SSE2_EXTRA_CFLAGS)
  AC_MSG_RESULT(yes)
,
  AC_MSG_RESULT(no)
  AC_MSG_WARN([SSE2 intrinsics not available.])
)


GIMP_DETECT_CFLAGS(SSE4_1_CFLAG, '-msse4.1')
SSE4_1_EXTRA_CFLAGS="$SSE_MATH_CFLAG $SSE4_1_CFLAG"
CFLAGS="$intrinsics_save_CFLAGS $SSE4_1_EXTRA_CFLAGS"

AC_MSG_CHECKING(whether we can compile SSE4.1 intrinsics)
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <smmintrin.h>],[__v4sf a, b, c; c = _mm_blend_ps(a, b, 0x08);])],
  AC_DEFINE(COMPILE_SSE4_1_INTRINISICS, 1, [Define to 1 if SSE4.1 intrinsics are available.])
  AC_SUBST(SSE4_1_EXTRA_CFLAGS)
  AC_MSG_RESULT(yes)
,
  AC_MSG_RESULT(no)
  AC_MSG_WARN([SSE4.1 intrinsics not available.])
)
CFLAGS="$intrinsics_save_CFLAGS"

789

790 791 792
########################
# Check for MMX assembly
########################
Manish Singh's avatar
Manish Singh committed
793

794 795 796 797 798 799
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)],,
800
  enable_sse=$enable_mmx)
801 802

if test "x$enable_mmx" = xyes; then
803 804
  GIMP_DETECT_CFLAGS(MMX_EXTRA_CFLAGS, '-mmmx')
  SSE_EXTRA_CFLAGS=
805

Sven Neumann's avatar
Sven Neumann committed
806
  AC_MSG_CHECKING(whether we can compile MMX code)
807

808 809
  mmx_save_CFLAGS="$CFLAGS"
  CFLAGS="$mmx_save_CFLAGS $MMX_EXTRA_CFLAGS"
810

811
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movq 0, %mm0");])],
812

813 814 815
    AC_DEFINE(USE_MMX, 1, [Define to 1 if MMX assembly is available.])
    AC_MSG_RESULT(yes)

816
    if test "x$enable_sse" = xyes; then
817 818
      GIMP_DETECT_CFLAGS(sse_flag, '-msse')
      SSE_EXTRA_CFLAGS="$MMX_EXTRA_CFLAGS $sse_flag"
819 820 821

      AC_MSG_CHECKING(whether we can compile SSE code)

822 823
      CFLAGS="$CFLAGS $sse_flag"

824
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("movntps %xmm0, 0");])],
825 826
        AC_DEFINE(USE_SSE, 1, [Define to 1 if SSE assembly is available.])
        AC_MSG_RESULT(yes)
827
      ,
828 829 830
        enable_sse=no
        AC_MSG_RESULT(no)
        AC_MSG_WARN([The assembler does not support the SSE command set.])
831
      )
832

833
    fi
834
  ,
835 836
    enable_mmx=no
    AC_MSG_RESULT(no)
837
    AC_MSG_WARN([The assembler does not support the MMX command set.])
838
  )
839

840 841 842 843
  CFLAGS="$mmx_save_CFLAGS"

  AC_SUBST(MMX_EXTRA_CFLAGS)
  AC_SUBST(SSE_EXTRA_CFLAGS)
844
fi
845

846 847

############################
848
# Check for AltiVec assembly
849 850 851
############################

AC_ARG_ENABLE(altivec,
852
  [  --enable-altivec        enable AltiVec support (default=auto)],,
853 854 855
  enable_altivec=$have_ppc)

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

857
  GIMP_DETECT_CFLAGS(altivec_flag, '-faltivec' '-maltivec -mabi=altivec')
Manish Singh's avatar
Manish Singh committed
858 859 860 861 862 863 864 865 866 867 868 869 870

  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
871
  AC_SUBST(ALTIVEC_EXTRA_CFLAGS)
872

873
  AC_MSG_CHECKING(whether we can compile AltiVec code)
874

Manish Singh's avatar
Manish Singh committed
875
  can_use_altivec=no
876
  if test -z "$ALTIVEC_EXTRA_CFLAGS"; then
877
    AC_MSG_RESULT(no)
Manish Singh's avatar
Manish Singh committed
878
    AC_MSG_WARN([The compiler does not support the AltiVec command set.])
879 880 881 882 883 884 885 886
  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.])
        ;;
      *)
887
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[asm ("vand %v0, %v0, %v0");])],
888 889 890 891
          can_use_altivec=yes, can_use_altivec=no)
        ;;
    esac
    AC_MSG_RESULT($can_use_altivec)
892

893 894 895 896 897 898 899
    if test "x$can_use_altivec" = "xyes"; then
      AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if AltiVec support is available.])
    else
      enable_altivec=no
      AC_MSG_WARN([The assembler does not support the AltiVec command set.])
    fi
  fi
Manish Singh's avatar
Manish Singh committed
900 901

  enable_altivec="$can_use_altivec"
902
fi
903

904

905 906 907
###################################
# Checks for shared memory handling
###################################
Sven Neumann's avatar
Sven Neumann committed
908

909
# MacOS X has broken SysV shm
910 911
case "$target_or_host" in
  *-*-darwin* | *-*-rhapsody* | *-*-machten*)
912
    shmdefault=posix
913 914 915 916 917 918 919
    ;;
  *)
    shmdefault=sysv
    ;;
esac

shmtype=auto
920
AC_ARG_WITH(shm, [  --with-shm=none|sysv|posix|auto    shared memory transport type (default=auto)], shmtype=$with_shm)
921 922

case $shmtype in
923
  none|sysv|posix) ;;
924
  auto) shmtype=$shmdefault ;;
925
  *) AC_MSG_ERROR([Invalid shared memory transport type: use none, sysv, posix, or auto.]);;
926 927
esac

928 929 930 931

if test "x$platform_win32" = "xyes"; then
  shmtype=win32
elif test "x$shmtype" = "xsysv"; then
932 933
  AC_CHECK_HEADER(sys/ipc.h,
    [AC_DEFINE(HAVE_IPC_H, 1,
934
               [Define to 1 if you have the <sys/ipc.h> header file.])],
935 936 937 938 939
    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)
940

941 942
  if test "$ac_cv_header_sys_shm_h" = "yes"; then
    AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
943 944
    AC_RUN_IFELSE(
      [AC_LANG_SOURCE([[
Elliot Lee's avatar
Elliot Lee committed
945 946 947 948 949 950 951
	#include <sys/types.h>
	#include <sys/ipc.h>
	#include <sys/shm.h>
	int main()
	{
	  int id;
	  char *shmaddr;
952
	id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
Elliot Lee's avatar
Elliot Lee committed
953 954 955 956 957 958 959 960 961 962 963 964 965
	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);
	}
966 967 968 969 970 971
      ]])],
      [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)])
972 973 974 975 976 977

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
978 979 980 981 982 983
  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
984
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
985 986
  fi
  AC_SUBST(RT_LIBS)
987 988 989

  AC_CHECK_HEADER(sys/mman.h,
    [AC_DEFINE(HAVE_MMAN_H, 1,
990
               [Define to 1 if you have the <sys/mman.h> header file.])],
991 992 993
    no_sys_mman=yes)

  if test "$ac_cv_func_mmap" = "yes" &&
994 995
     test "$ac_cv_header_sys_mman_h" = "yes" &&
     test "$have_shm_open" = "yes"; then
996 997 998
    AC_DEFINE(USE_POSIX_SHM, 1, [Define to 1 to use POSIX shared memory])
  else
    shmtype=none
999
  fi
Elliot Lee's avatar
Elliot Lee committed
1000 1001
fi

1002 1003
AC_MSG_CHECKING(for shared memory transport type)
AC_MSG_RESULT($shmtype)
1004

1005

1006 1007 1008 1009 1010 1011
########################
# Define a symbol prefix
########################

AC_MSG_CHECKING([whether symbols are prefixed])

1012 1013
case "$host_os" in
  mingw*)
1014 1015 1016 1017
    case "$host_cpu" in 
	  x86_64) SYMPREFIX='' ;;
	  *) SYMPREFIX='_' ;;
	esac
1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034
    ;;
  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)


1035 1036 1037
############################
# Check for select and fdset
############################
Elliot Lee's avatar
Elliot Lee committed
1038

1039
if test "x$os_win32" != xyes; then
1040
  AC_MSG_CHECKING([fd_set and sys/select])
1041 1042 1043 1044 1045 1046
  AC_COMPILE_IFELSE(
    [AC_LANG_PROGRAM(
      [[#include <sys/types.h>]],
      [[fd_set readMask, writeMask;]])],
    [gimp_ok=yes],
    [gimp_ok=no])
1047
  if test "x$gimp_ok" = xno; then
1048
      AC_EGREP_HEADER(fd_mask, sys/select.h, gimp_ok=yes)
1049
      if test "x$gimp_ok" = xyes; then
1050 1051 1052 1053 1054
	  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)
1055
  if test "x$gimp_ok" = xno; then
1056 1057 1058
      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
1059 1060
fi

1061

1062
#############################
1063
# Threads and multi processor
1064
#############################
1065

1066
AC_ARG_ENABLE(mp, [  --disable-mp            disable support for multiple processors])
1067

1068
if test "x$enable_mp" != "xno"; then
1069 1070
  AC_DEFINE(ENABLE_MP, 1,
	    [Define to 1 to enable support for multiple processors.])
Sven Neumann's avatar
Sven Neumann committed
1071 1072
fi

1073

1074 1075 1076
################################
# Some plug-ins are X11 specific
################################
Sven Neumann's avatar
Sven Neumann committed
1077

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

1081 1082
have_libxmu="no (building for $gdk_target)"

Sven Neumann's avatar
Sven Neumann committed
1083
if test "$gdk_target" = x11; then
1084

1085
   # doc-shooter is X11 specific
1086 1087
   DOC_SHOOTER=doc-shooter

1088
   # screenshot plug-in needs to link to X11 explicitly
1089
   SCREENSHOT_LIBS="$X_LIBS -lX11"
Sven Neumann's avatar
Sven Neumann committed
1090

1091 1092 1093 1094 1095
   gimp_save_CFLAGS="$CFLAGS"
   gimp_save_LDFLAGS="$LDFLAGS"
   CFLAGS="$CFLAGS $GTK_CFLAGS"
   LDFLAGS="$LDFLAGS $X_LIBS"

1096
   # Test for Xmu
1097
   if test -z "$XMU_LIBS"; then
Sven Neumann's avatar
Sven Neumann committed
1098
      AC_CHECK_LIB(Xmu, XmuClientWindow,
1099
        [AC_CHECK_HEADERS(X11/Xmu/WinUtil.h,
1100
	  have_libxmu=yes
1101 1102
          XMU_LIBS="$X_LIBS $X_PRE_LIBS -lX11 -lXmu -lXt"
          SCREENSHOT_LIBS="$XMU_LIBS",
1103 1104
	  [have_libxmu="no (XMU header file not found)"],[#include <gdk/gdkx.h>])],
	[have_libxmu="no (XMU library not found)"], -lXt -lX11)
1105
   fi
1106

1107
   # Check for shaped window extension
1108 1109
   AC_CHECK_LIB(Xext, XShapeGetRectangles,
     [AC_CHECK_HEADERS(X11/extensions/shape.h,
1110
        SCREENSHOT_LIBS="$SCREENSHOT_LIBS -lXext",,[#include <gdk/gdkx.h>])],,
1111 1112 1113 1114
     -lX11 -lXext)

   CFLAGS="$gimp_save_CFLAGS"
   LDFLAGS="$gimp_save_LDFLAGS"
Sven Neumann's avatar
Sven Neumann committed
1115

1116
   # check for the XFixes extension
Sven Neumann's avatar
Sven Neumann committed
1117 1118 1119
   PKG_CHECK_MODULES(XFIXES, xfixes,
      AC_DEFINE(HAVE_XFIXES, 1,
                [Define to 1 to if the XFIXES X extension is available])
1120
      SCREENSHOT_LIBS="$SCREENSHOT_LIBS $XFIXES_LIBS",
1121
      true)
1122
fi
Sven Neumann's avatar
Sven Neumann committed
1123

1124 1125
AC_SUBST(XMU_LIBS)
AC_SUBST(SCREENSHOT_LIBS)
1126

1127
AC_SUBST(DOC_SHOOTER)
1128

1129

1130
GIMP_COMMAND='gimp-gimp_app_version'
1131

1132 1133
AC_SUBST(GIMP_COMMAND)

1134

1135 1136 1137 1138 1139 1140
############
# MIME types
############

# The list of MIME types that are supported by plug-ins that are compiled
# unconditionally:
1141
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"
1142 1143


1144 1145 1146 1147
###################
# Check for libtiff
###################

Sven Neumann's avatar
Sven Neumann committed
1148
AC_ARG_WITH(libtiff,  [  --without-libtiff       build without TIFF support])
1149 1150 1151 1152 1153 1154 1155 1156 1157

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
1158
      [AC_CHECK_HEADER(tiffio.h,
1159
        FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff -ljpeg -lz',
1160
	[have_libtiff="no (TIFF header files not found)"])],
1161
      [AC_CHECK_LIB(tiff34, TIFFFlushData,
Sven Neumann's avatar
Sven Neumann committed
1162
	[AC_CHECK_HEADER(tiffio.h,
1163
          FILE_TIFF_LOAD='file-tiff-load$(EXEEXT)'; FILE_TIFF_SAVE='file-tiff-save$(EXEEXT)'; TIFF_LIBS='-ltiff34 -ljpeg -lz',
1164
	  [have_libtiff="no (TIFF header files not found)"])],
1165 1166
      [have_libtiff="no (TIFF library not found)"], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
fi
Sven Neumann's avatar
Sven Neumann committed
1167

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