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

3
AC_PREREQ(2.54)
4

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

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

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

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

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

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

m4_define([gimp_full_name], [The GIMP])

42
# required versions of other packages
Sven Neumann's avatar
Sven Neumann committed
43
m4_define([glib_required_version], [2.6.0])
44
m4_define([gtk_required_version], [2.6.0])
45
m4_define([gdk_pixbuf_required_version], [gtk_required_version])
46
m4_define([pangoft2_required_version], [1.8.0])
47 48 49 50
m4_define([fontconfig_required_version], [2.2.0])
m4_define([gtkdoc_required_version], [1.0])
m4_define([gtkhtml2_required_version], [2.0.0])
m4_define([gimpprint_required_version], [4.2.0])
51
m4_define([gimpprint_suggested_version], [4.2.6])
52
m4_define([gimpprint_toonew_version], [4.3.0])
53
m4_define([alsa_required_version], [1.0.0])
William Skaggs's avatar
William Skaggs committed
54
m4_define([rsvg_required_version], [2.8.0])
55
m4_define([wmf_required_version], [0.2.8])
56
m4_define([pygtk_required_version], [1.99.15])
57 58 59 60 61 62 63 64 65

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

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

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

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

103

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

113

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

AC_SUBST(GIMP_DESKTOP_ICON)


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

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

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

Manish Singh's avatar
Manish Singh committed
161

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

168
AM_PROG_AS
Elliot Lee's avatar
Elliot Lee committed
169

170 171 172 173
dnl Initialize maintainer mode
AM_MAINTAINER_MODE


174 175 176 177 178 179 180 181 182 183 184 185 186 187
###########################
# Check target architecture
###########################

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

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


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

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

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

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

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

AC_SUBST(WINDRES)
254 255 256 257 258

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

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

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

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

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

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

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

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

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

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

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

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

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

359

360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_HEADER_TIME

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

AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_FUNC_VPRINTF

AC_FUNC_ALLOCA

dnl check some more funcs
AC_CHECK_FUNCS(difftime putenv mmap)


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

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

386
AC_PROG_INTLTOOL
387
AM_GLIB_GNU_GETTEXT
388

389

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

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

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

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

408 409 410 411 412 413 414 415 416
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
gimp_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$gimp_save_LIBS


AC_PATH_XTRA

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

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

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

430 431 432 433 434
AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
if test x$GDK_PIXBUF_CSOURCE = xno; then
  AC_MSG_ERROR(Could not find gdk-pixbuf-csource in your PATH)
fi

435 436
PKG_CHECK_MODULES(LIBART, libart-2.0)

437 438
PKG_CHECK_MODULES(FONTCONFIG, fontconfig >= fontconfig_required_version)

439
PKG_CHECK_MODULES(PANGOFT2, pangoft2 >= pangoft2_required_version, :,
440 441 442
  AC_MSG_ERROR([Test for PangoFT2 failed.
*** We require Pango with the optional support for FreeType2 compiled in.
*** See the file 'INSTALL' for more help.]))
443

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

452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
gimp_save_CFLAGS=$CFLAGS
CFLAGS="$PANGOFT2_CFLAGS $CFLAGS"

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

CFLAGS=$gimp_save_CFLAGS

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

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


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

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

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

510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
dnl Check for finite or isfinite
AC_CHECK_FUNCS(finite, , [
  AC_MSG_CHECKING(for finite in <math.h>)
  AC_TRY_LINK([#include <math.h>], [double f = 0.0; finite (f)], [
    AC_DEFINE(HAVE_FINITE, 1)
    AC_MSG_RESULT(yes)], [
    AC_MSG_RESULT(no)
    AC_MSG_CHECKING(for isfinite in <math.h>)
    AC_TRY_LINK([#include <math.h>], [float f = 0.0; isfinite(f)], [
      AC_DEFINE(HAVE_ISFINITE, 1,
                [Define to 1 if you have the isfinite function.])
      AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])])
AC_SUBST(HAVE_FINITE)
AC_SUBST(HAVE_ISFINITE)

525 526 527 528 529 530 531 532 533 534 535 536 537 538 539
LIBS=$gimp_save_LIBS


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

540 541 542 543 544 545 546
dnl check for rint
AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT, 1,
                              [Define to 1 if you have the rint function.]), [
  AC_CHECK_LIB(m, rint, [
    AC_DEFINE(HAVE_RINT)])])


