configure.ac 65.8 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1
# Process this file with autoconf to produce a configure script.
2
# require autoconf 2.54
3
AC_PREREQ([2.62])
4 5 6 7 8 9 10 11 12 13

# Making releases:
#   GTK_MICRO_VERSION += 1;
#   GTK_INTERFACE_AGE += 1;
#   GTK_BINARY_AGE += 1;
# if any functions have been added, set GTK_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.

m4_define([gtk_major_version], [2])
14
m4_define([gtk_minor_version], [90])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [2])
Javier Jardón's avatar
Javier Jardón committed
16
m4_define([gtk_interface_age], [0])
Owen Taylor's avatar
Owen Taylor committed
17 18
m4_define([gtk_binary_age],
          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
19 20
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
21
# This is the X.Y used in -lgtk-FOO-X.Y
22
m4_define([gtk_api_version], [3.0])
23 24

# Define a string for the earliest version that this release has
25 26 27 28
# backwards binary compatibility with for all interfaces a module
# might. Unless we add module-only API with lower stability
# guarantees, this should be unchanged until we break binary compat
# for GTK+.
29 30
#
#GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
31
m4_define([gtk_binary_version], [3.0.0])
32 33

# required versions of other packages
34
m4_define([glib_required_version], [2.23.6])
35
m4_define([pango_required_version], [1.20])
36
m4_define([atk_required_version], [1.29.2])
37
m4_define([cairo_required_version], [1.6])
38 39 40


AC_INIT([gtk+], [gtk_version],
41
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42 43
	[gtk+])

44
AC_CONFIG_HEADER([config.h])
45
AC_CONFIG_SRCDIR([gdk/gdktypes.h])
46 47
AC_CONFIG_MACRO_DIR([m4])

48 49 50
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}

51 52
AM_INIT_AUTOMAKE([1.10 no-define -Wno-portability dist-bzip2])
AM_MAINTAINER_MODE([enable])
Elliot Lee's avatar
Elliot Lee committed
53

54 55 56 57 58
# Support silent build rules, requires at least automake-1.11. Enable
# by either passing --enable-silent-rules to configure or passing V=0
# to make
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])

59
#
60 61 62 63 64 65 66 67
# For each of the libraries we build, we define the following
# substituted variables:
#
# foo_PACKAGES:     pkg-config packages this library requires
# foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
# foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
# foo_DEP_LIBS:     All libraries this module requires
# foo_DEP_CFLAGS:   All cflags this module requires
68 69


70 71 72 73 74 75 76 77
GTK_MAJOR_VERSION=gtk_major_version
GTK_MINOR_VERSION=gtk_minor_version
GTK_MICRO_VERSION=gtk_micro_version
GTK_INTERFACE_AGE=gtk_interface_age
GTK_BINARY_AGE=gtk_binary_age
GTK_VERSION=gtk_version
GTK_API_VERSION=gtk_api_version
GTK_BINARY_VERSION=gtk_binary_version
78 79 80
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
81 82
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
Owen Taylor's avatar
Owen Taylor committed
83
AC_SUBST(GTK_API_VERSION)
84
AC_SUBST(GTK_VERSION)
85
AC_SUBST(GTK_BINARY_VERSION)
86 87

# libtool versioning
88 89 90 91 92 93
#LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
#LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
#LT_REVISION=$GTK_INTERFACE_AGE
#LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
#LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

94 95 96 97 98 99
m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
m4_define([lt_revision], [gtk_interface_age])
m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_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)
Tor Lillqvist's avatar
Tor Lillqvist committed
100
AC_SUBST(LT_CURRENT_MINUS_AGE)
101

102 103
m4_define([gail_lt_current],[0])
m4_define([gail_lt_revision],[0])
104 105 106 107 108
m4_define([gail_lt_age],[0])
m4_define([gail_lt_version_info],[gail_lt_current:gail_lt_revision:gail_lt_age])
m4_define([gail_lt_current_minus_age],[m4_eval(gail_lt_current - gail_lt_age)])
AC_SUBST([GAIL_LT_VERSION_INFO],[gail_lt_version_info])
AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age])
109

110 111 112 113
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
114 115 116
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
117 118 119 120 121 122
GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
AC_SUBST(GDK_PIXBUF_MAJOR)
AC_SUBST(GDK_PIXBUF_MINOR)
AC_SUBST(GDK_PIXBUF_MICRO)
AC_SUBST(GDK_PIXBUF_VERSION)

123 124 125 126 127 128 129 130
# Checks for programs.
AC_PROG_CC
AC_PROG_CC_C_O
AC_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET


131
GETTEXT_PACKAGE=gtk30
132
AC_SUBST(GETTEXT_PACKAGE)
133 134
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
135

136 137
AC_CANONICAL_HOST

138 139
MATH_LIB=-lm
AC_MSG_CHECKING([for native Win32])
140
LIB_EXE_MACHINE_FLAG=X86
141
EXE_MANIFEST_ARCHITECTURE=X86
142 143 144
case "$host" in
  *-*-mingw*)
    os_win32=yes
145
    gio_can_sniff=no
146
    MATH_LIB=
147 148 149
    case "$host" in
    x86_64-*-*)
      LIB_EXE_MACHINE_FLAG=X64
150
      EXE_MANIFEST_ARCHITECTURE=AMD64
151 152
      ;;
    esac
153 154 155 156 157 158
    ;;
  *)
    os_win32=no
    ;;
esac
AC_MSG_RESULT([$os_win32])
Elliot Lee's avatar
Elliot Lee committed
159

160
AC_SUBST(LIB_EXE_MACHINE_FLAG)
161
AC_SUBST(EXE_MANIFEST_ARCHITECTURE)
162

