configure.in 44.1 KB
Newer Older
Elliot Lee's avatar
Elliot Lee committed
1
# Process this file with autoconf to produce a configure script.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# 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
31 32
m4_define([glib_required_version], [2.3.0])
m4_define([pango_required_version], [1.2.0])
33 34 35 36 37 38 39 40 41 42 43 44 45 46
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
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],
164 165
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
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(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
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
798

799
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
800

801 802 803 804
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
805

806 807 808 809 810 811 812 813
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)])
814

815 816 817 818 819 820 821 822 823
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

824
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
825 826 827 828
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
829
else
830
  included_loaders="$with_included_loaders"
831 832
fi

833
AC_MSG_RESULT($included_loaders)
834

835 836
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
837

838 839
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
840
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
841 842 843 844
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
845

846 847 848 849 850 851
 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)
852

853
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
854

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

876 877 878
# 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.)
879
#
880
# This code is partially taken from Mesa
881
#
882 883 884 885 886 887 888 889 890
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
891

892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911
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
912
fi
913

914
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
915

916 917 918 919 920
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

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

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

925
if test $cross_compiling = yes; then
926 927
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
  if test x$GDK_PIXBUF_CSOURCE = xno; then
928
    REBUILD_PNGS=#
929 930
  fi
fi
931

932 933 934 935 936 937 938 939 940 941
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)

942
GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
943 944
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
GDK_PIXBUF_EXTRA_CFLAGS= 
945
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
946
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
947

948 949 950 951 952
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)
953

954

955 956 957
########################################
# Windowing system checks
########################################
958

959 960
GDK_EXTRA_LIBS=$GDK_WLIBS
GDK_EXTRA_CFLAGS= 
961
GTK_DEP_LIBS_FOR_X=
962

963 964
FREETYPE_LIBS=
FREETYPE_CFLAGS=
965
if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "xx11" ; then
966 967 968 969 970 971 972 973 974
  #
  # 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`

975 976 977 978
    gtk_save_LIBS="$LIBS"
    LIBS="$FREETYPE_LIBS $LIBS"
    AC_TRY_LINK_FUNC(FT_New_Face, have_freetype=true,:)
    LIBS="$gtk_save_LIBS"
979 980 981 982 983 984 985 986 987 988

    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
    ],
989 990
	             [(void)1;],:,have_freetype=false)
      if $have_freetype ; then
991 992 993 994 995 996 997 998 999 1000 1001 1002
        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

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

1006 1007
  ## be sure we also have Pango built with Xft2 support
  if $PKG_CONFIG --exists 'pangoxft >= 1.2.0' ; then
1008 1009 1010
    if $have_freetype ; then
      :
    else
1011
      AC_MSG_ERROR([Xft Pango backend found but did not find freetype libraries])
1012
    fi
1013
  else
1014
    AC_MSG_ERROR([Pango 1.2.0 and Xft backend is required for x11 target])
1015
  fi
1016

1017 1018
  if $PKG_CONFIG --exists xft ; then : ; else
    AC_MSG_ERROR([Xft version 2 is required for x11 target])
1019 1020
  fi

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

1033
  x_cflags="`$PKG_CONFIG --cflags pangoxft`"
1034
  x_extra_libs=
Elliot Lee's avatar
Elliot Lee committed
1035

1036 1037 1038 1039 1040
  AC_PATH_XTRA
  if test x$no_x = xyes ; then
    AC_MSG_ERROR([X development libraries not found])
  fi
  
1041
  if test $pango_omitted_x_deps = yes ; then
1042 1043
    # Old versions of Xft didn't necessarily include -lX11 in the output
    x_libs="`pkg-config --libs xft` -lX11 $X_EXTRA_LIBS"
1044 1045
  fi    	

Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057
  ## 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, :,
1058
            AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1059
            $x_libs_for_checks)
Elliot Lee's avatar
Elliot Lee committed
1060

1061 1062
  if test "x$enable_shm" = "xyes"; then
    # Check for the Xext library (needed for XShm extention)
