configure.in 45.2 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1
# Process this file with autoconf to produce a configure script.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
# 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])
m4_define([gtk_minor_version], [3])
m4_define([gtk_micro_version], [0])
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age], [300])
# 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
m4_define([gtk_binary_version], [2.2.0])

# required versions of other packages
m4_define([glib_required_version], [2.1.4])
m4_define([pango_required_version], [1.0.1])
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
47

Owen Taylor's avatar
Owen Taylor committed
48
#
49 50 51 52 53 54 55 56
# For each of the libraries we build, we define the following
# substituted variables:
#
# foo_PACKAGES:     pkg-config packages this library requires
# foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
# foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
# foo_DEP_LIBS:     All libraries this module requires
# foo_DEP_CFLAGS:   All cflags this module requires
57 58


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

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

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

91

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

105 106
GETTEXT_PACKAGE=gtk20
AC_SUBST(GETTEXT_PACKAGE)
107
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
108

Elliot Lee's avatar
Elliot Lee committed
109 110

dnl Initialize libtool
111
AC_PROG_CC
112
AM_DISABLE_STATIC
Tor Lillqvist's avatar
Tor Lillqvist committed
113
AC_LIBTOOL_WIN32_DLL
Elliot Lee's avatar
Elliot Lee committed
114 115
AM_PROG_LIBTOOL

116
AM_PROG_AS
117

Elliot Lee's avatar
Elliot Lee committed
118 119 120 121 122
dnl Initialize maintainer mode
AM_MAINTAINER_MODE

AC_CANONICAL_HOST

Tor Lillqvist's avatar
Tor Lillqvist committed
123 124 125 126 127 128 129 130 131 132 133 134
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")

135
MATH_LIB=-lm
Tor Lillqvist's avatar
Tor Lillqvist committed
136 137 138 139
AC_MSG_CHECKING([for native Win32])
case "$host" in
  *-*-mingw*)
    os_win32=yes
140
    MATH_LIB=
Tor Lillqvist's avatar
Tor Lillqvist committed
141 142 143 144 145 146 147 148 149 150 151 152 153
    ;;
  *)
    os_win32=no
    ;;
esac
AC_MSG_RESULT([$os_win32])
AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")

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)

154 155
m4_define([debug_default],
          m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
156 157

dnl declare --enable-* args and collect ac_help strings
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
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],
                              [support shared memory if available [default=yes]])],
              [echo $enable_shm, enable_shm="yes"])
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])

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
188

189
GLIB_AC_DIVERT_BEFORE_HELP([
Tor Lillqvist's avatar
Tor Lillqvist committed
190 191 192 193 194
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi
195
])
Tor Lillqvist's avatar
Tor Lillqvist committed
196

197
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
198 199 200 201
	gdktarget=$with_gdktarget)

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

Owen Taylor's avatar
Owen Taylor committed
206 207
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
208 209 210 211

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

212 213 214 215
AC_ARG_ENABLE(shadowfb,
              [AC_HELP_STRING([--disable-shadowfb],
                              [disable shadowfb support for linux-fb])],,
              [enable_shadowfb=yes])
216

217 218 219 220
AC_ARG_ENABLE(fbmanager,
              [AC_HELP_STRING([--enable-fbmanager],
                              [enable framebuffer manager support (GtkFB)])],,
              enable_fbmanager=no)
Alexander Larsson's avatar
Alexander Larsson committed
221
	
222
if test "x$enable_debug" = "xyes"; then
Tim Janik's avatar
Tim Janik committed
223
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
224
  GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
Elliot Lee's avatar
Elliot Lee committed
225
else
226
  if test "x$enable_debug" = "xno"; then
227
    GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
228
  else
229
    GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
230
  fi
Elliot Lee's avatar
Elliot Lee committed
231 232
fi

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

Alexander Larsson's avatar
Alexander Larsson committed
235
			
