GitLab repository storage has been migrated to hashed layout. Please contact Infrastructure team if you notice any issues with repositories or hooks.

configure.in 51.1 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 15
m4_define([gtk_minor_version], [11])
m4_define([gtk_micro_version], [0])
16 17
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
Matthias Clasen's avatar
Matthias Clasen committed
18
m4_define([gtk_interface_age], [0])
Owen Taylor's avatar
Owen Taylor committed
19 20
m4_define([gtk_binary_age],
          [m4_eval(100 * 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.12.0])
35
m4_define([pango_required_version], [1.15.3])
36
m4_define([atk_required_version], [1.9.0])
Matthias Clasen's avatar
Matthias Clasen committed
37
m4_define([cairo_required_version], [1.2.0])
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
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
101 102 103
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
104 105 106 107 108 109
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)

110 111
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
112
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
113

114 115
AC_CANONICAL_HOST

116 117 118 119 120 121 122 123 124 125 126 127
MATH_LIB=-lm
AC_MSG_CHECKING([for native Win32])
case "$host" in
  *-*-mingw*)
    os_win32=yes
    MATH_LIB=
    ;;
  *)
    os_win32=no
    ;;
esac
AC_MSG_RESULT([$os_win32])
Elliot Lee's avatar
Elliot Lee committed
128

Matthias Clasen's avatar
Matthias Clasen committed
129 130 131 132 133
case $host in
  *-*-linux*)
    os_linux=yes
    ;;
esac
Elliot Lee's avatar
Elliot Lee committed
134
dnl Initialize libtool
135
AC_PROG_CC
136
AM_DISABLE_STATIC
137

Tor Lillqvist's avatar
Typo.  
Tor Lillqvist committed
138
if test "$os_win32" = "yes"; then
139 140 141 142 143 144 145 146 147 148
  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

149
AC_LIBTOOL_WIN32_DLL
Elliot Lee's avatar
Elliot Lee committed
150 151
AM_PROG_LIBTOOL

152 153 154
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

155
AM_PROG_AS
Matthias Clasen's avatar
Matthias Clasen committed
156
AC_PATH_PROG(NM, nm, nm)
157

Elliot Lee's avatar
Elliot Lee committed
158 159 160
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

Tor Lillqvist's avatar
Tor Lillqvist committed
161 162 163 164 165 166 167 168 169 170 171 172 173
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")
174
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Matthias Clasen's avatar
Matthias Clasen committed
175
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
176 177

if test "$os_win32" = "yes"; then
Tor Lillqvist's avatar
Tor Lillqvist committed
178 179 180 181
  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
182 183 184 185
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

186 187
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
188 189

dnl declare --enable-* args and collect ac_help strings
190 191 192 193 194 195
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],
196 197
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
198 199 200 201 202 203 204 205
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
206 207 208 209
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
210 211 212 213 214 215 216

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

AC_ARG_WITH(wintab,
            [AC_HELP_STRING([--with-wintab=DIRECTORY],
                            [use Wintab API with win32 backend])])
Tor Lillqvist's avatar
Tor Lillqvist committed
217 218 219 220 221 222
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

223
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32/quartz/directfb]] select non-default GDK target],
224 225 226 227
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
228 229
  x11|linux-fb|win32|quartz|directfb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz, directfb or win32.]);;
230 231
esac

Owen Taylor's avatar
Owen Taylor committed
232 233
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
234 235 236 237

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

238 239 240 241
AC_ARG_ENABLE(shadowfb,
              [AC_HELP_STRING([--disable-shadowfb],
                              [disable shadowfb support for linux-fb])],,
              [enable_shadowfb=yes])
242

243 244 245 246
AC_ARG_ENABLE(fbmanager,
              [AC_HELP_STRING([--enable-fbmanager],
                              [enable framebuffer manager support (GtkFB)])],,
              enable_fbmanager=no)
Alexander Larsson's avatar
Alexander Larsson committed
247
	
248
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
249
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
250
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
Elliot Lee's avatar
Elliot Lee committed
251
else
252
  if test "x$enable_debug" = "xno"; then
253
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
254
  else
255
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
256
  fi
Elliot Lee's avatar
Elliot Lee committed
257 258
fi

259 260 261 262 263
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


Owen Taylor's avatar
Owen Taylor committed
264 265
AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")

Alexander Larsson's avatar
Alexander Larsson committed
266
			
