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

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

m4_define([gtk_major_version], [2])
14
m4_define([gtk_minor_version], [5])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [6])
16 17
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
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 25 26 27 28
# 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
# forward/backwards binary compatibility with. This is used for module
# locations. (Should this be backwards-compat instead?)
#
#GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
Owen Taylor's avatar
Owen Taylor committed
29
m4_define([gtk_binary_version], [2.4.0])
30 31

# required versions of other packages
32
m4_define([glib_required_version], [2.5.7])
33
m4_define([pango_required_version], [1.5.1])
34 35 36 37 38 39 40 41 42 43 44 45 46 47
m4_define([atk_required_version], [1.0.1])


AC_INIT([gtk+], [gtk_version],
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk+],
	[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
48

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


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

# libtool versioning
79 80 81 82 83 84
#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`

85 86 87 88 89 90
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
91
AC_SUBST(LT_CURRENT_MINUS_AGE)
92

93

94 95 96 97
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
98 99 100
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
101 102 103 104 105 106
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)

107 108
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
109
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
110

111 112
AC_CANONICAL_HOST

113 114 115 116 117 118 119 120 121 122 123 124
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
125 126

dnl Initialize libtool
127
AC_PROG_CC
128
AM_DISABLE_STATIC
129

Tor Lillqvist's avatar
Typo.  
Tor Lillqvist committed
130
if test "$os_win32" = "yes"; then
131 132 133 134 135 136 137 138 139 140
  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

Elliot Lee's avatar
Elliot Lee committed
141 142
AM_PROG_LIBTOOL

143 144 145
# Make sure we use 64-bit versions of various file stuff.
AC_SYS_LARGEFILE

146
AM_PROG_AS
147

Elliot Lee's avatar
Elliot Lee committed
148 149 150
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

Tor Lillqvist's avatar
Tor Lillqvist committed
151 152 153 154 155 156 157 158 159 160 161 162 163
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")
164
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
165 166 167 168 169 170

if test "$os_win32" = "yes"; then
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

171 172
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
173 174

dnl declare --enable-* args and collect ac_help strings
175 176 177 178 179 180
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],
181 182
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
183 184 185 186 187 188 189 190 191 192 193 194
AC_ARG_ENABLE(ansi,
              [AC_HELP_STRING([--enable-ansi],
                              [turn on strict ansi [default=no]])],,
              [enable_ansi=no])
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])
195 196 197 198
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
199 200 201 202 203 204 205 206 207 208

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])])
AC_ARG_WITH(ie55,
            [AC_HELP_STRING([--with-ie55=DIRECTORY],
                            [IE5.5 libs and headers (for Active IMM)])])
Tor Lillqvist's avatar
Tor Lillqvist committed
209

210
GLIB_AC_DIVERT_BEFORE_HELP([
Tor Lillqvist's avatar
Tor Lillqvist committed
211 212 213 214 215
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi
216
])
Tor Lillqvist's avatar
Tor Lillqvist committed
217

218
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
219 220 221 222
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
Tor Lillqvist's avatar
Tor Lillqvist committed
223 224
  x11|linux-fb|win32) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
225 226
esac

Owen Taylor's avatar
Owen Taylor committed
227 228
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
229 230 231 232

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

233 234 235 236
AC_ARG_ENABLE(shadowfb,
              [AC_HELP_STRING([--disable-shadowfb],
                              [disable shadowfb support for linux-fb])],,
              [enable_shadowfb=yes])
237

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

254 255 256 257 258
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


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

Alexander Larsson's avatar
Alexander Larsson committed
261
			
Elliot Lee's avatar
Elliot Lee committed
262 263 264 265
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
266
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
267 268 269 270
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
271
changequote(,)dnl
272
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
273 274 275 276
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
277

278
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
279 280 281 282 283 284 285 286 287
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
288
  fi
289 290
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
291

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

327 328 329
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

330 331 332 333 334 335
## 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
336 337 338 339
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
   pango >= pango_required_version])
340

Tor Lillqvist's avatar
Tor Lillqvist committed
341 342 343 344 345 346 347 348
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
349 350
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

351 352 353 354 355
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
356 357 358
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
359 360 361 362 363

AC_MSG_CHECKING([Whether to write dependencies into .pc files])
case $enable_explicit_deps in
  auto)
    deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
jacob berkman's avatar
jacob berkman committed
364
    if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
365 366 367 368 369 370 371 372 373 374 375 376 377 378
      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)

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

