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

# 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], [15])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [1])
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 22 23 24
# This is the X.Y used in -lgtk-FOO-X.Y
m4_define([gtk_api_version], [2.0])

# 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], [2.10.0])
32 33

# required versions of other packages
Matthias Clasen's avatar
Matthias Clasen committed
34
m4_define([glib_required_version], [2.17.6])
35
m4_define([pango_required_version], [1.20])
36
m4_define([atk_required_version], [1.13.0])
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 44 45 46 47 48 49 50
	[gtk+])

AC_CONFIG_SRCDIR([gdk/gdktypes.h])

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

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

Owen Taylor's avatar
Owen Taylor committed
52
#
53
# For each of the libraries we build, we define the following
54
 
55 56 57 58 59 60 61
# 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
62 63


64 65 66 67 68 69 70 71
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
72 73 74
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
75 76
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
Owen Taylor's avatar
Owen Taylor committed
77
AC_SUBST(GTK_API_VERSION)
78
AC_SUBST(GTK_VERSION)
79
AC_SUBST(GTK_BINARY_VERSION)
80 81

# libtool versioning
82 83 84 85 86 87
#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`

88 89 90 91 92 93
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
94
AC_SUBST(LT_CURRENT_MINUS_AGE)
95

96 97 98 99 100 101 102
m4_define([gail_lt_current],[18])
m4_define([gail_lt_revision],[1])
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])
103

104 105 106 107
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
108 109 110
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
111 112 113 114 115 116
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)

117 118
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
119 120
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                   [The prefix for our gettext translation domains.])
121

122 123
AC_CANONICAL_HOST

124 125
MATH_LIB=-lm
AC_MSG_CHECKING([for native Win32])
126
LIB_EXE_MACHINE_FLAG=X86
127 128 129
case "$host" in
  *-*-mingw*)
    os_win32=yes
130
    gio_can_sniff=no
131
    MATH_LIB=
132 133 134 135 136
    case "$host" in
    x86_64-*-*)
      LIB_EXE_MACHINE_FLAG=X64
      ;;
    esac
137 138 139 140 141 142
    ;;
  *)
    os_win32=no
    ;;
esac
AC_MSG_RESULT([$os_win32])
Elliot Lee's avatar
Elliot Lee committed
143

144 145
AC_SUBST(LIB_EXE_MACHINE_FLAG)

Matthias Clasen's avatar
Matthias Clasen committed
146 147 148 149 150
case $host in
  *-*-linux*)
    os_linux=yes
    ;;
esac
151

Elliot Lee's avatar
Elliot Lee committed
152
dnl Initialize libtool
153
AC_PROG_CC
154
AM_DISABLE_STATIC
155

156 157 158 159
dnl 
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.
dnl 
160
AC_CHECK_TOOLS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
161 162
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
163

164 165
AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
166 167 168 169

gtk_save_cxxflags="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -x objective-c++"
AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no)
170
AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" = "yes")
171
CXXFLAGS="$gtk_save_cxxflags"
172 173
AC_LANG_RESTORE

Tor Lillqvist's avatar
Typo.  
Tor Lillqvist committed
174
if test "$os_win32" = "yes"; then
175 176 177 178 179 180 181 182 183 184
  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

185
AC_LIBTOOL_WIN32_DLL
Elliot Lee's avatar
Elliot Lee committed
186
AM_PROG_LIBTOOL
187 188 189
dnl when using libtool 2.x create libtool early, because it's used in configure
m4_ifdef([LT_OUTPUT], [LT_OUTPUT])

Elliot Lee's avatar
Elliot Lee committed
190

191 192 193
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

194
AM_PROG_AS
Matthias Clasen's avatar
Matthias Clasen committed
195
AC_PATH_PROG(NM, nm, nm)
196

Elliot Lee's avatar
Elliot Lee committed
197 198 199
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

Tor Lillqvist's avatar
Tor Lillqvist committed
200 201 202 203 204 205 206 207 208 209 210 211 212
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")
213
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Matthias Clasen's avatar
Matthias Clasen committed
214
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
215 216

if test "$os_win32" = "yes"; then
Tor Lillqvist's avatar
Tor Lillqvist committed
217 218 219 220
  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
221 222 223 224
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

225 226
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
227 228

dnl declare --enable-* args and collect ac_help strings
229 230 231 232 233 234
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],
235 236
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
237 238 239 240
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
241 242 243
AC_ARG_ENABLE(xinerama,
              [AC_HELP_STRING([--enable-xinerama],
	                      [support xinerama extension if available [default=yes]])],,
244
              [enable_xinerama="yes"])
245 246 247 248
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
249 250 251 252
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
253 254 255 256

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

Tor Lillqvist's avatar
Tor Lillqvist committed
257 258 259 260 261 262
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

Matthias Clasen's avatar
Matthias Clasen committed
263
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
264 265 266 267
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
Matthias Clasen's avatar
Matthias Clasen committed
268 269
  x11|win32|quartz|directfb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
270 271
esac

Owen Taylor's avatar
Owen Taylor committed
272 273
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
274 275 276 277

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