1063
    AC_CHECK_LIB(Xext, XShmAttach,
1064
        [GTK_ADD_LIB(x_extra_libs,Xext)],
1065
        # On AIX, it is in XextSam instead, but we still need -lXext
1066 1067 1068 1069
        [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
Updates  
Havoc Pennington committed
1070
        $x_libs_for_checks)
1071
  fi
Elliot Lee's avatar
Elliot Lee committed
1072

1073
  GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1074
  # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
1075
  GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $x_extra_libs $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1076

1077 1078 1079 1080 1081
  # 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
1082 1083
  # Check for Xinerama extension (Solaris impl or Xfree impl)

1084 1085 1086
  gtk_save_cppflags="$CPPFLAGS"
  CPPFLAGS="$CPPFLAGS $x_cflags"

Alexander Larsson's avatar
Alexander Larsson committed
1087 1088 1089 1090 1091 1092
  case "$host" in
      *-*-solaris*)
          # Check for solaris
	  use_solaris_xinerama=yes
	  AC_CHECK_LIB(Xext, XineramaGetInfo,
			use_solaris_xinerama=yes, use_solaris_xinerama=no)
1093
	  if test "x$use_solaris_xinerama" = "xyes"; then
Alexander Larsson's avatar
Alexander Larsson committed
1094
	      AC_CHECK_HEADER(X11/extensions/xinerama.h,
1095
	        [GTK_ADD_LIB(x_extra_libs,Xext)
Alexander Larsson's avatar
Alexander Larsson committed
1096
		AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1097
		AC_DEFINE(HAVE_XINERAMA)], use_solaris_xinerama=no, -lXext $x_libs_for_checks)
Alexander Larsson's avatar
Alexander Larsson committed
1098 1099 1100 1101 1102 1103 1104 1105
	  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,
1106
	      [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1107 1108
	          [GTK_ADD_LIB(x_extra_libs,Xext)
	          GTK_ADD_LIB(x_extra_libs,Xinerama)
Alexander Larsson's avatar
Alexander Larsson committed
1109
		  AC_DEFINE(HAVE_XFREE_XINERAMA)
1110
		  AC_DEFINE(HAVE_XINERAMA)], 
1111 1112
		  use_xfree_xinerama=no,
                  [#include <X11/Xlib.h>])],
1113
	      use_xfree_xinerama=no, -lXext $x_libs_for_checks)
Alexander Larsson's avatar
Alexander Larsson committed
1114 1115 1116 1117 1118
	  AC_MSG_CHECKING(for Xinerama support on XFree86)
	  AC_MSG_RESULT($use_xfree_xinerama);	    
          ;;
  esac

1119 1120
  CPPFLAGS="$gtk_save_cppflags"

1121
  # Check for shaped window extension
Owen Taylor's avatar
Owen Taylor committed
1122

1123
  AC_CHECK_LIB(Xext, XShapeCombineMask,
1124 1125
      [GTK_ADD_LIB(x_extra_libs,Xext),
       AC_DEFINE(HAVE_SHAPE_EXT)],
1126
      ,
Havoc Pennington's avatar
Updates  
Havoc Pennington committed
1127
      $x_libs_for_checks)
1128 1129 1130 1131 1132 1133

  # Check for XConvertCase (X11R6 specific)

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

1136 1137 1138
  # 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
1139

1140 1141 1142 1143 1144 1145 1146 1147
  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])
1148
  fi
1149
  AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1150 1151 1152 1153 1154 1155 1156 1157 1158 1159

  # 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
1160
	             $x_libs_for_checks)
1161 1162 1163 1164 1165 1166 1167 1168 1169
  else
        AC_MSG_WARN(XKB support explicitly disabled)
  fi

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

  # set up things for XInput

1170
  if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1171
    AC_DEFINE(XINPUT_XFREE)
1172
    GTK_ADD_LIB(x_extra_libs, Xi)
1173 1174 1175 1176
  else
    AC_DEFINE(XINPUT_NONE)
  fi

1177
  AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1178

1179 1180 1181 1182 1183
  # Check for the RANDR extension

  AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
      [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
          # RANDR requires RENDER
1184 1185 1186
          [GTK_ADD_LIB(x_extra_libs, Xrender)
          GTK_ADD_LIB(x_extra_libs, Xrandr)
	  AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)],
1187
	  :, [#include <X11/Xlib.h>])], : ,
1188 1189
       $X_LIBS -lXrandr -lXrender -lX11 $X_EXTRA_LIBS)

Matthias Clasen's avatar
Matthias Clasen committed
1190
  # Checks for Xcursor library
1191
  