382
AC_PATH_PROGS(PERL, perl5 perl)
383

384 385 386
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

387
REBUILD=\#
388 389
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
390
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
391
  REBUILD=
392 393
fi
AC_SUBST(REBUILD)
394

Owen Taylor's avatar
Owen Taylor committed
395
AC_CHECK_FUNCS(lstat mkstemp flockfile)
396 397 398 399 400 401 402 403 404 405 406

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

Owen Taylor's avatar
Owen Taylor committed
408
# i18n stuff
409 410 411 412 413
# 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/.
414
ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu ia id is it ja ko li lt lv mi mk ml mn mr ms ne nl nn no pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta th tk tr uk uz uz@Latn vi wa yi zh_CN zh_TW"
415
AM_GLIB_GNU_GETTEXT
416
LIBS="$LIBS $INTLLIBS"
417 418 419
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])
420

421
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
422

423 424
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
425
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
426

427
gtk_save_LIBS=$LIBS
428 429 430 431
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
432
     gtk_save_CFLAGS="$CFLAGS"
433 434 435 436 437
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
438
         CFLAGS="$gtk_save_CFLAGS"
439
         AC_MSG_WARN(
440 441 442 443
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
444 445 446
)
LIBS=$gtk_save_LIBS

447 448 449
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
450
    AC_MSG_RESULT(yes)
451 452
    MATH_LIB=
  ;;
453 454
  *)
    AC_MSG_RESULT(no)
455 456 457
  ;;
esac

458 459 460 461
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),
462
  gtk_save_CFLAGS="$CFLAGS"
463 464 465 466
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
467
    CFLAGS="$gtk_save_CFLAGS"
468 469
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

470
#
Owen Taylor's avatar
Owen Taylor committed
471 472
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
473

474
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
475

476
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
477
  AC_MSG_ERROR([
478 479
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
480
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
481

Owen Taylor's avatar
Owen Taylor committed
482 483 484 485 486 487 488 489
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

490
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
491
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
492
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
493 494 495 496 497

if test "${with_ie55+set}" = set && test $with_ie55 != no; then
  AC_MSG_CHECKING([for dimm.h])
  saved_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
498
  AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
499 500 501
#ifdef __GNUC__
#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
502 503 504
#endif
#include <windows.h>
#include <objbase.h>
505
#include <imm.h>
506
#ifdef __GNUC__
507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531
#undef IMEMENUITEMINFOA
#undef IMEMENUITEMINFOW
#endif
#include <dimm.h>
],
   [],
   [AC_MSG_RESULT(yes)
    AC_MSG_CHECKING([for IE55 uuid.lib])
    if test -f $with_ie55/Lib/uuid.lib ; then
      AC_MSG_RESULT(yes)
      have_ie55=yes
      AC_DEFINE(HAVE_DIMM_H)
      IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
      AC_SUBST(IE55_UUID_LIB)
    else
      AC_MSG_RESULT(no)
      CFLAGS="$saved_CFLAGS"
      have_ie55=no
    fi
    ],
   [AC_MSG_RESULT(no)
    CFLAGS="$saved_CFLAGS"
    have_ie55=no])
fi
AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
Tor Lillqvist's avatar
Tor Lillqvist committed
532

533
if test "${with_wintab+set}" = set && test $with_wintab != no; then
Tor Lillqvist's avatar
Tor Lillqvist committed
534 535 536 537 538 539 540
  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)
541
    AC_MSG_CHECKING([for wntab32x.lib])
542
    if test -f $with_wintab/lib/i386/wntab32x.lib ; then
543
      AC_MSG_RESULT(yes)
544 545 546 547 548
      have_wintab=yes
      AC_DEFINE(HAVE_WINTAB)
      WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
      AC_SUBST(WINTAB_LIB)
    else
549 550
      AC_MSG_RESULT(no)
      CFLAGS="$saved_cflags"
551 552
      have_wintab=no
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
553 554
    ],
   [AC_MSG_RESULT(no)
555
    CFLAGS="$saved_cflags"
Tor Lillqvist's avatar
Tor Lillqvist committed
556 557 558
    have_wintab=no])
fi
AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
559

560 561 562
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

563

564 565
# Checks for header files.
AC_HEADER_STDC
566

567 568
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
569

570 571 572
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
573

Matthias Clasen's avatar
Matthias Clasen committed
574
AC_CHECK_FUNCS(mallinfo)
575 576
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
577

578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593
# 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
594