278
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
279
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
280
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" 
Elliot Lee's avatar
Elliot Lee committed
281
else
282
  if test "x$enable_debug" = "xno"; then
283
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
284
  else
285
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
286
  fi
Elliot Lee's avatar
Elliot Lee committed
287 288
fi

289

290 291 292 293 294
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


295 296
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
                   [Define if debugging is enabled])
Owen Taylor's avatar
Owen Taylor committed
297

Alexander Larsson's avatar
Alexander Larsson committed
298
			
Elliot Lee's avatar
Elliot Lee committed
299 300 301 302
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
303
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
304 305 306 307
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

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

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

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

329
CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
330

331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354
# 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
355
    esac
356 357 358 359 360 361 362
    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
363
  fi
Elliot Lee's avatar
Elliot Lee committed
364 365
fi

366 367 368
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

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

Tor Lillqvist's avatar
Tor Lillqvist committed
381 382 383 384 385 386 387 388
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
389 390
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

391 392 393 394 395
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
396 397 398
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
399 400 401 402

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
403
    export SED
404
    deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh`
405
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
406 407 408 409 410 411 412 413 414 415 416 417 418 419
      enable_explicit_deps=yes  
    else
      enable_explicit_deps=no  
    fi
  ;;
  yes|no) 
  ;;
  *) 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)

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

423
AC_PATH_PROGS(PERL, perl5 perl)
424

425 426 427
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

428
REBUILD=\#
429 430
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
431
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
432
  REBUILD=
433 434
fi
AC_SUBST(REBUILD)
435

Matthias Clasen's avatar
Matthias Clasen committed
436
AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
437
AC_CHECK_FUNCS(localtime_r)
438 439 440 441 442 443 444 445 446 447 448 449

# _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
450

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 476 477 478 479 480 481 482 483 484 485 486
# _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
	
487 488 489 490 491 492 493 494
# 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
495 496
  AC_DEFINE(HAVE_SIGSETJMP, 1,
            [Define to 1 if sigsetjmp is available])
497
fi
Tor Lillqvist's avatar
Tor Lillqvist committed
498

Owen Taylor's avatar
Owen Taylor committed
499
# i18n stuff
Matthias Clasen's avatar
Matthias Clasen committed
500
ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
501
AM_GLIB_GNU_GETTEXT
502
LIBS="$LIBS $INTLLIBS"
503 504 505
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])
506

Owen Taylor's avatar
Owen Taylor committed
507
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
508

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

513
gtk_save_LIBS=$LIBS
514 515 516 517
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
518
     gtk_save_CFLAGS="$CFLAGS"
519 520 521 522 523
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
524
         CFLAGS="$gtk_save_CFLAGS"
525
         AC_MSG_WARN(
526 527 528 529
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
530 531 532
)
LIBS=$gtk_save_LIBS

533 534 535
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
536
    AC_MSG_RESULT(yes)
537 538
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
539 540
  *)
    AC_MSG_RESULT(no)
541 542
  ;;
esac
543 544 545 546 547 548 549 550 551 552 553 554 555 556

#
# 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
557

Manish Singh's avatar
Manish Singh committed
558 559 560 561
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),
562
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
563 564 565 566
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
567
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
568 569
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

570
#
Owen Taylor's avatar
Owen Taylor committed
571 572
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
573

574
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
575

576
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
577
  AC_MSG_ERROR([
578 579
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
580
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
581

582 583 584 585 586 587 588
# 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

589 590
CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"

591

Owen Taylor's avatar
Owen Taylor committed
592 593 594 595 596 597 598 599
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

600 601 602 603 604 605 606 607 608 609 610 611
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]))
612

613 614 615 616 617 618
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])
619
    AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
620 621 622 623
else
    AC_MSG_RESULT([no])
fi

624 625 626
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

627

628 629
# Checks for header files.
AC_HEADER_STDC
630

631 632
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
633

634 635 636
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
637

Matthias Clasen's avatar
Matthias Clasen committed
638
AC_CHECK_FUNCS(mallinfo)
639 640
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
641

642 643 644 645 646 647 648 649 650
# 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
651 652
        AC_DEFINE(HAVE_SYS_SELECT_H, 1,
                  [Define to 1 if sys/select.h is available])
653 654
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
655 656
	AC_DEFINE(NO_FD_SET, 1,
                  [Define to 1 if fd_set is not available])
657 658 659
	AC_MSG_RESULT(no)
    fi
fi
660

661 662 663 664
# `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
665
   AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
666 667
fi
AC_MSG_RESULT($gdk_wchar_h)
668

669 670 671 672
# 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
673
   AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
674 675
fi
AC_MSG_RESULT($gdk_wctype_h)
676

677 678 679
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
680

681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699
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"
700

701
if test $gdk_working_wctype = no; then
702
   AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
703 704 705 706
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Delete.  
Havoc Pennington committed
707

708 709 710 711
# 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
712
   AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
713 714 715
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
716 717 718 719
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

720

721 722 723
##################################################
# Checks for gdk-pixbuf
##################################################
724

725 726 727 728 729 730 731 732 733 734
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
735 736
   AC_DEFINE(USE_LA_MODULES, 1,
             [Whether to load modules via .la files rather than directly])