Elliot Lee's avatar
Elliot Lee committed
267 268 269 270
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
271
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
272 273 274 275
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
276
changequote(,)dnl
277
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
278 279 280 281
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
282

283
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
284 285 286 287 288 289 290 291 292
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
293
  fi
294 295
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
296

297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320
# 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
321
    esac
322 323 324 325 326 327 328
    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
329
  fi
Elliot Lee's avatar
Elliot Lee committed
330 331
fi

332 333 334
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

335 336 337 338 339 340
## 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
341 342 343
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
Matthias Clasen's avatar
Matthias Clasen committed
344 345
   pango >= pango_required_version dnl
   cairo >= cairo_required_version])
346

Tor Lillqvist's avatar
Tor Lillqvist committed
347 348 349 350 351 352 353 354
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
355 356
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

357 358 359 360 361
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
362 363 364
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
365 366 367 368

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
369
    export SED
370
    deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
371
    if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
372 373 374 375 376 377 378 379 380 381 382 383 384 385
      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)

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

389
AC_PATH_PROGS(PERL, perl5 perl)
390

391 392 393
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

394
REBUILD=\#
395 396
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
397
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
398
  REBUILD=
399 400
fi
AC_SUBST(REBUILD)
401

Matthias Clasen's avatar
Matthias Clasen committed
402
AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
403 404 405 406 407 408 409 410 411 412 413 414

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

416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451
# _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
	
452 453 454 455 456 457 458 459 460 461
# 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
  AC_DEFINE(HAVE_SIGSETJMP)
fi
Tor Lillqvist's avatar
Tor Lillqvist committed
462

Owen Taylor's avatar
Owen Taylor committed
463
# i18n stuff
464 465 466 467 468
# TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
# directories.  If you add a new language to ALL_LINGUAS, please make
# sure that both po/ and po-properties/ have .po files that correspond
# to your language.  If you only add one to po/, the build will break
# in po-properties/.
Abel Cheung's avatar
Abel Cheung committed
469
ALL_LINGUAS="af am ang ar az az_IR be bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ka ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@Latn vi wa xh yi zh_CN zh_HK zh_TW"
470
AM_GLIB_GNU_GETTEXT
471
LIBS="$LIBS $INTLLIBS"
472 473 474
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])
475

Owen Taylor's avatar
Owen Taylor committed
476
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
477

478 479
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
480
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
481

482
gtk_save_LIBS=$LIBS
483 484 485 486
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
487
     gtk_save_CFLAGS="$CFLAGS"
488 489 490 491 492
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
493
         CFLAGS="$gtk_save_CFLAGS"
494
         AC_MSG_WARN(
495 496 497 498
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
499 500 501
)
LIBS=$gtk_save_LIBS

502 503 504
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
505
    AC_MSG_RESULT(yes)
506 507
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
508 509
  *)
    AC_MSG_RESULT(no)
510 511
  ;;
esac
512 513 514 515 516 517 518 519 520 521 522 523 524 525

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

Manish Singh's avatar
Manish Singh committed
527 528 529 530
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),
531
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
532 533 534 535
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
536
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
537 538
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

539
#
Owen Taylor's avatar
Owen Taylor committed
540 541
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
542

543
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
544