163 164 165 166 167
case $host in
  *-*-linux*)
    os_linux=yes
    ;;
esac
168

169
dnl
170 171
dnl Check for a working C++ compiler, but do not bail out, if none is found.
dnl We use this for an automated test for C++ header correctness.
172
dnl
173
AC_CHECK_TOOLS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
174
AC_LANG_PUSH([C++])
175

176 177
AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
178 179 180 181

gtk_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -x objective-c++"
AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no)
182
AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" = "yes")
183
CXXFLAGS="$gtk_save_cxxflags"
184
AC_LANG_POP([C++])
185

Tor Lillqvist's avatar
Tor Lillqvist committed
186
if test "$os_win32" = "yes"; then
187 188 189 190 191 192 193 194 195 196
  if test x$enable_static = xyes -o x$enable_static = x; then
    AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
    enable_static=no
  fi
  if test x$enable_shared = xno; then
    AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
  fi
  enable_shared=yes
fi

197 198 199 200 201
dnl Initialize libtool
LT_PREREQ([2.2.6])
LT_INIT([disable-static win32-dll])
# Create libtool early, because it's used in configure
LT_OUTPUT
Elliot Lee's avatar
Elliot Lee committed
202

203 204 205
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

206
AM_PROG_AS
Matthias Clasen's avatar
Matthias Clasen committed
207
AC_PATH_PROG(NM, nm, nm)
208

Tor Lillqvist's avatar
Tor Lillqvist committed
209 210 211 212 213 214 215 216 217 218 219 220 221
AC_MSG_CHECKING([for some Win32 platform])
case "$host" in
  *-*-mingw*|*-*-cygwin*)
    platform_win32=yes
    ;;
  *)
    platform_win32=no
    ;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")

AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
222
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
223
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
224 225

if test "$os_win32" = "yes"; then
226 227 228 229
  AC_CHECK_TOOL(WINDRES, windres, no)
  if test "$WINDRES" = no; then
    AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
  fi
Tor Lillqvist's avatar
Tor Lillqvist committed
230 231 232 233
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

234 235
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
236 237

dnl declare --enable-* args and collect ac_help strings
238 239 240 241 242 243
AC_ARG_ENABLE(debug,
              AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
                             [turn on debugging @<:@default=debug_default@:>@]),,
              enable_debug=debug_default)
AC_ARG_ENABLE(shm,
              [AC_HELP_STRING([--enable-shm],
244 245
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
246 247 248 249
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
250 251 252
AC_ARG_ENABLE(xinerama,
              [AC_HELP_STRING([--enable-xinerama],
	                      [support xinerama extension if available [default=yes]])],,
253
              [enable_xinerama="yes"])
254 255 256 257
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
258 259
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
260
                              [do not use ELF visibility attributes])],,
261
              [enable_visibility=yes])
262 263 264 265

AC_ARG_WITH(xinput,
            [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])

Tor Lillqvist's avatar
Tor Lillqvist committed
266 267 268 269 270 271
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

272
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
273 274 275 276
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
277 278
  x11|win32|quartz|directfb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
279 280
esac

Owen Taylor's avatar
Owen Taylor committed
281 282
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
283 284 285 286

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

287
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
288
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
289
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES"
Elliot Lee's avatar
Elliot Lee committed
290
else
291
  if test "x$enable_debug" = "xno"; then
292
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
293
  else
294
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
295
  fi
Elliot Lee's avatar
Elliot Lee committed
296 297
fi

298

299 300 301 302 303
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


304 305
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
                   [Define if debugging is enabled])
306

307

Elliot Lee's avatar
Elliot Lee committed
308 309 310
# Build time sanity check...
AM_SANITY_CHECK

Raja R Harinath's avatar
Raja R Harinath committed
311
changequote(,)dnl
312
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
313 314 315 316
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
317

318
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
319 320 321 322 323 324 325 326 327
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
328
  fi
329 330
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
331

332
CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES"
333

334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
# 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
	;;
Tor Lillqvist's avatar
Tor Lillqvist committed
358
    esac
359 360 361 362 363 364 365
    if test x"$msnative_struct" = x ; then
      AC_MSG_RESULT([no way])
      AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
    else
      CFLAGS="$CFLAGS $msnative_struct"
      AC_MSG_RESULT([${msnative_struct}])
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
366
  fi
Elliot Lee's avatar
Elliot Lee committed
367 368
fi

369
## Initial sanity check, done here so that users get told they
370 371
## have the wrong dependencies as early in the process as possible.
## Later on we actually use the cflags/libs from separate pkg-config
372 373
## calls. Oh, also the later pkg-config calls don't include
## the version requirements since those make the module lists
374
## annoying to construct
375 376 377
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
378 379
   pango >= pango_required_version dnl
   cairo >= cairo_required_version])
380

381 382 383 384 385 386 387 388 389 390 391 392 393
## In addition to checking that cairo is present, we also need to
## check that the correct cairo backend is there. E.g. if the GDK
## target is win32 we need the cairo-win32 backend and so on.
cairo_backend=$gdktarget

# GDK calls the xlib backend "x11," cairo calls it "xlib." Other
# backend names are identical.
if test "x$cairo_backend" = "xx11"; then
   cairo_backend=xlib
fi
PKG_CHECK_MODULES(CAIRO_BACKEND,
  [cairo-$cairo_backend >= cairo_required_version])

Tor Lillqvist's avatar
Tor Lillqvist committed
394 395 396 397 398 399 400 401
if test "$os_win32" != yes; then
    # libtool option to control which symbols are exported
    # right now, symbols starting with _ are not exported
    LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