Elliot Lee's avatar
Elliot Lee committed
236 237 238 239
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
240
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
241 242 243 244
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

Raja R Harinath's avatar
Raja R Harinath committed
245
changequote(,)dnl
246
if test "x$GCC" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
247 248 249 250
  case " $CFLAGS " in
  *[\ \	]-Wall[\ \	]*) ;;
  *) CFLAGS="$CFLAGS -Wall" ;;
  esac
Elliot Lee's avatar
Elliot Lee committed
251

252
  if test "x$enable_ansi" = "xyes"; then
Raja R Harinath's avatar
Raja R Harinath committed
253 254 255 256 257 258 259 260 261
    case " $CFLAGS " in
    *[\ \	]-ansi[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -ansi" ;;
    esac

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
262
  fi
263 264
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
265

266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
# 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
290
    esac
291 292 293 294 295 296 297
    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
298
  fi
Elliot Lee's avatar
Elliot Lee committed
299 300
fi

301 302 303
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

304 305 306 307 308 309
## 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
310 311 312 313
PKG_CHECK_MODULES(BASE_DEPENDENCIES,
  [glib-2.0 >= glib_required_version dnl
   atk >= atk_required_version dnl
   pango >= pango_required_version])
314

Tor Lillqvist's avatar
Tor Lillqvist committed
315 316 317 318 319 320 321 322
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
323 324
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

325 326 327 328 329
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
330 331 332
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
333 334 335 336 337

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
338
    if test "X$deplib_check_method" = Xnone || test "x$enable_static" = xyes ; then
339 340 341 342 343 344 345 346 347 348 349 350 351 352
      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)

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

356
AC_PATH_PROGS(PERL, perl5 perl)
357

358 359 360
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

361
REBUILD=\#
362 363
if test "x$enable_rebuilds" = "xyes" && \
     test -n "$PERL" && \
364
     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
365
  REBUILD=
366 367
fi
AC_SUBST(REBUILD)
368

Owen Taylor's avatar
Owen Taylor committed
369
AC_CHECK_FUNCS(lstat mkstemp flockfile)
370 371 372 373 374 375 376 377 378 379 380

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

382 383 384 385
AC_MSG_CHECKING(whether make is GNU Make)
STRIP_BEGIN=
STRIP_END=
if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
386
	STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
387 388 389 390 391
	STRIP_END=')'
	AC_MSG_RESULT(yes)
else
	AC_MSG_RESULT(no)
fi
392 393
STRIP_DUMMY=
AC_SUBST(STRIP_DUMMY)
394 395 396
AC_SUBST(STRIP_BEGIN)
AC_SUBST(STRIP_END)

Owen Taylor's avatar
Owen Taylor committed
397
# i18n stuff
398
ALL_LINGUAS="am ar az be bg ca cs cy da de el en_GB es et eu fa fi fr ga gl he hi hr hu ia id it ja ko li lt lv mk ml mn ms nl nn no pl pt pt_BR ro ru sk sl sr sr@Latn sv ta tr uk vi wa yi zh_CN zh_TW"
399
AM_GLIB_GNU_GETTEXT
400 401
LIBS="$LIBS $INTLLIBS"

Owen Taylor's avatar
Owen Taylor committed
402
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
403

404 405
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
406
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
407

408
gtk_save_LIBS=$LIBS
409 410 411 412
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
413
     gtk_save_CFLAGS="$CFLAGS"
414 415 416 417 418
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
419
         CFLAGS="$gtk_save_CFLAGS"
420
         AC_MSG_WARN(
421 422 423 424
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
425 426 427
)
LIBS=$gtk_save_LIBS

428 429 430
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
431
    AC_MSG_RESULT(yes)
432 433
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
434 435
  *)
    AC_MSG_RESULT(no)
436 437 438
  ;;
esac

Manish Singh's avatar
Manish Singh committed
439 440 441 442
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),
443
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
444 445 446 447
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
448
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
449 450
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