545
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
546
  AC_MSG_ERROR([
547 548
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
549
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
550

551 552 553 554 555 556 557 558
# 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


Owen Taylor's avatar
Owen Taylor committed
559 560 561 562 563 564 565 566
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

Tor Lillqvist's avatar
Tor Lillqvist committed
567
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
568
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
569
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
570

571
if test "${with_wintab+set}" = set && test $with_wintab != no; then
Tor Lillqvist's avatar
Tor Lillqvist committed
572 573 574 575 576 577 578
  AC_MSG_CHECKING([for wintab.h])
  saved_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -I$with_wintab/include"
  AC_TRY_COMPILE([#include <windows.h>
#include <wintab.h>], 
   [],
   [AC_MSG_RESULT(yes)
579
    AC_MSG_CHECKING([for wntab32x.lib])
580
    if test -f $with_wintab/lib/i386/wntab32x.lib ; then
581
      AC_MSG_RESULT(yes)
582 583 584 585 586
      have_wintab=yes
      AC_DEFINE(HAVE_WINTAB)
      WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
      AC_SUBST(WINTAB_LIB)
    else
587 588
      AC_MSG_RESULT(no)
      CFLAGS="$saved_cflags"
589 590
      have_wintab=no
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
591 592
    ],
   [AC_MSG_RESULT(no)
593
    CFLAGS="$saved_cflags"
Tor Lillqvist's avatar
Tor Lillqvist committed
594 595 596
    have_wintab=no])
fi
AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
Tor Lillqvist's avatar
Tor Lillqvist committed
597

598 599 600
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

601

602 603
# Checks for header files.
AC_HEADER_STDC
604

605 606
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
607

608 609 610
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
611

Matthias Clasen's avatar
Matthias Clasen committed
612
AC_CHECK_FUNCS(mallinfo)
613 614
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
615

616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631
# 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
        AC_DEFINE(HAVE_SYS_SELECT_H)
        AC_MSG_RESULT([yes, found in sys/select.h])
    else
	AC_DEFINE(NO_FD_SET)
	AC_MSG_RESULT(no)
    fi
fi
632

633 634 635 636 637 638 639
# `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
   AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
fi
AC_MSG_RESULT($gdk_wchar_h)
640

641 642 643 644 645 646 647
# 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
   AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
fi
AC_MSG_RESULT($gdk_wctype_h)
648

649 650 651
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
652

653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671
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"
672

673 674 675 676 677 678
if test $gdk_working_wctype = no; then
   AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
   GDK_WLIBS=
fi
AC_MSG_RESULT($gdk_working_wctype)
AC_SUBST(GDK_WLIBS)
Havoc Pennington's avatar
Delete.  
Havoc Pennington committed
679

680 681 682 683 684 685 686 687
# 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
   AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
688 689 690 691
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

692

693 694 695
##################################################
# Checks for gdk-pixbuf
##################################################
696

697 698 699 700 701 702 703 704 705 706 707 708 709 710
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
   AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
fi


711
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
712

713 714 715
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
716

717 718
dynworks=false
deps=
719
if test x$enable_modules = xno; then
720 721 722 723
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
724
    ## for loop is to strip newline 
725
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
726 727 728
    for I in $tmp; do
        dynworks=$I
    done
729

730 731 732 733 734 735 736 737 738 739 740 741 742
    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
743

744 745 746 747 748 749
    if $dynworks; then
        AC_DEFINE(USE_GMODULE)
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
750
fi
Havoc Pennington's avatar
Havoc Pennington committed
751

Owen Taylor's avatar
Owen Taylor committed
752 753 754
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.

755 756 757 758 759 760 761 762 763
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])])
Owen Taylor's avatar
Owen Taylor committed
764

765
dnl Test for libtiff
Owen Taylor's avatar
Owen Taylor committed
766
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
767
    AC_CHECK_LIB(tiff, TIFFReadScanline,
Tor Lillqvist's avatar
Tor Lillqvist committed
768
      [AC_CHECK_HEADER(tiffio.h,
769
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
770 771 772
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
773
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
774 775 776
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
777
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
778
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
779
        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
780 781
  fi

Owen Taylor's avatar
Owen Taylor committed
782 783 784 785 786 787 788
  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

789
dnl Test for libjpeg
Owen Taylor's avatar
Owen Taylor committed
790
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
791 792 793 794 795 796 797 798 799 800
    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
801
#undef HAVE_STDLIB_H
802 803 804 805 806 807 808 809 810 811 812 813 814
#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,     
          AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
          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
815 816
  fi

Owen Taylor's avatar
Owen Taylor committed
817 818 819 820 821 822 823
  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

824
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
825
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
826 827 828 829 830 831 832 833 834 835 836 837 838
    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)
839
      if test "$png_ok" = yes; then
840 841 842 843 844 845 846 847 848 849 850
        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
851
      else
852
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
853 854
      fi
    fi
855
  fi
856

Owen Taylor's avatar
Owen Taylor committed
857 858 859 860 861 862 863 864
  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

865 866 867
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
868

869
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
870

871 872 873 874
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
875

876 877 878
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 ...],
879
dnl                [build the specified loaders into gdk-pixbuf])
880 881
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
882
                          build the specified loaders into gdk-pixbuf])
883

884
if $dynworks; then 
885
   :
886 887 888 889 890 891 892
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

893
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,xbm,tga,pcx"
894 895 896 897
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
898
else
899
  included_loaders="$with_included_loaders"
900 901
fi

902
AC_MSG_RESULT($included_loaders)
903

904 905
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
906

907 908
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
909
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
910 911 912 913
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
914

915
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
916
 INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
917
 eval INCLUDE_$loader=yes