737 738 739
fi


740
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
741

742 743 744
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
745

746 747
dynworks=false
deps=
748
if test x$enable_modules = xno; then
749 750 751 752
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
753
    ## for loop is to strip newline 
754
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
755 756 757
    for I in $tmp; do
        dynworks=$I
    done
758

759 760 761 762 763 764 765 766 767 768 769 770 771
    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
772

773
    if $dynworks; then
774 775
        AC_DEFINE(USE_GMODULE, 1,
                  [Define to 1 if gmodule works and should be used])
776 777 778 779
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
780
fi
Havoc Pennington's avatar
Havoc Pennington committed
781

Owen Taylor's avatar
Owen Taylor committed
782 783 784
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.

785 786 787 788 789 790 791 792 793
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])])
794 795 796
AC_ARG_WITH(libjasper,
            [AC_HELP_STRING([--without-libjasper],
                            [disable JPEG2000 loader for gdk-pixbuf])])
Owen Taylor's avatar
Owen Taylor committed
797

798
AC_ARG_ENABLE(gdiplus,
799
            [AC_HELP_STRING([--disable-gdiplus],
800 801 802 803
                            [disable GDI+ loaders for gdk-pixbuf])])

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

804
dnl Test for libtiff
805
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
806
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
807
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
808
      [AC_CHECK_HEADER(tiffio.h,
809
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
810 811 812
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
813
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
814 815 816
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
817
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
818
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
819
        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
820 821
  fi

Owen Taylor's avatar
Owen Taylor committed
822 823 824 825 826 827
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
     AC_MSG_ERROR([
*** Checks for TIFF loader failed. You can build without it by passing 
*** --without-libtiff to configure but some programs using GTK+ may
*** not work properly])
  fi
828
fi
Owen Taylor's avatar
Owen Taylor committed
829

830
dnl Test for libjpeg
831
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
832
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
833 834 835 836 837 838 839 840 841 842
    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
843
#undef HAVE_STDLIB_H
844 845 846 847 848 849 850
#include <jpeglib.h>],
        jpeg_ok=yes,
        jpeg_ok=no)
      AC_MSG_RESULT($jpeg_ok)
      if test "$jpeg_ok" = yes; then
        LIBJPEG='-ljpeg'
        AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
851 852
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
                    [Define to 1 is libjpeg supports progressive JPEG]),
853 854 855 856 857
          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
858 859
  fi

Owen Taylor's avatar
Owen Taylor committed
860 861 862 863 864 865
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
     AC_MSG_ERROR([
*** Checks for JPEG loader failed. You can build without it by passing 
*** --without-libjpeg to configure but some programs using GTK+ may
*** not work properly])
  fi
866
fi
Owen Taylor's avatar
Owen Taylor committed
867

868
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
869
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
870 871 872 873 874 875 876 877 878 879 880 881 882
    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)
883
      if test "$png_ok" = yes; then
884 885 886 887 888 889 890 891 892 893 894
        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
895
      else
896
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
897 898
      fi
    fi
899
  fi
900

Owen Taylor's avatar
Owen Taylor committed
901 902 903 904 905 906 907 908
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
     AC_MSG_ERROR([
*** Checks for PNG loader failed. You can build without it by passing 
*** --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

909 910
dnl Test for libjasper
  if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
911
    AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [], -ljpeg)
912 913 914 915 916 917 918 919
  fi

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

920 921 922
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
923
AC_SUBST(LIBJASPER)
924

925
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
926

927 928 929 930
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
931

932 933 934
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 ...],
935
dnl                [build the specified loaders into gdk-pixbuf])
936 937
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
938
                          build the specified loaders into gdk-pixbuf])
939

940
if $dynworks; then 
941
   :
942 943 944 945 946 947 948
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

949 950 951 952 953
# 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+

all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm"
954 955 956
if test x$with_libjasper != xno; then
  all_loaders="$all_loaders,jasper"
fi
957 958 959 960 961 962 963 964 965
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
966 967 968 969
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
970
else
971
  included_loaders="$with_included_loaders"
972 973
fi

974
AC_MSG_RESULT($included_loaders)
975

976 977
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
978

979 980
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
981
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
982 983 984 985
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
986

987
 loader_underscores=`echo $loader | sed -e 's/-/_/g'`
988
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
989 990 991 992 993 994 995

 # 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
996
done
997 998 999 1000 1001 1002 1003

# 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

1004 1005 1006
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
1007

1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
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])
1022
AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1023
AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1024 1025 1026
# 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])
1027

1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059
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;
  static const guint8 data[] = 
  {
    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, 
    0x42, 0x60, 0x82
  };
  int
  main (int argc, char **argv)
  {
    char *content_type;
    char *image_png;
    content_type = g_content_type_guess (NULL, data, data_size, NULL);  
Matthias Clasen's avatar
Matthias Clasen committed
1060
    image_png = g_content_type_from_mime_type ("image/png");
1061 1062 1063 1064 1065 1066 1067 1068 1069
    return !!strcmp (content_type, image_png);
  }]])],
    [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
1070

1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1