configure.in 64.7 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])
Matthias Clasen's avatar
Matthias Clasen committed
14
m4_define([gtk_minor_version], [17])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [1])
Matthias Clasen's avatar
Matthias Clasen 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 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
34
m4_define([glib_required_version], [2.19.7])
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

507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526
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.)

Owen Taylor's avatar
Owen Taylor committed
527
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
528

529 530
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
531
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
532

533
gtk_save_LIBS=$LIBS
534 535 536 537
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
538
     gtk_save_CFLAGS="$CFLAGS"
539 540 541 542 543
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
544
         CFLAGS="$gtk_save_CFLAGS"
545
         AC_MSG_WARN(
546 547 548 549
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
550 551 552
)
LIBS=$gtk_save_LIBS

553 554 555
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
556
    AC_MSG_RESULT(yes)
557 558
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
559 560
  *)
    AC_MSG_RESULT(no)
561 562
  ;;
esac
563 564 565 566 567 568 569 570 571 572 573 574 575 576

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

Manish Singh's avatar
Manish Singh committed
578 579 580 581
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),
582
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
583 584 585 586
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
587
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
588 589
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

590
#
Owen Taylor's avatar
Owen Taylor committed
591 592
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
593

594
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
595

596
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
597
  AC_MSG_ERROR([
598 599
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
600
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
601

602 603 604 605 606 607 608
# 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

609 610
CFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CFLAGS"

611

Owen Taylor's avatar
Owen Taylor committed
612 613 614 615 616 617 618 619
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

620 621 622 623 624 625 626 627 628 629 630 631
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]))
632

633 634 635 636 637 638
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])
639
    AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
640 641 642 643
else
    AC_MSG_RESULT([no])
fi

644 645 646
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

647

648 649
# Checks for header files.
AC_HEADER_STDC
650

651 652
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
653

654 655 656
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
657

Matthias Clasen's avatar
Matthias Clasen committed
658
AC_CHECK_FUNCS(mallinfo)
659 660
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
661

662 663 664 665 666 667 668 669 670
# 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
671 672
        AC_DEFINE(HAVE_SYS_SELECT_H, 1,
                  [Define to 1 if sys/select.h is available])
673 674
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
675 676
	AC_DEFINE(NO_FD_SET, 1,
                  [Define to 1 if fd_set is not available])
677 678 679
	AC_MSG_RESULT(no)
    fi
fi
680

681 682 683 684
# `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
685
   AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
686 687
fi
AC_MSG_RESULT($gdk_wchar_h)
688

689 690 691 692
# 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
693
   AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
694 695
fi
AC_MSG_RESULT($gdk_wctype_h)
696

697 698 699
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
700

701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719
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"
720

721
if test $gdk_working_wctype = no; then
722
   AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
723 724 725 726
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Delete.  
Havoc Pennington committed
727

728 729 730 731
# 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
732
   AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
733 734 735
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
736 737 738 739
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

740

741 742 743
##################################################
# Checks for gdk-pixbuf
##################################################
744

745 746 747 748 749 750 751 752 753 754
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
755 756
   AC_DEFINE(USE_LA_MODULES, 1,
             [Whether to load modules via .la files rather than directly])
757 758 759
fi


760
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
761

762 763 764
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
765

766 767
dynworks=false
deps=
768
if test x$enable_modules = xno; then
769 770 771 772
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
773
    ## for loop is to strip newline 
774
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
775 776 777
    for I in $tmp; do
        dynworks=$I
    done
778

779 780 781 782 783 784 785 786 787 788 789 790 791
    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
792

793
    if $dynworks; then
794 795
        AC_DEFINE(USE_GMODULE, 1,
                  [Define to 1 if gmodule works and should be used])
796 797 798 799
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
800
fi
Havoc Pennington's avatar
Havoc Pennington committed
801

Owen Taylor's avatar
Owen Taylor committed
802 803 804
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.

805 806 807 808 809 810 811 812 813
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])])
814 815 816
AC_ARG_WITH(libjasper,
            [AC_HELP_STRING([--without-libjasper],
                            [disable JPEG2000 loader for gdk-pixbuf])])
Owen Taylor's avatar
Owen Taylor committed
817

818
AC_ARG_ENABLE(gdiplus,
819
            [AC_HELP_STRING([--disable-gdiplus],
820 821 822 823
                            [disable GDI+ loaders for gdk-pixbuf])])

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

824
dnl Test for libtiff
825
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
826
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
827
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
828
      [AC_CHECK_HEADER(tiffio.h,
829
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
830 831 832
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
833
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
834 835 836
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
837
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
838
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
839
        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
840 841
  fi

Owen Taylor's avatar
Owen Taylor committed
842 843 844 845 846 847
  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
848
fi
Owen Taylor's avatar
Owen Taylor committed
849

850
dnl Test for libjpeg
851
if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
Owen Taylor's avatar
Owen Taylor committed
852
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
853 854 855 856 857 858 859 860 861 862
    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
863
#undef HAVE_STDLIB_H
864 865 866 867 868 869 870
#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,     
871 872
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
                    [Define to 1 is libjpeg supports progressive JPEG]),
873 874 875 876 877
          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
878 879
  fi

Owen Taylor's avatar
Owen Taylor committed
880 881 882 883 884 885
  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
886
fi
Owen Taylor's avatar
Owen Taylor committed
887

888
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
889
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
890 891 892 893 894 895 896 897 898 899 900 901 902
    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)
903
      if test "$png_ok" = yes; then
904 905 906 907 908 909 910 911 912 913 914
        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
915
      else
916
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
917 918
      fi
    fi
919
  fi
920

Owen Taylor's avatar
Owen Taylor committed
921 922 923 924 925 926 927 928
  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

929 930
dnl Test for libjasper
  if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
931
    AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [], -ljpeg)
932 933 934 935 936 937 938 939
  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

940 941 942
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
943
AC_SUBST(LIBJASPER)
944

945
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
946

947 948 949 950
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
951

952 953 954
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 ...],
955
dnl                [build the specified loaders into gdk-pixbuf])
956 957
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
958
                          build the specified loaders into gdk-pixbuf])
959

960
if $dynworks; then 
961
   :
962 963 964 965 966 967 968
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

969 970 971 972 973
# 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"
974 975 976
if test x$with_libjasper != xno; then
  all_loaders="$all_loaders,jasper"
fi
977 978 979 980 981 982 983 984 985
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
986 987 988 989
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
990
else
991
  included_loaders="$with_included_loaders"
992 993
fi

994
AC_MSG_RESULT($included_loaders)
995

996 997
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
998

999 1000
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
1001
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
1002 1003 1004 1005
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
1006

1007
 loader_underscores=`echo $loader | sed -e 's/-/_/g'`
1008
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
1009 1010 1011 1012 1013 1014 1015

 # 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
1016
done
1017 1018 1019 1020 1021 1022 1023

# 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

1024 1025 1026
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
1027

1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041
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])
1042
AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1043
AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1044 1045 1046
# 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])
1047

1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079
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
1080
    image_png = g_content_type_from_mime_type ("image/png");
1081 1082 1083 1084 1085 1086 1087 1088 1089
    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
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