451
#
Owen Taylor's avatar
Owen Taylor committed
452 453
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
454

455
GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
456

457
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
458
  AC_MSG_ERROR([
459 460
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
Owen Taylor's avatar
Owen Taylor committed
461
  gobject gmodule gthread)
Owen Taylor's avatar
Owen Taylor committed
462

Owen Taylor's avatar
Owen Taylor committed
463 464 465 466 467 468 469 470
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
471
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
472
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
473
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
474 475 476 477 478

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"
479
  AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
480 481 482
#ifdef __GNUC__
#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
483 484 485
#endif
#include <windows.h>
#include <objbase.h>
486
#include <imm.h>
487
#ifdef __GNUC__
488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512
#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
513

514
if test "${with_wintab+set}" = set && test $with_wintab != no; then
Tor Lillqvist's avatar
Tor Lillqvist committed
515 516 517 518 519 520 521
  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)
522
    AC_MSG_CHECKING([for wntab32x.lib])
523
    if test -f $with_wintab/lib/i386/wntab32x.lib ; then
524
      AC_MSG_RESULT(yes)
525 526 527 528 529
      have_wintab=yes
      AC_DEFINE(HAVE_WINTAB)
      WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
      AC_SUBST(WINTAB_LIB)
    else
530 531
      AC_MSG_RESULT(no)
      CFLAGS="$saved_cflags"
532 533
      have_wintab=no
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
534 535
    ],
   [AC_MSG_RESULT(no)
536
    CFLAGS="$saved_cflags"
Tor Lillqvist's avatar
Tor Lillqvist committed
537 538 539
    have_wintab=no])
fi
AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
Tor Lillqvist's avatar
Tor Lillqvist committed
540

541 542 543
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

544

545 546
# Checks for header files.
AC_HEADER_STDC
547

548 549
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
550

551 552 553
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
554

555 556
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
557

558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573
# 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
574

575 576 577 578 579 580 581
# `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)
582

583 584 585 586 587 588 589
# 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)
590

591 592 593
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
594

595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613
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"
614

615 616 617 618 619 620
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
621

622

623 624 625
##################################################
# Checks for gdk-pixbuf
##################################################
626

627 628 629 630 631 632 633 634 635 636 637 638 639 640
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


641
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
642

643 644 645
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
646

647 648
dynworks=false
deps=
649
if test x$enable_modules = xno; then
650 651 652 653
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
654
    ## for loop is to strip newline 