918 919 920 921
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
922

923 924 925 926 927 928 929 930 931 932 933 934 935 936 937
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])

938
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
939

940 941 942 943 944 945
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)

Havoc Pennington's avatar
Havoc Pennington committed
946
if $dynworks ; then
947
  STATIC_LIB_DEPS=
948
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
949
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
950
  fi
951
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
952
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
953
  fi
954
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
955
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
956
  fi
957
else
958
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
959
fi
Elliot Lee's avatar
Elliot Lee committed
960

961 962 963
# 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.)
964
#
965
# This code is partially taken from Mesa
966
#
967 968 969 970 971 972 973 974 975
AC_MSG_CHECKING(for x86 platform)
case $host_cpu in
  i386|i486|i586|i686|i786|k6|k7)
	use_x86_asm=yes
        ;;
   *)
  	use_x86_asm=no
esac
AC_MSG_RESULT($use_x86_asm)
Elliot Lee's avatar
Elliot Lee committed
976

977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996
use_mmx_asm=no
if test $use_x86_asm = yes; then
    save_ac_ext=$ac_ext
    ac_ext=S
    
    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
      AC_DEFINE(USE_MMX)
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
    fi
Elliot Lee's avatar
Elliot Lee committed
997
fi
998

999
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1000

1001 1002 1003 1004 1005
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

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

1008
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1009

1010
if test $cross_compiling = yes; then
1011
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1012 1013
  AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
  if test x$GTK_UPDATE_ICON_CACHE = xno; then
1014
    REBUILD_PNGS=#
1015 1016
  fi
fi
1017

1018
if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1019 1020
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1021
*** gtkbuiltincache.h is not in the tree, and cannot be built
1022
*** because you don't have libpng, or (when cross-compiling) you 
1023
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
1024 1025 1026 1027
fi

AC_SUBST(REBUILD_PNGS)

1028
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1029 1030
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
GDK_PIXBUF_EXTRA_CFLAGS= 
1031
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1032
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1033

1034 1035 1036 1037 1038
AC_SUBST(GDK_PIXBUF_PACKAGES)
AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
AC_SUBST(GDK_PIXBUF_DEP_LIBS)
AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1039

1040

1041 1042 1043
########################################
# Windowing system checks
########################################
1044

1045 1046 1047
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1048 1049
	
X_PACKAGES=fontconfig
1050 1051 1052 1053 1054 1055
GDK_EXTRA_LIBS="$GDK_WLIBS"
GDK_EXTRA_CFLAGS=
	
# GTK+ uses some X calls, so needs to link against X directly
GTK_DEP_PACKAGES_FOR_X=
GTK_DEP_LIBS_FOR_X=
1056

1057
if test "x$gdktarget" = "xx11"; then
1058 1059 1060 1061 1062 1063 1064 1065 1066
  #
  # 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

1067
  #
1068
  # Check for basic X packages; we use pkg-config if available
1069
  #
1070
  if $PKG_CONFIG --exists x11 xext xrender; then
1071
    have_base_x_pc=true
1072
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
1073 1074
    x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
    X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095
    
    # 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
      case $I in 
        *.la) ;;
        *) x_libs_for_checks="$x_libs_for_checks $I" ;;
      esac
    done
    
    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
    
    x_cflags="$X_CFLAGS"
1096
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1097

1098 1099
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1100
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1101 1102
  fi

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

1106
  gtk_save_cppflags="$CPPFLAGS"
1107
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alexander Larsson's avatar
Alexander Larsson committed
1108

1109 1110 1111 1112 1113 1114 1115 1116 1117 1118
  gtk_save_LIBS=$LIBS
  LIBS="$x_libs_for_checks $LIBS"
  
  # 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.]))
1119 1120
  AC_CHECK_FUNC(XRenderQueryExtension, :,
                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1121

1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136
  # 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,
                [Define if <X11/extensions/XIproto.h> needed for xReply])],
           [AC_MSG_RESULT([unknown])
            AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])

1137
  # Check for XConvertCase, XInternAtoms (X11R6 specific)
1138

1139
  AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1140

1141 1142
  # Generic X11R6 check needed for XIM support; we could
  # probably use this to replace the above, but we'll
1143 1144
  # leave the separate checks for XConvertCase and XInternAtoms 
  # for clarity
1145
  
1146
  have_x11r6=false
1147 1148
  AC_CHECK_FUNC(XAddConnectionWatch,
      have_x11r6=true)