else
    # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
    LIBTOOL_EXPORT_OPTIONS=
fi
402 403
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

404 405 406 407
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

408
AC_ARG_ENABLE(explicit-deps,
409 410 411
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
412 413 414 415

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
416
    export SED
417
    deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
418
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
419
      enable_explicit_deps=yes
420
    else
421
      enable_explicit_deps=no
422 423
    fi
  ;;
424
  yes|no)
425 426 427 428 429 430 431 432
  ;;
  *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
  ;;
esac
AC_MSG_RESULT($enable_explicit_deps)

AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)

433
# define a MAINT-like variable REBUILD which is set if Perl
434 435
# and awk are found, so autogenerated sources can be rebuilt

436
AC_PATH_PROGS(PERL, perl5 perl)
437

438 439 440
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

441
REBUILD=\#
442 443
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
444
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
445
  REBUILD=
446 447
fi
AC_SUBST(REBUILD)
448

449
AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
450
AC_CHECK_FUNCS(localtime_r)
451 452 453 454 455 456 457 458 459 460 461 462

# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
	    [Define if _NL_TIME_FIRST_WEEKDAY is available])
fi
463

464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
	    [Define if _NL_MEASUREMENT_MEASUREMENT is available])
fi

# _NL_PAPER_HEIGHT is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
	    [Define if _NL_PAPER_HEIGHT is available])
fi

# _NL_PAPER_WIDTH is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
	    [Define if _NL_PAPER_WIDTH is available])
fi
499

500 501 502 503 504 505 506 507
# sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
AC_MSG_CHECKING(for sigsetjmp)
AC_TRY_LINK([#include <setjmp.h>], [
sigjmp_buf env;
sigsetjmp(env, 0);
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
508 509
  AC_DEFINE(HAVE_SIGSETJMP, 1,
            [Define to 1 if sigsetjmp is available])
510
fi
Tor Lillqvist's avatar
Tor Lillqvist committed
511

Owen Taylor's avatar
Owen Taylor committed
512
# i18n stuff
Matthias Clasen's avatar
Matthias Clasen committed
513
ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
514
AM_GLIB_GNU_GETTEXT
515
LIBS="$LIBS $INTLLIBS"
516 517 518
AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
        sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
      esac])
519

520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539
dnl Snippet below is copied from AM_GLIB_GNU_GETTEXT to generate a first
dnl po-properties/POTFILES during configure; see GNOME #573515.
dnl
dnl Generate list of files to be processed by xgettext which will
dnl be included in po-properties/Makefile.
test -d po-properties || mkdir po-properties
if test "x$srcdir" != "x."; then
  if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
    popropsrcprefix="$srcdir/"
  else
    popropsrcprefix="../$srcdir/"
  fi
else
  popropsrcprefix="../"
fi
rm -f po-properties/POTFILES
sed -e "/^#/d" -e "/^\$/d" -e "s,.*,	$popropsrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
< $srcdir/po-properties/POTFILES.in > po-properties/POTFILES
dnl (End of adapted AM_GLIB_GNU_GETTEXT snippet.)

540
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
541

542
dnl The DU4 header files don't provide library prototypes unless
543
dnl -std1 is given to the native cc.
Manish Singh's avatar
Manish Singh committed
544
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
545

546
gtk_save_LIBS=$LIBS
547 548 549 550
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
551
     gtk_save_CFLAGS="$CFLAGS"
552 553 554 555 556
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
557
         CFLAGS="$gtk_save_CFLAGS"
558
         AC_MSG_WARN(
559 560 561 562
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
563 564 565
)
LIBS=$gtk_save_LIBS

566 567 568
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
569
    AC_MSG_RESULT(yes)
570 571
    MATH_LIB=
  ;;
572 573
  *)
    AC_MSG_RESULT(no)
574 575
  ;;
esac
576

Benjamin Otte's avatar
Benjamin Otte committed
577
AC_SUBST(MATH_LIB)
578 579 580 581 582 583 584 585 586 587 588 589 590
#
# see bug 162979
#
AC_MSG_CHECKING(for HP-UX)
case $host_os in
  hpux9* | hpux10* | hpux11*)
    AC_MSG_RESULT(yes)
    CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
  ;;
  *)
    AC_MSG_RESULT(no)
  ;;
esac
591

592 593 594 595
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),
596
  gtk_save_CFLAGS="$CFLAGS"
597 598 599 600
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
601
    CFLAGS="$gtk_save_CFLAGS"
602 603
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

604
#
Owen Taylor's avatar
Owen Taylor committed
605
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
606
#
607

608
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
609