595 596 597 598 599 600 601
# `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)
602

603 604 605 606 607 608 609
# 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)
610

611 612 613
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
614

615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
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"
634

635 636 637 638 639 640
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
Havoc Pennington committed
641

642 643 644 645 646 647 648 649
# 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)

650

651 652 653
##################################################
# Checks for gdk-pixbuf
##################################################
654

655 656 657 658 659 660 661 662 663 664 665 666 667 668
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


669
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
670

671 672 673
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
674

675 676
dynworks=false
deps=
677
if test x$enable_modules = xno; then
678 679 680 681
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
682
    ## for loop is to strip newline 
683
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
684 685 686
    for I in $tmp; do
        dynworks=$I
    done
687

688 689 690 691 692 693 694 695 696 697 698 699 700
    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
701

702 703 704 705 706 707
    if $dynworks; then
        AC_DEFINE(USE_GMODULE)
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
708
fi
Havoc Pennington's avatar
Havoc Pennington committed
709

Owen Taylor's avatar
Owen Taylor committed
710 711 712
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.

713 714 715 716 717 718 719 720 721
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
722

723
dnl Test for libtiff
Owen Taylor's avatar
Owen Taylor committed
724
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
725
    AC_CHECK_LIB(tiff, TIFFReadScanline,
Tor Lillqvist's avatar
Tor Lillqvist committed
726
      [AC_CHECK_HEADER(tiffio.h,
727
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
728 729 730
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
731
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
732 733 734
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
735
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
736
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
737
        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
738 739
  fi

Owen Taylor's avatar
Owen Taylor committed
740 741 742 743 744 745 746
  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

747
dnl Test for libjpeg
Owen Taylor's avatar
Owen Taylor committed
748
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
749 750 751 752 753 754 755 756 757 758
    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
759
#undef HAVE_STDLIB_H
760 761 762 763 764 765 766 767 768 769 770 771 772
#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
773 774
  fi

Owen Taylor's avatar
Owen Taylor committed
775 776 777 778 779 780 781
  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

782
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
783
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
784 785 786 787 788 789 790 791 792 793 794 795 796
    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)
797
      if test "$png_ok" = yes; then
798 799 800 801 802 803 804 805 806 807 808
        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
809
      else
810
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
811 812
      fi
    fi
813
  fi
814

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

823 824 825
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
826

827
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
828

829 830 831 832
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
833

834 835 836 837 838 839 840 841
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 ...],
dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
                          build the specified loaders into gdk-pixbuf (only
                          used if module loading disabled)])
842

843 844 845 846 847 848 849 850 851
if $dynworks; then 
        :
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

852
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
853 854 855 856
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
857
else
858
  included_loaders="$with_included_loaders"
859 860
fi

861
AC_MSG_RESULT($included_loaders)
862

863 864
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
865

866 867
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
868
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
869 870 871 872
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
873

874 875 876 877 878 879
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
 INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
880

881
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
882

883 884 885 886 887 888
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
889
if $dynworks ; then
890
  STATIC_LIB_DEPS=
891
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
892
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
893
  fi
894
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
895
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
896
  fi
897
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
898
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
899
  fi
900
else
901
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
902
fi
Elliot Lee's avatar
Elliot Lee committed
903

904 905 906
# 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.)
907
#
908
# This code is partially taken from Mesa
909
#
910 911 912 913 914 915 916 917 918
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)
919

920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939
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
940
fi
941

942
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
943

944 945 946 947 948
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

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

951
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
952

953
if test $cross_compiling = yes; then
954 955
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
  if test x$GDK_PIXBUF_CSOURCE = xno; then
956
    REBUILD_PNGS=#
957 958
  fi
fi
959

960 961 962 963 964 965 966 967 968 969
if test ! -f $srcdir/gtk/stock-icons/gtkstockpixbufs.h && 
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
*** gtkstockpixbufs.h is not in the tree, and cannot be built
*** because you don't have libpng, or (when cross-compiling) you 
*** don't have a prebuilt gdk-pixbuf-csource on the host system.])
fi

AC_SUBST(REBUILD_PNGS)

970
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
971 972
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
GDK_PIXBUF_EXTRA_CFLAGS= 
973
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
974
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
975

976 977 978 979 980
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)
981

982

983 984 985
########################################
# Windowing system checks
########################################
986

987 988
GDK_EXTRA_LIBS=$GDK_WLIBS
GDK_EXTRA_CFLAGS= 
989
GTK_DEP_LIBS_FOR_X=
990