655
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-2.0`
656 657 658
    for I in $tmp; do
        dynworks=$I
    done
659

660 661 662 663 664 665 666 667 668 669 670 671 672
    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
673

674 675 676 677 678 679
    if $dynworks; then
        AC_DEFINE(USE_GMODULE)
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
680
fi
Havoc Pennington's avatar
Havoc Pennington committed
681

Owen Taylor's avatar
Owen Taylor committed
682 683 684
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.

685 686 687 688 689 690 691 692 693
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
694

695
dnl Test for libtiff
Owen Taylor's avatar
Owen Taylor committed
696
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
697
    AC_CHECK_LIB(tiff, TIFFReadScanline,
Tor Lillqvist's avatar
Tor Lillqvist committed
698
      [AC_CHECK_HEADER(tiffio.h,
699
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
700 701 702
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
703
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
704 705 706
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
707
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
708 709
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
Havoc Pennington's avatar
Havoc Pennington committed
710 711
  fi

Owen Taylor's avatar
Owen Taylor committed
712 713 714 715 716 717 718
  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

719
dnl Test for libjpeg
Owen Taylor's avatar
Owen Taylor committed
720
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
721 722 723 724 725 726 727 728 729 730
    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
731
#undef HAVE_STDLIB_H
732 733 734 735 736 737 738 739 740 741 742 743 744
#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
745 746
  fi

Owen Taylor's avatar
Owen Taylor committed
747 748 749 750 751 752 753
  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

754
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
755
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
756 757 758 759 760 761 762 763 764 765 766 767 768
    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)
769
      if test "$png_ok" = yes; then
770 771 772 773 774 775 776 777 778 779 780
        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
781
      else
782
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
783 784
      fi
    fi
785
  fi
786

Owen Taylor's avatar
Owen Taylor committed
787 788 789 790 791 792 793 794
  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

795 796 797 798 799 800
  REBUILD_PNGS=\#
  if test -z "$LIBPNG"; then
     REBUILD_PNGS=
  fi
  AC_SUBST(REBUILD_PNGS)

801 802 803
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
804

805
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
806

807 808 809 810
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
811

812 813 814 815 816 817 818 819
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)])
820

821 822 823 824 825 826 827 828 829
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

830
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
831 832 833 834
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
835
else
836
  included_loaders="$with_included_loaders"
837 838
fi

839
AC_MSG_RESULT($included_loaders)
840

841 842
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
843

844 845
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
846
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
847 848 849 850
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
851

852 853 854 855 856 857
 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)
858

859
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
860

861 862 863 864 865 866
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
867
if $dynworks ; then
868
  STATIC_LIB_DEPS=
869
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
870
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
871
  fi
872
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
873
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
874
  fi
875
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
876
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
877
  fi
878
else
879
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
880
fi
Elliot Lee's avatar
Elliot Lee committed
881

882 883 884
# 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.)
885
#
886
# This code is partially taken from Mesa
887
#
888 889 890 891 892 893 894 895 896
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
897

898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917
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
918
fi
919

920
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
921

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

924
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
925

926
if test $cross_compiling = yes; then
927 928 929 930 931
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
  if test x$GDK_PIXBUF_CSOURCE = xno; then
    AC_MSG_ERROR(Could not find a gdk-pixbuf-csource in your PATH)
  fi
fi
932

933
GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
934 935
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
GDK_PIXBUF_EXTRA_CFLAGS= 
936
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
937
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
938

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

945

946 947 948
########################################
# Windowing system checks
########################################
949

950 951
GDK_EXTRA_LIBS=$GDK_WLIBS
GDK_EXTRA_CFLAGS= 
952

953 954
FREETYPE_LIBS=
FREETYPE_CFLAGS=
955
if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
956 957 958 959 960 961 962 963 964
  #
  # 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`

965 966 967 968
    gtk_save_LIBS="$LIBS"
    LIBS="$FREETYPE_LIBS $LIBS"
    AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
    LIBS="$gtk_save_LIBS"
969 970 971 972 973 974 975 976 977 978

    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([
#include <freetype/freetype.h>
#include FT_ERRORS_H
    ],
979 980
	             [(void)1;],:,have_freetype=false)
      if $have_freetype ; then
981 982 983 984 985 986 987 988 989 990 991 992
        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

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

996
  if $PKG_CONFIG --exists pangox ; then : ; else
997 998 999
    AC_MSG_ERROR([pangox Pango backend is required for x11 target])
  fi
    
1000 1001
  ## be sure we also have Pango built with xft support
  if $PKG_CONFIG --exists pangoxft ; then
1002
    PANGO_PACKAGES="pangoxft pangox"
1003 1004
    have_xft=true
    AC_DEFINE(HAVE_XFT)
1005 1006 1007
    if $have_freetype ; then
      :
    else
1008 1009
      AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
    fi
1010 1011 1012
  else
    PANGO_PACKAGES="pangox"
    have_xft=false
1013
  fi
1014

1015
  AM_CONDITIONAL(HAVE_XFT, $have_xft)
1016

1017 1018 1019 1020
  if $have_xft; then
    if $PKG_CONFIG --exists xft ; then
      AC_DEFINE(HAVE_XFT2, 1, [Define if we have Xft, version 2])
    fi
1021 1022
  fi

1023 1024 1025 1026 1027 1028
  #
  # If Pango included the shared library dependencies from X11 in
  # the pkg-config output, then we use that (to avoid duplicates).
  # but if they were omitted to avoid binary compatibility problems
  # then we need to repeat the checks.
  #