547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562
######################################################
# Check for extra libs needed for inet_ntoa and socket
######################################################

gimp_save_LIBS=$LIBS
LIBS=""

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

SOCKET_LIBS="$LIBS"
LIBS=$gimp_save_LIBS

AC_SUBST(SOCKET_LIBS)


563 564 565
########################
# Check for MMX assembly
########################
566

567 568 569 570 571 572
AC_ARG_ENABLE(mmx,
  [  --enable-mmx            enable MMX support (default=auto)],,
  enable_mmx=$have_x86)

AC_ARG_ENABLE(sse,
  [  --enable-sse            enable SSE support (default=auto)],,
573
  enable_sse=$enable_mmx)
574 575 576

if test "x$enable_mmx" = xyes; then

577
  AC_MSG_CHECKING(whether we can compile MMX code)
578

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

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

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

      AC_MSG_CHECKING(whether we can compile SSE code)

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

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

604
fi
605

606 607

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

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

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

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

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

646
  AC_MSG_CHECKING(whether we can compile AltiVec code)
647

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

666 667 668 669 670 671 672
    if test "x$can_use_altivec" = "xyes"; then
      AC_DEFINE(USE_ALTIVEC, 1, [Define to 1 if AltiVec support is available.])
    else
      enable_altivec=no
      AC_MSG_WARN([The assembler does not support the AltiVec command set.])
    fi
  fi
Manish Singh's avatar
Manish Singh committed
673 674

  enable_altivec="$can_use_altivec"
675
fi
676

677

678 679 680
###################################
# Checks for shared memory handling
###################################
681

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

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

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

701 702 703 704

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

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

    AC_DEFINE(USE_SYSV_SHM, 1, [Define to 1 to use SYSV shared memory])
  else
    shmtype=none
  fi
elif test "x$shmtype" = "xposix"; then
750 751 752 753 754 755
  have_shm_open=no

  AC_CHECK_FUNC(shm_open, have_shm_open=yes)

  RT_LIBS=
  if test "$have_shm_open" != "yes"; then
Manish Singh's avatar
Manish Singh committed
756
    AC_CHECK_LIB(rt, shm_open, RT_LIBS="-lrt" have_shm_open=yes)
757 758
  fi
  AC_SUBST(RT_LIBS)
759 760 761

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

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

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

777

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

AC_MSG_CHECKING([whether symbols are prefixed])

784 785
case "$host_os" in
  mingw*)
786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803
    SYMPREFIX='_'
    ;;
  darwin* | rhapsody* | machten*)
    SYMPREFIX='_'
    ;;
  *)
    ;;
esac

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

AC_SUBST(SYMPREFIX)


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

808 809 810 811 812 813 814 815 816 817 818 819
AC_MSG_CHECKING(checking for regex in glibc)
AC_TRY_RUN([
#include <features.h>
#include <stdio.h>
#include <regex.h>
int main()
{
#if __GLIBC__ >= 2
  return (0);
#else
  return (1);
#endif
820 821
}], AC_DEFINE(HAVE_GLIBC_REGEX, 1,
              [Define to 1 if glibc has regex support.])
822
    have_glibc_regex=yes
823 824 825
    AC_MSG_RESULT(yes),
    AC_MSG_RESULT(no),
    AC_MSG_RESULT(assuming no))
826
AM_CONDITIONAL(HAVE_GLIBC_REGEX, test x$have_glibc_regex = xyes)
827

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

David Neary's avatar
ted  
David Neary committed
830

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

835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850
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
851 852
fi

853 854 855
#############################
# Threads and multi processor 
#############################
856

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

865
if test "x$GIMP_UNSTABLE" = "xyes"; then
Sven Neumann's avatar
Sven Neumann committed
866 867 868 869
  AC_ARG_ENABLE(threaded-tile-swapper, [  --enable-threaded-tile-swapper  (experimental)])
  if test "x$enable_threaded_tile_swapper" = "xyes"; then
    PKG_CHECK_MODULES(GTHREAD, gthread-2.0,
      [AC_DEFINE(ENABLE_THREADED_TILE_SWAPPER, 1,
870
	       [Define to 1 to enable the experimental threaded tile-swapper.])]
Sven Neumann's avatar
Sven Neumann committed
871 872
    )
  fi
873 874
fi

875 876 877 878

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

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

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

904
fi
Sven Neumann's avatar
Sven Neumann committed
905

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


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