991 992
FREETYPE_LIBS=
FREETYPE_CFLAGS=
993
if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
994 995 996 997 998 999 1000 1001 1002
  #
  # Checks for FreeType
  #
  have_freetype=false
  AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
  if test "x$FREETYPE_CONFIG" != "xno" ; then
    FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
    FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`

1003 1004 1005 1006
    gtk_save_LIBS="$LIBS"
    LIBS="$FREETYPE_LIBS $LIBS"
    AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
    LIBS="$gtk_save_LIBS"
1007 1008 1009 1010 1011 1012 1013

    if $have_freetype ; then
      gtk_save_cppflags="$CPPFLAGS"
      CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"

      AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
      AC_TRY_COMPILE([
1014 1015
#include <ft2build.h>
#include FT_FREETYPE_H
1016 1017
#include FT_ERRORS_H
    ],
1018 1019
	             [(void)1;],:,have_freetype=false)
      if $have_freetype ; then
1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031
        AC_MSG_RESULT(yes)
      else
        AC_MSG_RESULT(no)
      fi

      CPPFLAGS="$gtk_save_cppflags"
    fi
  fi
  AC_SUBST(FREETYPE_LIBS)
  AC_SUBST(FREETYPE_CFLAGS)
fi

1032
if test "x$gdktarget" = "xx11"; then
1033
  # We start off with the libraries from Pango
Elliot Lee's avatar
Elliot Lee committed
1034

1035 1036
  ## be sure we also have Pango built with Xft2 support
  if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
1037 1038 1039
    if $have_freetype ; then
      :
    else
1040
      AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
1041
    fi
1042
  else
1043
    AC_MSG_ERROR([Pango 1.2.0 and Xft backend is required for x11 target])
1044
  fi
1045

1046 1047
  if $PKG_CONFIG --exists xft ; then : ; else
    AC_MSG_ERROR([Xft version 2 is required for x11 target])
1048 1049
  fi

1050 1051 1052
  #
  # If Pango included the shared library dependencies from X11 in
  # the pkg-config output, then we use that (to avoid duplicates).
1053
  # but if they were omitted to avoid binary compatibility problems,
1054 1055
  # then we need to repeat the checks.
  #
1056
  x_libs="`$PKG_CONFIG --libs pangoxft`"
1057
  case "$x_libs" in
1058 1059 1060 1061
    *-lX11*) pango_omitted_x_deps=no ;;
    *)       pango_omitted_x_deps=yes ;;
  esac

1062
  x_cflags="`$PKG_CONFIG --cflags pangoxft`"
1063
  x_extra_libs=
Elliot Lee's avatar
Elliot Lee committed
1064

1065 1066 1067 1068 1069
  AC_PATH_XTRA
  if test x$no_x = xyes ; then
    AC_MSG_ERROR([X development libraries not found])
  fi
  
1070
  if test $pango_omitted_x_deps = yes ; then
1071 1072
    # Old versions of Xft didn't necessarily include -lX11 in the output
    x_libs="`pkg-config --libs xft` -lX11 $X_EXTRA_LIBS"
1073 1074
  fi    	

Havoc Pennington's avatar
Havoc Pennington committed
1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086
  ## Strip the .la 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

  # Sanity check for the X11 library
  AC_CHECK_LIB(X11, XOpenDisplay, :,
1087
            AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
Havoc Pennington's avatar
Havoc Pennington committed
1088
            $x_libs_for_checks)
Elliot Lee's avatar
Elliot Lee committed
1089

1090 1091
  if test "x$enable_shm" = "xyes"; then
    # Check for the Xext library (needed for XShm extention)
1092
    AC_CHECK_LIB(Xext, XShmAttach,
1093
        [GTK_ADD_LIB(x_extra_libs,Xext)],
1094
        # On AIX, it is in XextSam instead, but we still need -lXext
1095 1096 1097 1098
        [AC_CHECK_LIB(XextSam, XShmAttach, 
            [GTK_ADD_LIB(x_extra_libs,Xext)
             GTK_ADD_LIB(x_extra_libs,XextSam)
            ], , -lXext $x_libs_for_checks)],
Havoc Pennington's avatar
Havoc Pennington committed
1099
        $x_libs_for_checks)
1100
  fi
Elliot Lee's avatar
Elliot Lee committed
1101

1102
  GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1103
  # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1104
  GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1105

1106 1107 1108 1109 1110
  # GTK+ uses some X calls, so needs to link against X directly
  if test $enable_explicit_deps != yes ; then
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
  fi

Alexander Larsson's avatar
Alexander Larsson committed
1111 1112
  # Check for Xinerama extension (Solaris impl or Xfree impl)

1113 1114 1115
  gtk_save_cppflags="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $x_cflags"

Alexander Larsson's avatar
Alexander Larsson committed
1116 1117 1118 1119 1120
  case "$host" in
      *-*-solaris*)
          # Check for solaris
	  use_solaris_xinerama=yes
	  AC_CHECK_LIB(Xext, XineramaGetInfo,
1121 1122 1123
			use_solaris_xinerama=yes, 
			use_solaris_xinerama=no,
			-lXext $x_libs_for_checks)
1124
	  if test "x$use_solaris_xinerama" = "xyes"; then
Alexander Larsson's avatar
Alexander Larsson committed
1125
	      AC_CHECK_HEADER(X11/extensions/xinerama.h,
1126
	        [GTK_ADD_LIB(x_extra_libs,Xext)
Alexander Larsson's avatar
Alexander Larsson committed
1127
		AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1128 1129
		AC_DEFINE(HAVE_XINERAMA)], 
		use_solaris_xinerama=no,[#include <X11/Xlib.h>])
Alexander Larsson's avatar
Alexander Larsson committed
1130 1131 1132 1133 1134 1135 1136 1137
	  fi	
	  AC_MSG_CHECKING(for Xinerama support on Solaris)
	  AC_MSG_RESULT($use_solaris_xinerama);
	  ;;
      *)
	  # Check for XFree
	  use_xfree_xinerama=yes
	  AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1138
	      [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1139 1140
	          [GTK_ADD_LIB(x_extra_libs,Xext)
	          GTK_ADD_LIB(x_extra_libs,Xinerama)
Alexander Larsson's avatar
Alexander Larsson committed
1141
		  AC_DEFINE(HAVE_XFREE_XINERAMA)
1142
		  AC_DEFINE(HAVE_XINERAMA)], 
1143 1144
		  use_xfree_xinerama=no,
                  [#include <X11/Xlib.h>])],
1145
	      use_xfree_xinerama=no, -lXext $x_libs_for_checks)
Alexander Larsson's avatar
Alexander Larsson committed
1146 1147 1148 1149 1150
	  AC_MSG_CHECKING(for Xinerama support on XFree86)
	  AC_MSG_RESULT($use_xfree_xinerama);	    
          ;;
  esac

1151 1152
  CPPFLAGS="$gtk_save_cppflags"

1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
  # Check for xReply

  gtk_save_cppflags="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"

  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])])])

  CPPFLAGS="$gtk_save_cppflags"

1173
  # Check for shaped window extension
Owen Taylor's avatar
Owen Taylor committed
1174

1175
  AC_CHECK_LIB(Xext, XShapeCombineMask,
Owen Taylor's avatar
Owen Taylor committed
1176
      [GTK_ADD_LIB(x_extra_libs,Xext)
1177
       AC_DEFINE(HAVE_SHAPE_EXT)],
1178
      ,
Havoc Pennington's avatar
Havoc Pennington committed
1179
      $x_libs_for_checks)
1180 1181 1182 1183 1184 1185

  # Check for XConvertCase (X11R6 specific)

  AC_CHECK_LIB(X11, XConvertCase,
      AC_DEFINE(HAVE_XCONVERTCASE),
      ,
Havoc Pennington's avatar
Havoc Pennington committed
1186
      $x_libs_for_checks)
1187

1188 1189 1190 1191 1192 1193 1194 1195
  # Check for XInternAtoms (X11R6 specific)

  AC_CHECK_LIB(X11, XInternAtoms,
      AC_DEFINE([HAVE_XINTERNATOMS], 1,
          [Define to 1 if you have the `XInternAtoms' function.]),
      ,
      $x_libs_for_checks)