1029
  x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
1030
  case "$x_libs" in
1031 1032 1033 1034
    *-lX11*) pango_omitted_x_deps=no ;;
    *)       pango_omitted_x_deps=yes ;;
  esac

1035 1036
  x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
  x_extra_libs=
Elliot Lee's avatar
Elliot Lee committed
1037

1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052
  if test $pango_omitted_x_deps = yes ; then
    AC_PATH_XTRA

    if test x$no_x = xyes ; then
      AC_MSG_ERROR([X development libraries not found])
    fi

    x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"

    #
    # Checks for Xft/XRender
    #
    if test $have_xft = true ; then
      have_xft=false

1053
      if pkg-config --exists pangoxft '>=' 1.1.0 ; then
1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069
        x_libs="`pkg-config --libs xft` -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
        have_xft=true
      else
        gtk_save_cppflags="$CPPFLAGS"
        CPPFLAGS="$CPPFLAGS $x_cflags"
      
        AC_CHECK_LIB(Xrender, XRenderFindFormat, 
	  [AC_CHECK_LIB(Xft, XftFontOpen,
	    [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
	      have_xft=true,:)],
	    :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
	  ,:,-lXext $x_libs)
	  
        if $have_xft ; then
	  x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
        fi
1070

1071 1072
        CPPFLAGS="$gtk_save_cppflags"
      fi
1073 1074

      if $have_xft ; then
1075
        :
1076 1077 1078 1079 1080 1081
      else
        AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
      fi
    fi
  fi    	

Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093
  ## 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, :,
1094
            AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1095
            $x_libs_for_checks)
Elliot Lee's avatar
Elliot Lee committed
1096

1097 1098
  if test "x$enable_shm" = "xyes"; then
    # Check for the Xext library (needed for XShm extention)
1099 1100 1101 1102
    AC_CHECK_LIB(Xext, XShmAttach,
        if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
          x_extra_libs="-lXext"
        fi,
1103 1104
        # On AIX, it is in XextSam instead, but we still need -lXext
        AC_CHECK_LIB(XextSam, XShmAttach, 
1105 1106 1107 1108
            if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
               x_extra_libs="-lXextSam -lXext"
            else
               x_extra_libs="-lXextSam"
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1109 1110
            fi, , $x_libs_for_checks),
        $x_libs_for_checks)
1111
  fi
Elliot Lee's avatar
Elliot Lee committed
1112

1113
  GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1114
  # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1115
  GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs $x_libs"
Elliot Lee's avatar
Elliot Lee committed
1116

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

1119 1120 1121
  gtk_save_cppflags="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $x_cflags"

Alexander Larsson's avatar
Alexander Larsson committed
1122 1123 1124 1125 1126 1127
  case "$host" in
      *-*-solaris*)
          # Check for solaris
	  use_solaris_xinerama=yes
	  AC_CHECK_LIB(Xext, XineramaGetInfo,
			use_solaris_xinerama=yes, use_solaris_xinerama=no)
1128
	  if test "x$use_solaris_xinerama" = "xyes"; then
Alexander Larsson's avatar
Alexander Larsson committed
1129 1130 1131 1132 1133
	      AC_CHECK_HEADER(X11/extensions/xinerama.h,
		if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
		    x_extra_libs="-lXext $x_extra_libs"
		fi
		AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1134
		AC_DEFINE(HAVE_XINERAMA), use_solaris_xinerama=no, -lXext $x_libs_for_checks)
Alexander Larsson's avatar
Alexander Larsson committed
1135 1136 1137 1138 1139 1140 1141 1142
	  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,