Matthias Clasen's avatar
Matthias Clasen committed
1192 1193 1194 1195 1196
  have_xcursor=false
  PKG_CHECK_MODULES(XCURSOR, xcursor, have_xcursor=true, :)

  if $have_xcursor ; then
    AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1197 1198 1199
    XCURSOR_PACKAGES="xcursor"
  else
    XCURSOR_PACKAGES=
Matthias Clasen's avatar
Matthias Clasen committed
1200 1201
  fi
    
1202 1203
  # Xshm checks

1204 1205 1206 1207 1208 1209
  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
1210
    have_xshm=no 
1211 1212
    AC_MSG_CHECKING(X11/extensions/XShm.h)
    if test "x$no_xext_lib" = "xyes"; then
Owen Taylor's avatar
Owen Taylor committed
1213
      :
1214
    else
Owen Taylor's avatar
Owen Taylor committed
1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230
      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)
1231 1232
    fi
  fi
Owen Taylor's avatar
Owen Taylor committed
1233

1234
  GDK_EXTRA_CFLAGS=
1235
  if test $pango_omitted_x_deps = yes ; then
1236
    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1237
  else
1238
    GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs $GDK_EXTRA_LIBS"
1239
  fi
Owen Taylor's avatar
Owen Taylor committed
1240

1241
  AM_CONDITIONAL(USE_X11, true)
Owen Taylor's avatar
Owen Taylor committed
1242
else
1243
  AM_CONDITIONAL(XINPUT_XFREE, false)
1244
  AM_CONDITIONAL(USE_X11, false)
1245
  AM_CONDITIONAL(HAVE_X11R6, false)
Owen Taylor's avatar
Owen Taylor committed
1246 1247
fi

Tor Lillqvist's avatar
Tor Lillqvist committed
1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261
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

1262
GDK_PIXBUF_XLIB_PACKAGES=
1263
GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1264
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"
1265 1266 1267 1268 1269 1270 1271 1272

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
1273 1274 1275
  if $have_freetype ; then
    :
  else
1276
    AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
Owen Taylor's avatar
Owen Taylor committed
1277 1278
  fi

1279
  ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1280
  case "$ft2_libs" in
1281 1282 1283 1284
    *-lfreetype*) pango_omitted_ft2_deps=no ;;
    *)            pango_omitted_ft2_deps=yes ;;
  esac

1285
  CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
Owen Taylor's avatar
Owen Taylor committed
1286

1287 1288 1289
  if test x$enable_shadowfb = xyes ; then
    AC_DEFINE(ENABLE_SHADOW_FB)
  fi
1290 1291 1292 1293 1294 1295 1296

  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
1297
  
1298 1299 1300 1301
  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
1302

1303 1304 1305
  AM_CONDITIONAL(USE_LINUX_FB, true)
else
  AM_CONDITIONAL(USE_LINUX_FB, false)
1306
  AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1307
fi
Owen Taylor's avatar
Owen Taylor committed
1308

1309
#
1310
# Pick correct Pango packages to use
1311 1312
#

1313
if test "x$gdktarget" = "xx11"; then
1314 1315 1316 1317 1318 1319 1320
        PANGO_PACKAGES=pangoxft
	
        # We no longer use pangox, but if we find it, we link to it 
	# for binary compatibility.
	if $PKG_CONFIG --exists pangox ; then
		PANGO_PACKAGES="$PANGO_PACKAGES pangox"
	fi
Tor Lillqvist's avatar
Tor Lillqvist committed
1321 1322
elif test "x$gdktarget" = "xwin32"; then
        PANGO_PACKAGES=pangowin32
1323 1324
elif test "x$gdktarget" = "xlinux-fb"; then
        PANGO_PACKAGES=pangoft2
1325
else
1326
        PANGO_PACKAGES=pango
1327 1328
fi

1329
# Check for Pango flags
1330

1331 1332 1333 1334
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`
1335

1336 1337 1338 1339 1340 1341 1342 1343 1344
        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
1345

1346
CFLAGS="$CFLAGS $PANGO_CFLAGS"
1347

1348 1349 1350
if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
        :
else
1351 1352 1353
	gtk_save_LIBS="$LIBS"
        LIBS="$PANGO_LIBS $LIBS"
        AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1354
*** Can't link to Pango. Pango is required to build
1355 1356
*** GTK+. For more information see http://www.pango.org]))
        LIBS="$gtk_save_LIBS"