Sven Neumann's avatar
Sven Neumann committed
915 916 917 918
AC_ARG_WITH(libtiff,  [  --without-libtiff       build without TIFF support])
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
    AC_CHECK_LIB(tiff, TIFFReadScanline,
      [AC_CHECK_HEADER(tiffio.h,
919
	TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff',
Sven Neumann's avatar
Sven Neumann committed
920 921 922
	[AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
	[AC_CHECK_HEADER(tiffio.h,
923
          TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
924 925 926
	  [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
	[AC_CHECK_LIB(tiff34, TIFFFlushData,
	  [AC_CHECK_HEADER(tiffio.h,
927
            TIFF='tiff$(EXEEXT)'; LIBTIFF='-ltiff34 -ljpeg -lz',
Sven Neumann's avatar
Sven Neumann committed
928 929 930 931 932 933 934 935 936 937
	    [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF header files not found) ***)])],
        [AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***)], -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
  fi

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

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


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

AC_ARG_WITH(libjpeg,  [  --without-libjpeg       build without JPEG support])
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
    AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
      jpeg_ok=yes,
      [jpeg_ok=no
      AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG library not found) ***)
      AC_MSG_WARN(*** XJT plug-in will not be built (JPEG library not found) ***)])
    if test "$jpeg_ok" = yes; then
      AC_MSG_CHECKING([for jpeglib.h])
      AC_TRY_CPP([
#include <stdio.h>
#undef HAVE_STDDEF_H
#undef HAVE_STDLIB_H
#undef PACKAGE
#undef VERSION
#include <jpeglib.h>],
	jpeg_ok=yes,
	jpeg_ok=no)
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
966 967 968 969 970
	AC_CHECK_LIB(jpeg, jpeg_save_markers,
	JPEG='jpeg$(EXEEXT)'; LIBJPEG='-ljpeg',
        [jpeg_ok=no
        AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG library is too old) ***)
        AC_MSG_WARN(*** XJT plug-in will not be built (JPEG library is too old) ***)])
Sven Neumann's avatar
Sven Neumann committed
971 972 973 974 975 976 977 978 979 980 981 982 983
      else
	AC_MSG_WARN(*** JPEG plug-in will not be built (JPEG header file not found) ***)
        AC_MSG_WARN(*** XJT plug-in will not be built (JPEG header file not found) ***)
      fi
    fi
  fi

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

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

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

Sven Neumann's avatar
Sven Neumann committed
991

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

if test -z "$LIBZ"; then
  AC_CHECK_LIB(z, gzsetparams,
    [AC_CHECK_HEADER(zlib.h,
999
      PSP='psp$(EXEEXT)'; LIBZ='-lz',
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
      [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB header files not found) ***)])],
    [AC_MSG_WARN(*** PSP and PNG plug-ins will not be built (ZLIB library not found) ***)])
fi

AC_SUBST(LIBZ)
AC_SUBST(PSP)


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

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

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

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


1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056
##################
# Check for libmng
##################

AC_ARG_WITH(libmng,  [  --without-libmng        build without MNG support])
  if test x$with_libmng != xno && test -z "$LIBMNG" &&
     test -n "$LIBPNG" && test -n "$LIBJPEG" && test -n "$LIBZ"; then
    AC_CHECK_LIB(mng, mng_create,
      [AC_CHECK_HEADER(libmng.h, mng_ok=yes)],
      [AC_MSG_WARN(*** MNG plug-in will not be built (MNG library not found) ***)], -lz -lm)
    if test "$mng_ok" = yes; then
1057
      MNG='mng$(EXEEXT)'; LIBMNG="-lmng $LIBJPEG $LIBPNG"
1058 1059 1060 1061 1062 1063 1064 1065 1066
    else
      AC_MSG_WARN(*** MNG plug-in will not be built (MNG header file not found) ***)
    fi
  fi

AC_SUBST(MNG)
AC_SUBST(LIBMNG)


1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079
############################################################
# libexif: Library to allow exif tags to be read from, and
# saved to, jpeg files. Currently, this permits exif data to
# avoid destruction, but no data modification is performed.
############################################################