1143
	      [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
Alexander Larsson's avatar
Alexander Larsson committed
1144 1145 1146 1147 1148 1149
		  x_extra_libs="-lXinerama $x_extra_libs"   
		  if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
		      x_extra_libs="-lXext $x_extra_libs"
		  fi
		  AC_DEFINE(HAVE_XFREE_XINERAMA)
		  AC_DEFINE(HAVE_XINERAMA), 
1150 1151
		  use_xfree_xinerama=no,
                  [#include <X11/Xlib.h>])],
1152
	      use_xfree_xinerama=no, -lXext $x_libs_for_checks)
Alexander Larsson's avatar
Alexander Larsson committed
1153 1154 1155 1156 1157
	  AC_MSG_CHECKING(for Xinerama support on XFree86)
	  AC_MSG_RESULT($use_xfree_xinerama);	    
          ;;
  esac

1158 1159
  CPPFLAGS="$gtk_save_cppflags"

1160
  # Check for shaped window extension
Owen Taylor's avatar
Owen Taylor committed
1161

1162
  AC_CHECK_LIB(Xext, XShapeCombineMask,
1163 1164
      if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
           x_extra_libs="-lXext $x_extra_libs"
1165 1166 1167
      fi
      AC_DEFINE(HAVE_SHAPE_EXT),
      ,
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1168
      $x_libs_for_checks)
1169 1170 1171 1172 1173 1174

  # Check for XConvertCase (X11R6 specific)

  AC_CHECK_LIB(X11, XConvertCase,
      AC_DEFINE(HAVE_XCONVERTCASE),
      ,
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1175
      $x_libs_for_checks)
1176

1177 1178 1179
  # Generic X11R6 check needed for XIM support; we could
  # probably use this to replace the above, but we'll
  # leave the separate XConvertCase check for clarity
Raja R Harinath's avatar
Raja R Harinath committed
1180

1181 1182 1183 1184 1185 1186 1187 1188
  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])
1189
  fi
1190
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1191 1192 1193 1194 1195 1196 1197 1198 1199 1200

  # 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
Updates  
Havoc Pennington committed
1201
	             $x_libs_for_checks)
1202 1203 1204 1205 1206 1207 1208 1209 1210
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

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

  # set up things for XInput

1211
  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1212
    AC_DEFINE(XINPUT_XFREE)
1213
    x_extra_libs="-lXi $x_extra_libs"
1214 1215 1216 1217
  else
    AC_DEFINE(XINPUT_NONE)
  fi

1218
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1219

1220 1221 1222 1223 1224 1225 1226 1227 1228
  # Check for the RANDR extension

  AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
      [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
          # RANDR requires RENDER
	  if test -z "`echo $x_extra_libs $x_libs | grep "\-lXrender" 2> /dev/null`"; then
	      x_extra_libs="-lXrender $x_extra_libs"
	  fi
	  x_extra_libs="-lXrandr $x_extra_libs"
1229 1230
	  AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library),
	  :, [#include <X11/Xlib.h>])], : ,
1231 1232
       $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)

Matthias Clasen's avatar
Matthias Clasen committed
1233 1234 1235 1236 1237 1238 1239 1240 1241
  # Checks for Xcursor library
  have_xcursor=false
  PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)

  if $have_xcursor ; then
    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
    GDK_EXTRA_LIBS="$XCURSOR_LIBS $GDK_EXTRA_LIBS";
  fi
    
1242 1243
  # Xshm checks

1244 1245 1246 1247 1248 1249
  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
1250
    have_xshm=no 
1251 1252
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
Owen Taylor's avatar
Owen Taylor committed
1253
      :
1254
    else
Owen Taylor's avatar
Owen Taylor committed
1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270
      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)
1271 1272
    fi
  fi
Owen Taylor's avatar
Owen Taylor committed
1273

1274
  GDK_EXTRA_CFLAGS=
1275 1276 1277 1278 1279
  if test $pango_omitted_x_deps = yes ; then
    GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
  else
    GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
  fi
Owen Taylor's avatar
Owen Taylor committed
1280

1281
  AM_CONDITIONAL(USE_X11, true)