610
AM_PATH_GLIB_2_0(glib_required_version, :,
611
  AC_MSG_ERROR([
612
*** GLIB glib_required_version or better is required. The latest version of
613
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
614
  gobject gmodule-no-export gthread)
615

616 617 618 619 620 621 622
# See if it's safe to turn G_DISABLE_DEPRECATED on.
GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
  CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
fi

623 624
CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"

625

Owen Taylor's avatar
Owen Taylor committed
626 627 628 629 630 631 632 633
dnl
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
dnl
gtk_save_LIBS=$LIBS
LIBS="$LIBS $GLIB_LIBS"
AC_CHECK_FUNCS(bind_textdomain_codeset)
LIBS=$gtk_save_LIBS

634 635 636 637 638 639 640 641 642 643 644 645
AC_CHECK_HEADERS(pwd.h,
                 AC_DEFINE(HAVE_PWD_H, 1,
                           [Define to 1 if pwd.h is available]))
AC_CHECK_HEADERS(sys/time.h,
                 AC_DEFINE(HAVE_SYS_TIME_H, 1,
                           [Define to 1 if time.h is available]))
AC_CHECK_HEADERS(unistd.h,
                 AC_DEFINE(HAVE_UNISTD_H, 1,
                           [Define to 1 if unistd.h is available]))
AC_CHECK_HEADERS(ftw.h,
                 AC_DEFINE(HAVE_FTW_H, 1,
                           [Define to 1 if ftw.h is available]))
646

647 648 649 650 651 652
AC_MSG_CHECKING([for GNU ftw extensions])
AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
#define _GNU_SOURCE
#include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes])
653
    AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
654 655 656 657
else
    AC_MSG_RESULT([no])
fi

658 659 660
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

661

662 663
# Checks for header files.
AC_HEADER_STDC
664

665 666
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
667

668 669 670
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
671

Matthias Clasen's avatar
Matthias Clasen committed
672
AC_CHECK_FUNCS(mallinfo)
673 674
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
675

676 677 678 679 680 681 682 683 684
# Check if <sys/select.h> needs to be included for fd_set
AC_MSG_CHECKING([for fd_set])
AC_TRY_COMPILE([#include <sys/types.h>],
        [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes, found in sys/types.h])
else
    AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
    if test $gtk_ok = yes; then
685 686
        AC_DEFINE(HAVE_SYS_SELECT_H, 1,
                  [Define to 1 if sys/select.h is available])
687 688
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
689 690
	AC_DEFINE(NO_FD_SET, 1,
                  [Define to 1 if fd_set is not available])
691 692 693
	AC_MSG_RESULT(no)
    fi
fi
694

695 696 697 698
# `widechar' tests for gdki18n.h
AC_MSG_CHECKING(for wchar.h)
AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
if test $gdk_wchar_h = yes; then
699
   AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
700 701
fi
AC_MSG_RESULT($gdk_wchar_h)
702

703 704 705 706
# Check for wctype.h (for iswalnum)
AC_MSG_CHECKING(for wctype.h)
AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
if test $gdk_wctype_h = yes; then
707
   AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
708 709
fi
AC_MSG_RESULT($gdk_wctype_h)
710

711 712 713
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
714

715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733
oLIBS="$LIBS"
LIBS="$LIBS $GDK_WLIBS"
# The following is necessary for Linux libc-5.4.38
AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
AC_TRY_LINK([#include <stdlib.h>],[
#if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
#  ifdef HAVE_WCTYPE_H
#    include <wctype.h>
#  else
#    ifdef HAVE_WCHAR_H
#      include <wchar.h>
#    endif
#  endif
#else
#  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
#endif
iswalnum((wchar_t) 0);
], gdk_working_wctype=yes, gdk_working_wctype=no)
LIBS="$oLIBS"
734

735
if test $gdk_working_wctype = no; then
736
   AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
737 738 739 740
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Havoc Pennington committed
741

742 743 744 745
# Check for uxtheme.h (for MS-Windows Engine)
AC_MSG_CHECKING(for uxtheme.h)
AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
if test $gtk_uxtheme_h = yes; then
746
   AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
747 748 749
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
750 751 752 753
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

754

755 756 757
##################################################
# Checks for gdk-pixbuf
##################################################
758

759 760 761 762 763 764 765 766 767 768
dnl ********************************************************
dnl * See whether we need to load our modules as .la files *
dnl ********************************************************

use_la_modules=false
case $host in
  *-aix*) use_la_modules=true
esac

if $use_la_modules ; then
769 770
   AC_DEFINE(USE_LA_MODULES, 1,
             [Whether to load modules via .la files rather than directly])
771 772 773
fi


774
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
775

776 777 778
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
779

780 781
dynworks=false
deps=
782
if test x$enable_modules = xno; then
783 784 785 786
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
787
    ## for loop is to strip newline
788
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
789 790 791
    for I in $tmp; do
        dynworks=$I
    done
792

793 794 795 796 797 798 799 800 801 802 803 804 805
    dnl Now we check to see if our libtool supports shared lib deps
    dnl (in a rather ugly way even)
    if $dynworks; then
        pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
        pixbuf_deplibs_check=`$pixbuf_libtool_config | \
            grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
            sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
        if test "x$pixbuf_deplibs_check" = "xnone" || \
           test "x$pixbuf_deplibs_check" = "xunknown" || \
           test "x$pixbuf_deplibs_check" = "x"; then
            dynworks=false
        fi
    fi
806

807
    if $dynworks; then
808 809
        AC_DEFINE(USE_GMODULE, 1,
                  [Define to 1 if gmodule works and should be used])
810 811 812 813
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
814
fi
Havoc Pennington's avatar
Havoc Pennington committed
815

Owen Taylor's avatar
Owen Taylor committed
816 817 818
dnl We allow people to disable image loaders explicitely, but if they don't we error
dnl out so that people don't accidentally build without them.

819 820 821 822 823 824 825 826 827
AC_ARG_WITH(libpng,
            [AC_HELP_STRING([--without-libpng],
                            [disable PNG loader for gdk-pixbuf])])
AC_ARG_WITH(libjpeg,
            [AC_HELP_STRING([--without-libjpeg],
                            [disable JPEG loader for gdk-pixbuf])])
AC_ARG_WITH(libtiff,
            [AC_HELP_STRING([--without-libtiff],
                            [disable TIFF loader for gdk-pixbuf])])
828
AC_ARG_WITH(libjasper,
829 830
            [AC_HELP_STRING([--with-libjasper],
                            [enable JPEG2000 loader for gdk-pixbuf])])
Owen Taylor's avatar
Owen Taylor committed
831

832
AC_ARG_ENABLE(gdiplus,
833 834 835
            [AC_HELP_STRING([--enable-gdiplus],
                            [enble GDI+ loaders for gdk-pixbuf (currently known to be broken)])],,
	    [enable_gdiplus=no])
836 837 838

AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$enable_gdiplus != xno ])

839
dnl Test for libtiff
840
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
841
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
842
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
843
      [AC_CHECK_HEADER(tiffio.h,
844
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
845 846 847
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
848
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
849 850 851
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
852
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
853
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
854
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
Havoc Pennington's avatar
Havoc Pennington committed
855 856
  fi

Owen Taylor's avatar
Owen Taylor committed
857 858
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
     AC_MSG_ERROR([
859
*** Checks for TIFF loader failed. You can build without it by passing
Owen Taylor's avatar
Owen Taylor committed
860 861 862
*** --without-libtiff to configure but some programs using GTK+ may
*** not work properly])
  fi
863
fi
Owen Taylor's avatar
Owen Taylor committed
864

865
dnl Test for libjpeg
866
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
867
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
868 869 870 871 872 873 874 875 876 877
    AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
      jpeg_ok=yes,
      jpeg_ok=no
      AC_MSG_WARN(*** JPEG loader 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 PACKAGE
#undef VERSION
878
#undef HAVE_STDLIB_H
879 880 881 882 883 884
#include <jpeglib.h>],
        jpeg_ok=yes,
        jpeg_ok=no)
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
        LIBJPEG='-ljpeg'
885
        AC_CHECK_LIB(jpeg, jpeg_simple_progression,
886 887
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
                    [Define to 1 is libjpeg supports progressive JPEG]),
888 889 890 891 892
          AC_MSG_WARN(JPEG library does not support progressive saving.))
      else
          AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
      fi
    fi
893 894
  fi

Owen Taylor's avatar
Owen Taylor committed
895 896
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
     AC_MSG_ERROR([
897
*** Checks for JPEG loader failed. You can build without it by passing
Owen Taylor's avatar
Owen Taylor committed
898 899 900
*** --without-libjpeg to configure but some programs using GTK+ may
*** not work properly])
  fi
901
fi
Owen Taylor's avatar
Owen Taylor committed
902

903
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
904
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
905 906 907 908 909 910 911 912 913 914 915 916 917
    AC_MSG_CHECKING(for libpng12)
    if $PKG_CONFIG --exists libpng12 ; then
        AC_MSG_RESULT(yes)
        PNG='png'
	PNG_DEP_CFLAGS_PACKAGES=libpng12
	LIBPNG=`$PKG_CONFIG --libs libpng12`
    else
      AC_MSG_RESULT(no)
      AC_CHECK_LIB(png, png_read_info,
        [AC_CHECK_HEADER(png.h,
          png_ok=yes,
          png_ok=no)],
        AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
918
      if test "$png_ok" = yes; then
919 920 921 922 923 924 925 926 927 928 929
        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
          PNG='png'; LIBPNG='-lpng -lz'
        else
          AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
        fi
930
      else
931
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
932 933
      fi
    fi
934
  fi
935

Owen Taylor's avatar
Owen Taylor committed
936 937
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
     AC_MSG_ERROR([
938
*** Checks for PNG loader failed. You can build without it by passing
Owen Taylor's avatar
Owen Taylor committed
939 940 941 942 943
*** --without-libpng to configure but many programs using GTK+ will
*** not work properly. The PNG loader is also needed if you are compiling
*** from CVS.])
  fi

944
dnl Test for libjasper
945
  if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
Matthias Clasen's avatar
Matthias Clasen committed
946
    AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [], -ljpeg -lm)
947 948
  fi

949
  if test x$with_libjasper = xyes && test -z "$LIBJASPER"; then
950
     AC_MSG_ERROR([
951
*** Checks for JPEG2000 loader failed. You can build without it by passing
952 953 954
*** --without-libjasper to configure])
  fi

955 956 957
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
958
AC_SUBST(LIBJASPER)
959

960
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
961

962 963 964 965
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
966

967 968 969
dnl due to an autoconf bug, commas in the first arg to
dnl AC_HELP_STRING cause problems.
dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
970
dnl                [build the specified loaders into gdk-pixbuf])
971 972
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
973
                          build the specified loaders into gdk-pixbuf])
974

975
if $dynworks; then
976
   :
977 978 979 980 981 982 983
else
   ## if the option was specified, leave it; otherwise disable included loaders
   if test x$with_included_loaders = xno; then
           with_included_loaders=yes
   fi
fi

984 985 986 987
# Use the traditional png loader instead of the GDI+ one on Windows,
# because some important apps like GIMP need to read and write
# arbitrary tEXt chunks which doesn't seem to be possible through GDI+

988
all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm,qtif"
989 990 991
if test x$with_libjasper != xno; then
  all_loaders="$all_loaders,jasper"
fi
992 993 994 995 996 997 998 999 1000
if test x$os_win32 = xyes && test x$enable_gdiplus != xno; then
  # Skip PNG, see comment above
  gdip_formats="bmp emf gif ico jpeg tiff wmf"
  for f in $gdip_formats; do
    all_loaders="$all_loaders,gdip-$f"
  done
else
  all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
fi
1001 1002 1003 1004
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
1005
else
1006
  included_loaders="$with_included_loaders"
1007 1008
fi

1009
AC_MSG_RESULT($included_loaders)
1010

1011 1012
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
1013

1014 1015
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
1016
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
1017 1018 1019 1020
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
1021

1022
 loader_underscores=`echo $loader | sed -e 's/-/_/g'`
1023
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
1024 1025 1026 1027 1028 1029 1030

 # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
 case $loader in
   gdip-*) ;;
   *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
 esac
 eval INCLUDE_$loader_underscores=yes
1031
done
1032 1033 1034 1035 1036 1037 1038

# Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
# (except gdip-png, which isn't built at all)
if test x"$INCLUDE_gdip_ico" = xyes; then
  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
fi

1039 1040 1041
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
1042

1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056
AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])
1057
AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1058
AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1059
AM_CONDITIONAL(INCLUDE_QTIF, [test x"$INCLUDE_qtif" = xyes])
1060 1061 1062
# As all GDI+ loaders are either built-in or not, arbitrarily just
# check one of the variables here
AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
1063

1064 1065 1066 1067 1068 1069 1070 1071 1072
if test x$gio_can_sniff = x; then
  AC_MSG_CHECKING([if gio can sniff png])
  gtk_save_LIBS="$LIBS"
  gtk_save_CFLAGS="$CFLAGS"
  LIBS="`$PKG_CONFIG --libs gio-2.0`"
  CFLAGS="`$PKG_CONFIG --cflags gio-2.0`"
  AC_RUN_IFELSE([AC_LANG_SOURCE([[
  #include <gio/gio.h>
  static const gsize data_size = 159;
1073
  static const guint8 data[] =
1074
  {
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087
    0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
    0x08, 0x02, 0x00, 0x00, 0x00, 0x90, 0x77, 0x53, 0xde, 0x00, 0x00, 0x00,
    0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00,
    0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x0b, 0x13, 0x00, 0x00,
    0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, 0x00, 0x00, 0x00, 0x07, 0x74,
    0x49, 0x4d, 0x45, 0x07, 0xd8, 0x07, 0x0f, 0x10, 0x08, 0x15, 0x61, 0xd8,
    0x35, 0x37, 0x00, 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f,
    0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
    0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x57,
    0x81, 0x0e, 0x17, 0x00, 0x00, 0x00, 0x0c, 0x49, 0x44, 0x41, 0x54, 0x08,
    0xd7, 0x63, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x05, 0xfe, 0x02, 0xfe, 0xdc,
    0xcc, 0x59, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
1088 1089 1090 1091 1092 1093 1094
    0x42, 0x60, 0x82
  };
  int
  main (int argc, char **argv)
  {
    char *content_type;
    char *image_png;
1095
    g_type_init ();
1096
    content_type = g_content_type_guess (NULL, data, data_size, NULL);
1097
    image_png = g_content_type_from_mime_type ("image/png");
1098
    return !!g_strcmp0 (content_type, image_png);
1099 1100 1101 1102 1103 1104 1105 1106
  }]])],
    [gio_can_sniff=yes
     AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data])],
    [gio_can_sniff=no])
  AC_MSG_RESULT($gio_can_sniff)
  LIBS="$gtk_save_LIBS"
  CFLAGS="$gtk_save_CFLAGS"
fi
1107

1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120
#
# Allow building some or all immodules included
#
AC_MSG_CHECKING(immodules to build)

dnl due to an autoconf bug, commas in the first arg to
dnl AC_HELP_STRING cause problems.
dnl AC_HELP_STRING([--with-included-immodules=MODULE1 MODULE2 ...],
dnl                [build the specified input method modules into gtk])
AC_ARG_WITH(included_immodules,
[  --with-included-immodules=MODULE1,MODULE2,...
                          build the specified input methods into gtk])

1121
if $dynworks; then
1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182
   :
else
   ## if the option was specified, leave it; otherwise disable included immodules
   if test x$with_included_immodules = xno; then
           with_included_immodules=yes
   fi
fi

all_immodules="am-et,cedilla,cyrillic-translit"
if test "$gdktarget" = "win32"; then
   all_immodules="${all_immodules},ime"
fi
all_immodules="${all_immodules},inuktitut,ipa,multipress,thai,ti-er,ti-et,viqr"
if test "$gdktarget" = "x11"; then
   all_immodules="${all_immodules},xim"
fi

included_immodules=""
# If the switch specified without listing any specific ones, include all
if test "x$with_included_immodules" = xyes ; then
  included_immodules="$all_immodules"
else
  included_immodules="$with_included_immodules"
fi

AC_MSG_RESULT($included_immodules)
AM_CONDITIONAL(HAVE_INCLUDED_IMMMODULES, test "x$included_immodules" != x)

INCLUDED_IMMODULE_OBJ=
INCLUDED_IMMODULE_DEFINE=

IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for immodule in $included_immodules; do
 immodule_underscores=`echo $immodule | sed -e 's/-/_/g'`
 if echo "$all_immodules" | egrep "(^|,)$immodule(\$|,)" > /dev/null; then
   :
 else
   AC_MSG_ERROR([the specified input method $immodule does not exist])
 fi

 INCLUDED_IMMODULE_OBJ="$INCLUDED_IMMODULE_OBJ ../modules/input/libstatic-im-$immodule.la"
 INCLUDED_IMMODULE_DEFINE="$INCLUDED_IMMODULE_DEFINE -DINCLUDE_IM_$immodule_underscores"
 eval INCLUDE_$immodule_underscores=yes
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_IMMODULE_OBJ)
AC_SUBST(INCLUDED_IMMODULE_DEFINE)

AM_CONDITIONAL(INCLUDE_IM_AM_ET, [test x"$INCLUDE_am_et" = xyes])
AM_CONDITIONAL(INCLUDE_IM_CEDILLA, [test x"$INCLUDE_cedilla" = xyes])
AM_CONDITIONAL(INCLUDE_IM_CYRILLIC_TRANSLIT, [test x"$INCLUDE_cyrillic_translit" = xyes])
AM_CONDITIONAL(INCLUDE_IM_IME, [test x"$INCLUDE_ime" = xyes])
AM_CONDITIONAL(INCLUDE_IM_INUKTITUT, [test x"$INCLUDE_inuktitut" = xyes])
AM_CONDITIONAL(INCLUDE_IM_IPA, [test x"$INCLUDE_ipa" = xyes])
AM_CONDITIONAL(INCLUDE_IM_MULTIPRESS, [test x"$INCLUDE_multipress" = xyes])
AM_CONDITIONAL(INCLUDE_IM_THAI, [test x"$INCLUDE_thai" = xyes])
AM_CONDITIONAL(INCLUDE_IM_TI_ER, [test x"$INCLUDE_ti_er" = xyes])
AM_CONDITIONAL(INCLUDE_IM_TI_ET, [test x"$INCLUDE_ti_et" = xyes])
AM_CONDITIONAL(INCLUDE_IM_VIQR, [test x"$INCLUDE_viqr" = xyes])
AM_CONDITIONAL(INCLUDE_IM_XIM, [test x"$INCLUDE_xim" = xyes])

1183
AC_HEADER_SYS_WAIT
1184

1185 1186 1187 1188 1189
AC_TYPE_SIGNAL

AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
1190
AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x)
1191

Havoc Pennington's avatar
Havoc Pennington committed
1192
if $dynworks ; then
1193
  STATIC_LIB_DEPS=
1194
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1195
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
1196
  fi
1197
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1198
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
1199
  fi
1200
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
1201
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
1202
  fi
1203 1204 1205
  if echo "$included_loaders" | egrep '(^|,)jasper($|,)' > /dev/null; then
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJASPER"
  fi
1206
else
1207
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG $LIBJASPER"
1208
fi
Elliot Lee's avatar
Elliot Lee committed
1209

1210 1211 1212
# Checks to see whether we should include mediaLib
# support.
#
1213
AC_CHECK_HEADER(sys/systeminfo.h,
1214
                AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1,
1215 1216 1217 1218
                          [Define to 1 if sys/systeminfo.h is available]))
AC_CHECK_HEADER(sys/sysinfo.h,
                AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
                          [Define to 1 if sys/sysinfo.h is available]))
1219 1220 1221 1222 1223 1224 1225

AC_MSG_CHECKING(for mediaLib 2.3)
use_mlib25=no
# Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
# patch requires.
AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
if test $use_mlib = yes; then
1226 1227
    AC_DEFINE(USE_MEDIALIB, 1,
              [Define to 1 if medialib is available and should be used])
1228 1229 1230 1231 1232 1233 1234
    MEDIA_LIB=-lmlib

    AC_MSG_CHECKING(for mediaLib 2.5)
    # Check for a mediaLib 2.5 function since that is what is needed for
    # gdk_rgb_convert integration.
    AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
    if test $use_mlib25 = yes; then
1235 1236
        AC_DEFINE(USE_MEDIALIB25, 1,
                  [Define to 1 if medialib 2.5 is available])
1237 1238 1239 1240 1241
    fi
fi
AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)

1242 1243 1244
# Checks to see if we should compile in MMX support (there will be
# a runtime test when the code is actually run to see if it should
# be used - this just checks if we can compile it.)
1245
#
1246
# This code is partially taken from Mesa
1247
#
1248 1249 1250
AC_MSG_CHECKING(for x86 platform)
case $host_cpu in
  i386|i486|i586|i686|i786|k6|k7)
1251
        use_x86_asm=yes
1252 1253
        ;;
   *)
1254
        use_x86_asm=no
1255 1256
esac
AC_MSG_RESULT($use_x86_asm)
1257

1258 1259 1260 1261
use_mmx_asm=no
if test $use_x86_asm = yes; then
    save_ac_ext=$ac_ext
    ac_ext=S
1262

1263 1264 1265 1266 1267 1268 1269 1270 1271 1272
    AC_MSG_CHECKING(compiler support for MMX)
    cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
    if AC_TRY_EVAL(ac_compile); then
        use_mmx_asm=yes
    fi

    rm -rf conftest*

    ac_ext=$save_ac_ext
    if test $use_mmx_asm = yes; then
1273 1274
      AC_DEFINE(USE_MMX, 1,
                [Define to 1 if XXM is available and should be used])
1275 1276 1277 1278
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
    fi
1279
fi
1280

1281
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1282

1283
REBUILD_PNGS=
1284
if test -z "$LIBPNG" && test x"$os_win32" = xno -o x$enable_gdiplus = xno; then
1285 1286 1287
  REBUILD_PNGS=#
fi

1288 1289
dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling

1290
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1291

1292
if test $cross_compiling = yes; then
1293
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1294 1295
  AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
  if test x$GTK_UPDATE_ICON_CACHE = xno; then
1296
    REBUILD_PNGS=#
1297 1298
  fi
fi
1299

1300
if test ! -f $srcdir/gtk/gtkbuiltincache.h &&
1301 1302
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1303
*** gtkbuiltincache.h is not in the tree, and cannot be built
1304
*** because you don't have libpng, or (when cross-compiling) you
1305
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
1306 1307 1308 1309
fi

AC_SUBST(REBUILD_PNGS)

1310
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0"
1311
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1312
GDK_PIXBUF_EXTRA_CFLAGS=
1313
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1314
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1315

1316 1317 1318
########################################
# Windowing system checks
########################################
1319

1320 1321 1322
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1323

1324 1325
GDK_EXTRA_LIBS="$GDK_WLIBS"
GDK_EXTRA_CFLAGS=
1326

1327 1328 1329
# GTK+ uses some X calls, so needs to link against X directly
GTK_DEP_PACKAGES_FOR_X=
GTK_DEP_LIBS_FOR_X=
1330

1331
if test "x$gdktarget" = "xx11"; then
1332 1333
  X_PACKAGES=fontconfig

1334 1335 1336 1337 1338 1339 1340 1341 1342
  #
  # We use fontconfig very peripherally when decoding the default
  # settings.
  #
  if $PKG_CONFIG --exists fontconfig; then : ; else
    AC_MSG_ERROR([
*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
  fi

1343
  #
1344
  # Check for basic X packages; we use pkg-config if available
1345
  #
1346
  if $PKG_CONFIG --exists x11 xext xrender; then
1347
    have_base_x_pc=true
1348
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
1349 1350
    x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
    X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1351

1352 1353 1354 1355
    # Strip out any .la files that pkg-config might give us (this happens
    # with -uninstalled.pc files)
    x_libs_for_checks=
    for I in $x_libs ; do
1356
      case $I in
1357 1358 1359 1360
        *.la) ;;
        *) x_libs_for_checks="$x_libs_for_checks $I" ;;
      esac
    done
1361

1362 1363 1364 1365 1366 1367 1368 1369
    GDK_PIXBUF_XLIB_PACKAGES="x11"
    GTK_PACKAGES_FOR_X="x11"
  else
    have_base_x_pc=false
    AC_PATH_XTRA
    if test x$no_x = xyes ; then
      AC_MSG_ERROR([X development libraries not found])
    fi
1370

1371
    x_cflags="$X_CFLAGS"
1372
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1373

1374 1375
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1376
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1377 1378
  fi

1379 1380
  # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
  x_extra_libs=
Alexander Larsson's avatar
Alexander Larsson committed
1381

1382
  gtk_save_cppflags="$CPPFLAGS"
1383
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alexander Larsson's avatar
Alexander Larsson committed
1384

1385 1386
  gtk_save_LIBS=$LIBS
  LIBS="$x_libs_for_checks $LIBS"
1387

1388 1389 1390 1391 1392 1393 1394
  # Sanity check for the X11 and Xext libraries. While everything we need from
  # Xext is optional, the chances a system has *none* of these things is so
  # small that we just unconditionally require it.
  AC_CHECK_FUNC(XOpenDisplay, :,
                AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
  AC_CHECK_FUNC(XextFindDisplay, :,
                AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1395 1396
  AC_CHECK_FUNC(XRenderQueryExtension, :,
                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1397

1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408
  # Check for xReply

  AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
  AC_TRY_COMPILE([#include <X11/Xlibint.h>],
      [xReply *rep;],
      [AC_MSG_RESULT([no])],
      [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
#include <X11/Xlibint.h>],
           [xReply *rep;],
           [AC_MSG_RESULT([yes])
            AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1409
                      [Define if <X11/extensions/XIproto.h> needed for xReply])],
1410 1411 1412
           [AC_MSG_RESULT([unknown])
            AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])

1413
  # Check for XConvertCase, XInternAtoms (X11R6 specific)
1414

1415
  AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1416

1417 1418
  # Generic X11R6 check needed for XIM support; we could
  # probably use this to replace the above, but we'll
1419
  # leave the separate checks for XConvertCase and XInternAtoms
1420
  # for clarity
1421

1422
  have_x11r6=false
1423 1424
  AC_CHECK_FUNC(XAddConnectionWatch,
      have_x11r6=true)
1425 1426

  if $have_x11r6; then
1427
    AC_DEFINE(HAVE_X11R6, 1, [Define if we have X11R6])
1428
  fi
1429
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1430 1431 1432 1433 1434

  # Check for XKB support.

  if test "x$enable_xkb" = "xyes"; then
        AC_MSG_WARN(XKB support explicitly enabled)
1435
        AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
1436
  elif test "x$enable_xkb" = "xmaybe"; then
1437
        AC_CHECK_FUNC(XkbQueryExtension,
1438
                      AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension]))
1439 1440 1441 1442
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

1443
  # Check for shaped window extension
1444

1445 1446
  AC_CHECK_FUNC(XShapeCombineMask, :,
     [AC_MSG_ERROR([Shape extension not found, check your development headers])])
1447

1448
  # X SYNC check
1449 1450
  gtk_save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS $x_cflags"
1451

1452 1453
  AC_CHECK_FUNC(XSyncQueryExtension,
      [AC_CHECK_HEADER(X11/extensions/sync.h,
1454
	  AC_DEFINE(HAVE_XSYNC, 1, [Have the SYNC extension library]),
1455
	  :, [#include <X11/Xlib.h>])])
1456

1457 1458
  CFLAGS="$gtk_save_CFLAGS"

1459 1460
  # Xshm checks

1461 1462 1463 1464 1465
  if test "x$enable_shm" = "xyes"; then
     # Check for the XShm extension, normally in Xext
     AC_CHECK_FUNC(XShmAttach,
	:,
	# On AIX, it is in XextSam instead
1466
	[AC_CHECK_LIB(XextSam, XShmAttach,
1467
	    [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1468
  fi
1469

1470 1471
  if test "x$enable_shm" = "xyes"; then
    # Check for shared memory
1472 1473 1474 1475 1476 1477 1478 1479
    AC_CHECK_HEADER(sys/ipc.h,
                    AC_DEFINE(HAVE_IPC_H, 1,
                              [Define to 1 if ipc.h is available]),
                    no_sys_ipc=yes)
    AC_CHECK_HEADER(sys/shm.h,
                    AC_DEFINE(HAVE_SHM_H, 1,
                              [Define to 1 if shm.h is available]),
                    no_sys_shm=yes)
1480 1481

    # Check for the X shared memory extension header file
1482
    have_xshm=no
Owen Taylor's avatar