AC_ARG_WITH(libexif,  [  --without-libexif       build without EXIF support])
if test x$with_libexif != xno && test -z "$LIBEXIF" && test -n "$LIBJPEG"; then
  PKG_CHECK_MODULES(EXIF, libexif, 
    AC_DEFINE(HAVE_EXIF, 1, "Define to 1 if libexif is available"),
    AC_MSG_WARN([libexif not found!
EXIF support will not be built into the JPEG plug-in. 
libexif is available from http://www.sourceforge.net/projects/libexif]))
1080 1081 1082 1083 1084 1085 1086 1087 1088 1089
  AC_MSG_CHECKING([if libexif is version 0.6.0 or newer])
  if $PKG_CONFIG --atleast-version=0.6.0 libexif; then
    have_exif_0_6=yes
  else
    have_exif_0_6=no
  fi
  AC_MSG_RESULT($have_exif_0_6)
  if test x$have_exif_0_6 == xyes; then
    AC_DEFINE(HAVE_EXIF_0_6, 1, "Define to 1 if libexif is at least version 0.6.0")
  fi
1090 1091
fi

1092 1093
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
1094

1095

1096 1097 1098
#################
# Check for libaa
#################
1099

1100

1101
AC_ARG_WITH(aa,  [  --without-aa            do not build the AA plug-in])
1102
if test x$with_aa != xno && test -z "$LIBAA"; then
1103 1104
  AC_CHECK_LIB(aa, aa_printf,
    [AC_CHECK_HEADER(aalib.h,
1105
      AA='aa$(EXEEXT)'; LIBAA='-laa',
1106 1107 1108
      [AC_MSG_WARN(*** AA plug-in will not be built (AA header file not found) ***)])],
    [AC_MSG_WARN(*** AA plug-in will not be built (AA library not found) ***)])
fi
1109

1110 1111
AC_SUBST(AA)
AC_SUBST(LIBAA)
1112

1113

1114 1115 1116
##################
# Check for libxpm
##################
1117

1118 1119
gimp_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $X_CFLAGS"
1120 1121 1122 1123
gimp_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $X_LIBS"
if test "$gdk_target" = x11; then
  lib_X11=-lX11
1124
fi
1125 1126 1127
if test -z "$LIBXPM"; then
  AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage,
    [AC_CHECK_HEADER(X11/xpm.h,
1128
      XPM='xpm$(EXEEXT)'; LIBXPM="$X_LIBS $X_PRE_LIBS $lib_X11 -lXpm",
1129 1130
      [AC_MSG_WARN(*** XPM plug-in will not be built (XPM header file not found) ***)])],
    [AC_MSG_WARN(*** XPM plug-in will not be built (XPM library not found) ***)], $X_PRE_LIBS $lib_X11)
Sven Neumann's avatar
Sven Neumann committed
1131
fi
1132
CFLAGS="$gimp_save_CFLAGS"
1133
LDFLAGS="$gimp_save_LDFLAGS"
Sven Neumann's avatar
Sven Neumann committed
1134

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

1138

1139 1140 1141 1142
####################
# Check for gtkhtml2
####################

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

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

1149

1150 1151 1152 1153
###################
# Check for librsvg
###################

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

1159 1160 1161 1162
AC_SUBST(SVG)
AC_SUBST(LIBSVG)


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

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

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


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

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

have_gimp_print=no
if test "x$enable_print" != "xno"; then
  AM_PATH_GIMPPRINT(gimpprint_required_version,
    [print_version=`$GIMPPRINT_CONFIG --version`
      if expr $print_version \>= gimpprint_toonew_version >/dev/null; then
        AC_MSG_WARN([
1186 1187
*** libgimpprint version $print_version is too new.
*** It is likely an unstable development version.
1188
*** You need a version before gimpprint_toonew_version.])
1189
      else
1190
        have_gimp_print=yes
1191 1192 1193 1194 1195 1196
dnl sanity check to avoid bug #125283
        if expr $print_version \< gimpprint_suggested_version >/dev/null; then
          AC_MSG_WARN([
*** libgimpprint version $print_version causes problems under certain locales.
*** We strongly suggest you upgrade to version gimpprint_suggested_version.])
        fi
1197
      fi
1198 1199
    ])
fi
1200

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

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


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

AC_PATH_PROG(WMF_CONFIG, libwmf-config, no)
if test "x$WMF_CONFIG" != "xno" ; then
1220
  AC_MSG_CHECKING(for libwmf >= wmf_required_version)
1221
  wmf_version=`$WMF_CONFIG --version`
1222
  if expr $wmf_version \>= wmf_required_version >/dev/null; then
1223
    AC_MSG_RESULT([yes (version $wmf_version)])
1224
    WMF='wmf$(EXEEXT)'
1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
    LIBWMF=`$WMF_CONFIG --libs`
    WMF_CFLAGS=`$WMF_CONFIG --cflags`
  else
    AC_MSG_WARN([*** WMF plug-in will not be built (libwmf is too old)])
  fi
else
  AC_MSG_WARN([*** WMF plug-in will not be built (libwmf not found) ***])
fi
AC_SUBST(LIBWMF)
AC_SUBST(WMF_CFLAGS)


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

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

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

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


1262 1263 1264 1265 1266 1267 1268 1269 1270
################
# Check for alsa
################

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


Sven Neumann's avatar
Sven Neumann committed
1271 1272 1273 1274
#######################
# Check for linux input
#######################

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

Sven Neumann's avatar
Sven Neumann committed
1278
have_linux_input=no
1279 1280 1281
if test "x$with_linux_input" != "xno"; then
  AC_CHECK_HEADER(linux/input.h, have_linux_input=yes)
fi
Sven Neumann's avatar
Sven Neumann committed
1282 1283 1284 1285

AM_CONDITIONAL(HAVE_LINUX_INPUT, test $have_linux_input = yes)


1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305
############################################################
# GIF compression: Allow builder to specify at compile time
# which compression style she wants to use for GIFs.
# LZW: Unisys patented Lempel-Ziff encoding.
# RLE: Runlength encoding (produces files about twice as big
#			   as the LZW compressed equivalent).
# None: Raw data.
############################################################

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

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


1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322
####################
# Check for sendmail
####################

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

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

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


1325 1326 1327 1328
################
# Check for perl
################

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


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

AM_CONDITIONAL(WITH_PDBGEN, test x$with_pdbgen = xyes)


1339 1340 1341 1342
##################
# Check for python
##################

1343
dnl Pygimp configure stuff ...
Manish Singh's avatar
Manish Singh committed
1344
AC_ARG_ENABLE(python,
Manish Singh's avatar
Manish Singh committed
1345 1346
  AC_HELP_STRING([--disable-python],
                 [do not build the python extension]))
Manish Singh's avatar
Manish Singh committed
1347 1348 1349

if test "x$enable_python" != xno; then
  dnl check for Python
1350
  AM_PATH_PYTHON(2.2.1)
Manish Singh's avatar
Manish Singh committed
1351 1352 1353
  AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])

  dnl check for PyGTK