1149 1150 1151

  if $have_x11r6; then
    AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1152
  fi
1153
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1154 1155 1156 1157 1158 1159 1160

  # Check for XKB support.

  if test "x$enable_xkb" = "xyes"; then
        AC_MSG_WARN(XKB support explicitly enabled)
        AC_DEFINE(HAVE_XKB)
  elif test "x$enable_xkb" = "xmaybe"; then
1161 1162
        AC_CHECK_FUNC(XkbQueryExtension,
                      AC_DEFINE(HAVE_XKB))
1163 1164 1165 1166
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

1167
  # Check for shaped window extension
1168

1169 1170
  AC_CHECK_FUNC(XShapeCombineMask,
      AC_DEFINE(HAVE_SHAPE_EXT))
1171

1172
  # X SYNC check
1173 1174
  gtk_save_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS $x_cflags"
1175
  
1176 1177 1178 1179
  AC_CHECK_FUNC(XSyncQueryExtension,
      [AC_CHECK_HEADER(X11/extensions/sync.h,
	  AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
	  :, [#include <X11/Xlib.h>])])
1180

1181 1182
  CFLAGS="$gtk_save_CFLAGS"

1183 1184
  # Xshm checks

1185 1186 1187 1188 1189 1190 1191 1192 1193
  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
	[AC_CHECK_LIB(XextSam, XShmAttach, 
	    [GTK_ADD_LIB(x_extra_libs,XextSam)])])
  fi    

1194 1195 1196 1197 1198 1199
  if test "x$enable_shm" = "xyes"; then
    # Check for shared memory
    AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
    AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)

    # Check for the X shared memory extension header file
Owen Taylor's avatar
Owen Taylor committed
1200
    have_xshm=no 
1201 1202
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
Owen Taylor's avatar
Owen Taylor committed
1203
      :
1204
    else
Owen Taylor's avatar
Owen Taylor committed
1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
      gtk_save_CFLAGS="$CFLAGS"
      CFLAGS="$CFLAGS $x_cflags"
      AC_TRY_COMPILE([
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/extensions/XShm.h>
], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
      CFLAGS="$gtk_save_CFLAGS"
    fi
    AC_MSG_RESULT($have_xshm)
    if test $have_xshm = yes ; then
      AC_DEFINE(HAVE_XSHM_H)
1221 1222
    fi
  fi
Owen Taylor's avatar
Owen Taylor committed
1223

1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259
  # Check for Xinerama extension (Solaris impl or Xfree impl)

  gtk_save_cppflags="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $x_cflags"
  
  case "$host" in
      *-*-solaris*)
          # Check for solaris
	  AC_MSG_CHECKING(for Xinerama support on Solaris)
	  
	  have_solaris_xinerama=false
	  AC_CHECK_FUNC(XineramaGetInfo,
	      [AC_CHECK_HEADER(X11/extensions/xinerama.h,
  		  [have_solaris_xinerama=true], :,
		  [#include <X11/Xlib.h>])])
		
          if $have_solaris_xinerama ; then
            AC_DEFINE(HAVE_SOLARIS_XINERAMA)
	    AC_DEFINE(HAVE_XINERAMA) 
            AC_MSG_RESULT(yes)
          else
            AC_MSG_RESULT(no)
          fi
          ;;
      *)
	  # Check for XFree
          AC_MSG_CHECKING(for Xinerama support on XFree86)
	  
          have_xfree_xinerama=false
          if $PKG_CONFIG --exists xinerama ; then
             have_xfree_xinerama=true
             X_PACKAGES="$X_PACKAGES xinerama"
          else    
	      AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
	          [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
	              [GTK_ADD_LIB(x_extra_libs,Xinerama)
1260
		      have_xfree_xinerama=true], :,
1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283
                      [#include <X11/Xlib.h>])])
          fi

          if $have_xfree_xinerama ; then
            AC_DEFINE(HAVE_XFREE_XINERAMA)
	    AC_DEFINE(HAVE_XINERAMA) 
            AC_MSG_RESULT(yes)
         else
            AC_MSG_RESULT(no)
         fi
         ;;
  esac

  # set up things for XInput

  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
    AC_DEFINE(XINPUT_XFREE)
    
    if $PKG_CONFIG --exists xi ; then
      X_PACKAGES="$X_PACKAGES xi"
    else
      GTK_ADD_LIB(x_extra_libs, Xi)
    fi
1284
  else
1285
    AC_DEFINE(XINPUT_NONE)
1286
  fi
Owen Taylor's avatar
Owen Taylor committed
1287

1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)

  # Check for the RANDR extension

  have_randr=false
  if $PKG_CONFIG --exists xrandr ; then
    have_randr=true
    X_PACKAGES="$X_PACKAGES xrandr"
  else    
    AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
       [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
          # RANDR requires RENDER
          [have_randr=true
          GTK_ADD_LIB(x_extra_libs, Xrender)
          GTK_ADD_LIB(x_extra_libs, Xrandr)],
	  :, [#include <X11/Xlib.h>])])
  fi

  if $have_randr ; then
     AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
  fi
       
  # Checks for Xcursor library
  
  if $PKG_CONFIG --exists xcursor ; then
    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
    
    X_PACKAGES="$X_PACKAGES xcursor"
  fi

  # Checks for XFixes extension
  
  if $PKG_CONFIG --exists xfixes ; then
    AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
    
    X_PACKAGES="$X_PACKAGES xfixes"
  fi

1326
  if $have_base_x_pc ; then
1327 1328
    GDK_EXTRA_LIBS="$x_extra_libs"
  else
1329
    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1330 1331 1332 1333 1334
  fi

  CPPFLAGS="$gtk_save_cppflags"
  LIBS="$gtk_save_libs"

1335
  AM_CONDITIONAL(USE_X11, true)
Owen Taylor's avatar
Owen Taylor committed
1336
else
1337
  AM_CONDITIONAL(XINPUT_XFREE, false)
1338
  AM_CONDITIONAL(USE_X11, false)
1339
  AM_CONDITIONAL(HAVE_X11R6, false)
Owen Taylor's avatar
Owen Taylor committed
1340 1341
fi

Tor Lillqvist's avatar
Tor Lillqvist committed
1342 1343 1344 1345 1346 1347 1348 1349
if test "x$gdktarget" = "xwin32"; then
  # We start off with the libraries from Pango

  if test x$have_wintab = xyes; then
    GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
    AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
  fi

1350
  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
Tor Lillqvist's avatar
Tor Lillqvist committed
1351 1352 1353 1354 1355
  AM_CONDITIONAL(USE_WIN32, true)
else
  AM_CONDITIONAL(USE_WIN32, false)
fi

Anders Carlsson's avatar
Anders Carlsson committed
1356 1357 1358 1359 1360 1361 1362
if test "x$gdktarget" = "xquartz"; then
  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
  AM_CONDITIONAL(USE_QUARTZ, true)
else
  AM_CONDITIONAL(USE_QUARTZ, false)
fi

1363
GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1364
GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS"
1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375

AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)

if test "x$gdktarget" = "xlinux-fb"; then
  if test x$enable_shadowfb = xyes ; then
    AC_DEFINE(ENABLE_SHADOW_FB)
  fi
1376 1377 1378 1379 1380 1381 1382

  if test x$enable_fbmanager = xyes ; then
    AC_DEFINE(ENABLE_FB_MANAGER)
    AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
  else
    AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
  fi
1383 1384 1385 1386
  
  AM_CONDITIONAL(USE_LINUX_FB, true)
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
1387
  AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1388
fi
Owen Taylor's avatar
Owen Taylor committed
1389

1390
if test "x$gdktarget" = "xdirectfb"; then
1391
  DIRECTFB_REQUIRED_VERSION=0.9.24
1392 1393
  AC_MSG_CHECKING(for DirectFB)

1394
  if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
1395
      AC_MSG_RESULT(found)
1396 1397
      GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
      GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
1398 1399
  else
      AC_MSG_ERROR([
1400 1401 1402
*** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend 
*** are required. The latest version of DirectFB is always available 
*** from http://www.directfb.org/.
1403 1404 1405 1406 1407 1408 1409 1410 1411
  ])
  fi

  AM_CONDITIONAL(USE_DIRECTFB, true)
else
  AM_CONDITIONAL(USE_DIRECTFB, false)
fi


1412
# Check for Pango flags
1413

1414 1415 1416 1417 1418
if test "x$gdktarget" = "xwin32"; then
	PANGO_PACKAGES="pangowin32 pangocairo"
else
	PANGO_PACKAGES="pango pangocairo"
fi
1419

1420 1421 1422 1423
AC_MSG_CHECKING(Pango flags)
if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
        PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
        PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1424

Owen Taylor's avatar