1196 1197
  # Generic X11R6 check needed for XIM support; we could
  # probably use this to replace the above, but we'll
1198 1199
  # leave the separate checks for XConvertCase and XInternAtoms 
  # for clarity
1200 1201 1202 1203 1204 1205 1206 1207
  have_x11r6=false
  AC_CHECK_LIB(X11, XAddConnectionWatch,
      have_x11r6=true,
      ,
      $x_libs_for_checks)

  if $have_x11r6; then
    AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1208
  fi
1209
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1210 1211 1212 1213 1214 1215 1216 1217 1218 1219

  # 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
        AC_CHECK_LIB(X11, XkbQueryExtension,
                     AC_DEFINE(HAVE_XKB),
	             ,
Havoc Pennington's avatar
Havoc Pennington committed
1220
	             $x_libs_for_checks)
1221 1222 1223 1224 1225 1226 1227 1228 1229
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

  x_cflags="$X_CFLAGS"
  x_ldflags="$X_LDFLAGS"

  # set up things for XInput

1230
  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1231
    AC_DEFINE(XINPUT_XFREE)
1232
    GTK_ADD_LIB(x_extra_libs, Xi)
1233 1234 1235 1236
  else
    AC_DEFINE(XINPUT_NONE)
  fi

1237
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1238