Owen Taylor's avatar
Owen Taylor committed
1282
else
1283 1284
  AM_CONDITIONAL(HAVE_XFT, false)
  AM_CONDITIONAL(XINPUT_XFREE, false)
1285
  AM_CONDITIONAL(USE_X11, false)
1286
  AM_CONDITIONAL(HAVE_X11R6, false)
Owen Taylor's avatar
Owen Taylor committed
1287 1288
fi

Tor Lillqvist's avatar
Tor Lillqvist committed
1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305
if test "x$gdktarget" = "xwin32"; then
  # We start off with the libraries from Pango

  ## be sure we also have Pango built with win32 support
  PANGO_PACKAGES="pangowin32"

  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

1306
AC_SUBST(xinput_progs)
Owen Taylor's avatar
Owen Taylor committed
1307

1308
GDK_PIXBUF_XLIB_PACKAGES=
1309
GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1310
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"
1311 1312 1313 1314 1315 1316 1317 1318

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
1319 1320 1321
  if $have_freetype ; then
    :
  else
1322
    AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
Owen Taylor's avatar
Owen Taylor committed
1323 1324
  fi

1325
  ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1326
  case "$ft2_libs" in
1327 1328 1329 1330
    *-lfreetype*) pango_omitted_ft2_deps=no ;;
    *)            pango_omitted_ft2_deps=yes ;;
  esac

1331
  CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
Owen Taylor's avatar
Owen Taylor committed
1332

1333 1334 1335
  if test x$enable_shadowfb = xyes ; then
    AC_DEFINE(ENABLE_SHADOW_FB)
  fi
1336 1337 1338 1339 1340 1341 1342

  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
1343
  
1344 1345 1346 1347
  GDK_EXTRA_CFLAGS=""
  if test $pango_omitted_ft2_deps = yes ; then
    GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
  fi
Owen Taylor's avatar
Owen Taylor committed
1348

1349 1350 1351
  AM_CONDITIONAL(USE_LINUX_FB, true)
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
1352
  AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1353
fi
Owen Taylor's avatar
Owen Taylor committed
1354

1355
#
1356
# Pick correct Pango packages to use
1357 1358
#

1359 1360
if test "x$gdktarget" = "xx11"; then
	if $have_xft = true ; then
1361
            PANGO_PACKAGES="pangoxft pangox"
1362 1363 1364
        else
            PANGO_PACKAGES=pangox
        fi
Tor Lillqvist's avatar
Tor Lillqvist committed
1365 1366
elif test "x$gdktarget" = "xwin32"; then
        PANGO_PACKAGES=pangowin32
1367 1368
elif test "x$gdktarget" = "xlinux-fb"; then
        PANGO_PACKAGES=pangoft2
1369
else
1370
        PANGO_PACKAGES=pango
1371 1372
fi

1373
# Check for Pango flags
1374

1375 1376 1377 1378
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`
1379

1380 1381 1382 1383 1384 1385 1386 1387 1388
        AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
else
        AC_MSG_ERROR([
*** Pango not found. Pango is required to build GTK+.
*** See http://www.pango.org for Pango information.
*** For the framebuffer target, you will need to build 
*** Pango with freetype support.
])
fi
1389

1390
CFLAGS="$CFLAGS $PANGO_CFLAGS"
1391

1392 1393 1394
if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
        :
else
1395 1396 1397
	gtk_save_LIBS="$LIBS"
        LIBS="$PANGO_LIBS $LIBS"
        AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1398
*** Can't link to Pango. Pango is required to build
1399 1400
*** GTK+. For more information see http://www.pango.org]))
        LIBS="$gtk_save_LIBS"
1401
fi
Owen Taylor's avatar
Owen Taylor committed
1402

1403 1404
CFLAGS="$saved_cflags"
LDFLAGS="$saved_ldflags"
Owen Taylor's avatar
Owen Taylor committed
1405

1406
GDK_PACKAGES=$PANGO_PACKAGES
1407
GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"