1354
  PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= pygtk_required_version)
1355

1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
  AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
  if test "x$PYGTK_CODEGEN" = xno; then
    AC_MSG_ERROR(could not find pygtk-codegen-2.0 script)
  fi

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

1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383
  dnl enable -fno-strict-aliasing if compiler supports it
  PYGIMP_EXTRA_CFLAGS=
  case " $CFLAGS " in
  *@<:@\	\ @:>@-fno-strict-aliasing@<:@\	\ @:>@*)
    ;;
  *)
    pygimp_save_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS -fno-strict-aliasing"
    AC_MSG_CHECKING([whether [$]CC understands -fno-strict-aliasing])
    AC_TRY_COMPILE([], [], [pygimp_has_option=yes], [pygimp_has_option=no])
    AC_MSG_RESULT($pygimp_has_option)
    CFLAGS="$pygimp_save_CFLAGS"
    if test "x$pygimp_has_option" = "xyes"; then
      PYGIMP_EXTRA_CFLAGS="-fno-strict-aliasing"
    fi
    ;;
  esac
  AC_SUBST(PYGIMP_EXTRA_CFLAGS)
Manish Singh's avatar
Manish Singh committed
1384 1385 1386
fi
AM_CONDITIONAL(BUILD_PYTHON, test "x$enable_python" != xno)

1387

Tor Lillqvist's avatar
Tor Lillqvist committed
1388 1389 1390 1391 1392
###########################################################
# Some plug-ins don't build on Win32, others are Win32-only
###########################################################

if test x"$os_win32" = xyes; then
1393
  WINPRINT='winprint$(EXEEXT)'
Tor Lillqvist's avatar
Tor Lillqvist committed
1394
else
1395 1396
  MAIL='mail$(EXEEXT)'
  SCREENSHOT='screenshot$(EXEEXT)'
Tor Lillqvist's avatar
Tor Lillqvist committed
1397 1398 1399 1400 1401
fi

AC_SUBST(MAIL)
AC_SUBST(SCREENSHOT)
AC_SUBST(WINPRINT)
1402
AC_SUBST(WMF)