1239 1240 1241 1242 1243
  # Check for the RANDR extension

  AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
      [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
          # RANDR requires RENDER
1244 1245 1246
          [GTK_ADD_LIB(x_extra_libs, Xrender)
          GTK_ADD_LIB(x_extra_libs, Xrandr)
	  AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1247
	  :, [#include <X11/Xlib.h>])], : ,
1248 1249
       $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)

Matthias Clasen's avatar
Matthias Clasen committed
1250
  # Checks for Xcursor library
1251
  
Matthias Clasen's avatar
Matthias Clasen committed
1252 1253 1254 1255 1256
  have_xcursor=false
  PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)

  if $have_xcursor ; then
    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1257 1258
    GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xcursor` $GDK_EXTRA_CFLAGS"
    GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xcursor` $GDK_EXTRA_LIBS"
Matthias Clasen's avatar
Matthias Clasen committed
1259
  fi
1260

1261 1262
  # X SYNC check
  AC_CHECK_LIB(Xext, XSyncQueryExtension,
1263 1264 1265 1266 1267
      [AC_CHECK_HEADER(X11/extensions/sync.h,
          [GTK_ADD_LIB(x_extra_libs, Xext)
	  AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library)],
	  :, [#include <X11/Xlib.h>])], : ,
       $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
1268

1269 1270 1271 1272 1273 1274 1275 1276 1277 1278
  # Checks for XFixes extension
  
  have_xfixes=false
  PKG_CHECK_MODULES(XFIXES, xfixes, have_xfixes=true, :)

  if $have_xfixes ; then
    AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
    GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags xfixes` $GDK_EXTRA_CFLAGS"
    GDK_EXTRA_LIBS="`$PKG_CONFIG --libs xfixes` $GDK_EXTRA_LIBS"
  fi
Matthias Clasen's avatar
Matthias Clasen committed
1279
    
1280 1281
  # Xshm checks

1282 1283 1284 1285 1286 1287
  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
1288
    have_xshm=no 
1289 1290
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
Owen Taylor's avatar
Owen Taylor committed
1291
      :
1292
    else
Owen Taylor's avatar
Owen Taylor committed
1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308
      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)
1309 1310
    fi
  fi
Owen Taylor's avatar
Owen Taylor committed
1311

1312
  if test $pango_omitted_x_deps = yes ; then
1313
    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1314
  else
1315
    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1316
  fi
Owen Taylor's avatar
Owen Taylor committed
1317

1318
  AM_CONDITIONAL(USE_X11, true)
Owen Taylor's avatar
Owen Taylor committed
1319
else
1320
  AM_CONDITIONAL(XINPUT_XFREE, false)
1321
  AM_CONDITIONAL(USE_X11, false)
1322
  AM_CONDITIONAL(HAVE_X11R6, false)
Owen Taylor's avatar
Owen Taylor committed
1323 1324
fi

Tor Lillqvist's avatar
Tor Lillqvist committed
1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338
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

  GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
  AM_CONDITIONAL(USE_WIN32, true)
else
  AM_CONDITIONAL(USE_WIN32, false)
fi

1339
GDK_PIXBUF_XLIB_PACKAGES=
1340
GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1341
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"
1342 1343 1344 1345 1346 1347 1348 1349

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
1350 1351 1352
  if $have_freetype ; then
    :
  else
1353
    AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
Owen Taylor's avatar
Owen Taylor committed
1354 1355
  fi

1356
  ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1357
  case "$ft2_libs" in
1358 1359 1360 1361
    *-lfreetype*) pango_omitted_ft2_deps=no ;;
    *)            pango_omitted_ft2_deps=yes ;;
  esac

1362
  CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
Owen Taylor's avatar
Owen Taylor committed
1363