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

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

m4_define([gtk_major_version], [2])
Matthias Clasen's avatar
Matthias Clasen committed
14 15
m4_define([gtk_minor_version], [9])
m4_define([gtk_micro_version], [0])
16 17
m4_define([gtk_version],
          [gtk_major_version.gtk_minor_version.gtk_micro_version])
Matthias Clasen's avatar
Matthias Clasen committed
18
m4_define([gtk_interface_age], [0])
Owen Taylor's avatar
Owen Taylor committed
19 20
m4_define([gtk_binary_age],
          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
21 22 23 24
# This is the X.Y used in -lgtk-FOO-X.Y
m4_define([gtk_api_version], [2.0])

# Define a string for the earliest version that this release has
25 26 27 28
# backwards binary compatibility with for all interfaces a module
# might. Unless we add module-only API with lower stability
# guarantees, this should be unchanged until we break binary compat
# for GTK+.
29 30
#
#GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
31
m4_define([gtk_binary_version], [2.4.0])
32 33

# required versions of other packages
Tim Janik's avatar
Tim Janik committed
34
m4_define([glib_required_version], [2.10.1])
35
m4_define([pango_required_version], [1.9.0])
36
m4_define([atk_required_version], [1.0.1])
Matthias Clasen's avatar
Matthias Clasen committed
37
m4_define([cairo_required_version], [0.9.2])
38 39 40


AC_INIT([gtk+], [gtk_version],
41
        [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42 43 44 45 46 47 48 49 50
	[gtk+])

AC_CONFIG_SRCDIR([gdk/gdktypes.h])

# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}

AM_INIT_AUTOMAKE(no-define)
AM_CONFIG_HEADER(config.h)
Elliot Lee's avatar
Elliot Lee committed
51

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


64 65 66 67 68 69 70 71
GTK_MAJOR_VERSION=gtk_major_version
GTK_MINOR_VERSION=gtk_minor_version
GTK_MICRO_VERSION=gtk_micro_version
GTK_INTERFACE_AGE=gtk_interface_age
GTK_BINARY_AGE=gtk_binary_age
GTK_VERSION=gtk_version
GTK_API_VERSION=gtk_api_version
GTK_BINARY_VERSION=gtk_binary_version
72 73 74
AC_SUBST(GTK_MAJOR_VERSION)
AC_SUBST(GTK_MINOR_VERSION)
AC_SUBST(GTK_MICRO_VERSION)
75 76
AC_SUBST(GTK_INTERFACE_AGE)
AC_SUBST(GTK_BINARY_AGE)
Owen Taylor's avatar
Owen Taylor committed
77
AC_SUBST(GTK_API_VERSION)
78
AC_SUBST(GTK_VERSION)
79
AC_SUBST(GTK_BINARY_VERSION)
80 81

# libtool versioning
82 83 84 85 86 87
#LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
#LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
#LT_REVISION=$GTK_INTERFACE_AGE
#LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
#LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`

88 89 90 91 92 93
m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
m4_define([lt_revision], [gtk_interface_age])
m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
AC_SUBST(LT_VERSION_INFO)
Tor Lillqvist's avatar
Tor Lillqvist committed
94
AC_SUBST(LT_CURRENT_MINUS_AGE)
95

96

97 98 99 100
#
# gdk-pixbuf gets versioned separately, and for now, using standard
# libtool versioning, not GTK+-style versioning
#
101 102 103
GDK_PIXBUF_MAJOR=gtk_major_version
GDK_PIXBUF_MINOR=gtk_minor_version
GDK_PIXBUF_MICRO=gtk_micro_version
104 105 106 107 108 109
GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
AC_SUBST(GDK_PIXBUF_MAJOR)
AC_SUBST(GDK_PIXBUF_MINOR)
AC_SUBST(GDK_PIXBUF_MICRO)
AC_SUBST(GDK_PIXBUF_VERSION)

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

114 115
AC_CANONICAL_HOST

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

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

Tor Lillqvist's avatar
Typo.  
Tor Lillqvist committed
138
if test "$os_win32" = "yes"; then
139 140 141 142 143 144 145 146 147 148
  if test x$enable_static = xyes -o x$enable_static = x; then
    AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
    enable_static=no
  fi
  if test x$enable_shared = xno; then
    AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
  fi
  enable_shared=yes
fi

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

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

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

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

Tor Lillqvist's avatar
Tor Lillqvist committed
161 162 163 164 165 166 167 168 169 170 171 172 173
AC_MSG_CHECKING([for some Win32 platform])
case "$host" in
  *-*-mingw*|*-*-cygwin*)
    platform_win32=yes
    ;;
  *)
    platform_win32=no
    ;;
esac
AC_MSG_RESULT([$platform_win32])
AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")

AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
174
AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
Matthias Clasen's avatar
Matthias Clasen committed
175
AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
Tor Lillqvist's avatar
Tor Lillqvist committed
176 177

if test "$os_win32" = "yes"; then
Tor Lillqvist's avatar
Tor Lillqvist committed
178 179 180 181
  AC_CHECK_TOOL(WINDRES, windres, no)
  if test "$WINDRES" = no; then
    AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
  fi
Tor Lillqvist's avatar
Tor Lillqvist committed
182 183 184 185
  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
fi
AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)

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

dnl declare --enable-* args and collect ac_help strings
190 191 192 193 194 195
AC_ARG_ENABLE(debug,
              AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
                             [turn on debugging @<:@default=debug_default@:>@]),,
              enable_debug=debug_default)
AC_ARG_ENABLE(shm,
              [AC_HELP_STRING([--enable-shm],
196 197
                              [support shared memory if available [default=yes]])],,
              [enable_shm="yes"])
198 199 200 201 202 203 204 205
AC_ARG_ENABLE(xkb,
              [AC_HELP_STRING([--enable-xkb],
                              [support XKB [default=maybe]])],,
              [enable_xkb="maybe"])
AC_ARG_ENABLE(rebuilds,
              [AC_HELP_STRING([--disable-rebuilds],
                              [disable all source autogeneration rules])],,
              [enable_rebuilds=yes])
206 207 208 209
AC_ARG_ENABLE(visibility,
              [AC_HELP_STRING([--disable-visibility],
                              [don't use ELF visibility attributes])],,
              [enable_visibility=yes])
210 211 212 213 214 215 216 217 218 219

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
220 221 222 223 224 225 226

if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

227
AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32/quartz/directfb]] select non-default GDK target],
228 229 230 231
	gdktarget=$with_gdktarget)

AC_SUBST(gdktarget)
case $gdktarget in
232 233
  x11|linux-fb|win32|quartz|directfb) ;;
  *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz, directfb or win32.]);;
234 235
esac

Owen Taylor's avatar
Owen Taylor committed
236 237
gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
Tor Lillqvist's avatar
Tor Lillqvist committed
238 239 240 241

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

242 243 244 245
AC_ARG_ENABLE(shadowfb,
              [AC_HELP_STRING([--disable-shadowfb],
                              [disable shadowfb support for linux-fb])],,
              [enable_shadowfb=yes])
246

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

263 264 265 266 267
if test "x$enable_visibility" = "xno"; then
  GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
fi


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

Alexander Larsson's avatar
Alexander Larsson committed
270
			
Elliot Lee's avatar
Elliot Lee committed
271 272 273 274
# Build time sanity check...
AM_SANITY_CHECK

# Checks for programs.
275
AC_ISC_POSIX
Elliot Lee's avatar
Elliot Lee committed
276 277 278 279
AM_PROG_CC_STDC
AC_PROG_INSTALL
AC_PROG_MAKE_SET

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

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

    case " $CFLAGS " in
    *[\ \	]-pedantic[\ \	]*) ;;
    *) CFLAGS="$CFLAGS -pedantic" ;;
    esac
Elliot Lee's avatar
Elliot Lee committed
297
  fi
298 299
fi
changequote([,])dnl
Tor Lillqvist's avatar
Tor Lillqvist committed
300

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

336 337 338
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

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

Tor Lillqvist's avatar
Tor Lillqvist committed
351 352 353 354 355 356 357 358
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
359 360
AC_SUBST(LIBTOOL_EXPORT_OPTIONS)

361 362 363 364 365
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

AC_ARG_ENABLE(explicit-deps, 
366 367 368
              [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
                              [use explicit dependencies in .pc files [default=auto]])],,
              [enable_explicit_deps=auto])
369 370 371 372

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

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

392
AC_PATH_PROGS(PERL, perl5 perl)
393

394 395 396
# We would like indent, but don't require it.
AC_CHECK_PROG(INDENT, indent, indent)

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

405 406 407 408 409 410 411 412 413 414 415 416 417
AC_CHECK_FUNCS(lstat mkstemp flockfile)

# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
	    [Define if _NL_TIME_FIRST_WEEKDAY is available])
fi
418 419 420 421 422 423 424 425 426 427 428

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

Owen Taylor's avatar
Owen Taylor committed
430
# i18n stuff
431 432 433 434 435
# TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
# directories.  If you add a new language to ALL_LINGUAS, please make
# sure that both po/ and po-properties/ have .po files that correspond
# to your language.  If you only add one to po/, the build will break
# in po-properties/.
436
ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ko ku li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk uz uz@Latn vi wa xh yi zh_CN zh_HK zh_TW"
437
AM_GLIB_GNU_GETTEXT
438
LIBS="$LIBS $INTLLIBS"
439 440 441
AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
        sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
      esac])
442

Owen Taylor's avatar
Owen Taylor committed
443
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
444

445 446
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
447
AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
448

449
gtk_save_LIBS=$LIBS
450 451 452 453
LIBS="$LIBS -lm"
AC_TRY_RUN([#include <math.h>
             int main (void) { return (log(1) != log(1.)); }],
     AC_MSG_RESULT(none needed),
454
     gtk_save_CFLAGS="$CFLAGS"
455 456 457 458 459
     CFLAGS="$CFLAGS -std1"
     AC_TRY_RUN([#include <math.h>
	         int main (void) { return (log(1) != log(1.)); }],
         AC_MSG_RESULT(-std1),
         AC_MSG_RESULT()
460
         CFLAGS="$gtk_save_CFLAGS"
461
         AC_MSG_WARN(
462 463 464 465
                [No ANSI prototypes found in library. (-std1 didn't work.)]),
	 true
     ),
     AC_MSG_RESULT(none needed)
466 467 468
)
LIBS=$gtk_save_LIBS

469 470 471
AC_MSG_CHECKING(for the BeOS)
case $host in
  *-*-beos*)
Manish Singh's avatar
Manish Singh committed
472
    AC_MSG_RESULT(yes)
473 474
    MATH_LIB=
  ;;
Manish Singh's avatar
Manish Singh committed
475 476
  *)
    AC_MSG_RESULT(no)
477 478
  ;;
esac
479 480 481 482 483 484 485 486 487 488 489 490 491 492

#
# see bug 162979
#
AC_MSG_CHECKING(for HP-UX)
case $host_os in
  hpux9* | hpux10* | hpux11*)
    AC_MSG_RESULT(yes)
    CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
  ;;
  *)
    AC_MSG_RESULT(no)
  ;;
esac
493

Manish Singh's avatar
Manish Singh committed
494 495 496 497
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),
498
  gtk_save_CFLAGS="$CFLAGS"
Manish Singh's avatar
Manish Singh committed
499 500 501 502
  CFLAGS="$CFLAGS -posix"
  AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
    AC_MSG_RESULT(-posix),
    AC_MSG_RESULT()
503
    CFLAGS="$gtk_save_CFLAGS"
Manish Singh's avatar
Manish Singh committed
504 505
    AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))

506
#
Owen Taylor's avatar
Owen Taylor committed
507 508
# Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
# 
509

510
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
511

512
AM_PATH_GLIB_2_0(glib_required_version, :,
Owen Taylor's avatar
Owen Taylor committed
513
  AC_MSG_ERROR([
514 515
*** GLIB glib_required_version or better is required. The latest version of 
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
516
  gobject gmodule-no-export gthread)
Owen Taylor's avatar
Owen Taylor committed
517

518 519 520 521 522 523 524 525
# See if it's safe to turn G_DISABLE_DEPRECATED on.
GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
  CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
fi


Owen Taylor's avatar
Owen Taylor committed
526 527 528 529 530 531 532 533
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
534
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
535
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
536
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
537 538 539 540 541

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"
542
  AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
543 544 545
#ifdef __GNUC__
#define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
#define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
546 547 548
#endif
#include <windows.h>
#include <objbase.h>
549
#include <imm.h>
550
#ifdef __GNUC__
551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575
#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
576

577
if test "${with_wintab+set}" = set && test $with_wintab != no; then
Tor Lillqvist's avatar
Tor Lillqvist committed
578 579 580 581 582 583 584
  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)
585
    AC_MSG_CHECKING([for wntab32x.lib])
586
    if test -f $with_wintab/lib/i386/wntab32x.lib ; then
587
      AC_MSG_RESULT(yes)
588 589 590 591 592
      have_wintab=yes
      AC_DEFINE(HAVE_WINTAB)
      WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
      AC_SUBST(WINTAB_LIB)
    else
593 594
      AC_MSG_RESULT(no)
      CFLAGS="$saved_cflags"
595 596
      have_wintab=no
    fi
Tor Lillqvist's avatar
Tor Lillqvist committed
597 598
    ],
   [AC_MSG_RESULT(no)
599
    CFLAGS="$saved_cflags"
Tor Lillqvist's avatar
Tor Lillqvist committed
600 601 602
    have_wintab=no])
fi
AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
Tor Lillqvist's avatar
Tor Lillqvist committed
603

604 605 606
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

607

608 609
# Checks for header files.
AC_HEADER_STDC
610

611 612
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
613

614 615 616
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
617

Matthias Clasen's avatar
Matthias Clasen committed
618
AC_CHECK_FUNCS(mallinfo)
619 620
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
621

622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637
# 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
638

639 640 641 642 643 644 645
# `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)
646

647 648 649 650 651 652 653
# 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)
654

655 656 657
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
658

659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677
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"
678

679 680 681 682 683 684
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
685

686 687 688 689 690 691 692 693
# Check for uxtheme.h (for MS-Windows Engine)
AC_MSG_CHECKING(for uxtheme.h)
AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
if test $gtk_uxtheme_h = yes; then
   AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
fi
AC_MSG_RESULT($gtk_uxtheme_h)

694

695 696 697
##################################################
# Checks for gdk-pixbuf
##################################################
698

699 700 701 702 703 704 705 706 707 708 709 710 711 712
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


713
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
714

715 716 717
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
718

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

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

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

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

757 758 759 760 761 762 763 764 765
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
766

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

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

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

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

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

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

867 868 869
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
870

871
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
872

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

878 879 880 881 882 883 884 885
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)])
886

887 888 889 890 891 892 893 894 895
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

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

905
AC_MSG_RESULT($included_loaders)
906

907 908
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
909

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

918 919 920 921 922 923
 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)
924

925
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
926

927 928 929 930 931 932
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
933
if $dynworks ; then
934
  STATIC_LIB_DEPS=
935
  if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
936
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
937
  fi
938
  if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
939
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
940
  fi
941
  if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
Havoc Pennington's avatar
Havoc Pennington committed
942
    STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
943
  fi
944
else
945
  STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
946
fi
Elliot Lee's avatar
Elliot Lee committed
947

948 949 950
# 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.)
951
#
952
# This code is partially taken from Mesa
953
#
954 955 956 957 958 959 960 961 962
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
963

964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983
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
984
fi
985

986
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
987

988 989 990 991 992
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

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

995
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
996

997
if test $cross_compiling = yes; then
998 999
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
  if test x$GDK_PIXBUF_CSOURCE = xno; then
1000
    REBUILD_PNGS=#
1001 1002
  fi
fi
1003

1004
if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1005 1006
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1007
*** gtkbuiltincache.h is not in the tree, and cannot be built
1008 1009 1010 1011 1012 1013
*** 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)

1014
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1015 1016
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
GDK_PIXBUF_EXTRA_CFLAGS= 
1017
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1018
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1019

1020 1021 1022 1023 1024
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)
1025

1026

1027 1028 1029
########################################
# Windowing system checks
########################################
1030

1031 1032 1033
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1034 1035
	
X_PACKAGES=fontconfig
1036 1037 1038 1039 1040 1041
GDK_EXTRA_LIBS="$GDK_WLIBS"
GDK_EXTRA_CFLAGS=
	
# GTK+ uses some X calls, so needs to link against X directly
GTK_DEP_PACKAGES_FOR_X=
GTK_DEP_LIBS_FOR_X=
1042

1043
if test "x$gdktarget" = "xx11"; then
1044 1045 1046 1047 1048 1049 1050 1051 1052
  #
  # We use fontconfig very peripherally when decoding the default
  # settings.
  #
  if $PKG_CONFIG --exists fontconfig; then : ; else
    AC_MSG_ERROR([
*** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
  fi

1053
  #
1054
  # Check for basic X packages; we use pkg-config if available
1055
  #
1056
  if $PKG_CONFIG --exists x11 xext xrender; then
1057
    have_base_x_pc=true
1058 1059 1060
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
    x_libs="`pkg-config --libs x11 xext xrender`"
    X_CFLAGS="`pkg-config --cflags x11 xext xrender`"
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081
    
    # Strip out any .la files that pkg-config might give us (this happens
    # with -uninstalled.pc files)
    x_libs_for_checks=
    for I in $x_libs ; do
      case $I in 
        *.la) ;;
        *) x_libs_for_checks="$x_libs_for_checks $I" ;;
      esac
    done
    
    GDK_PIXBUF_XLIB_PACKAGES="x11"
    GTK_PACKAGES_FOR_X="x11"
  else
    have_base_x_pc=false
    AC_PATH_XTRA
    if test x$no_x = xyes ; then
      AC_MSG_ERROR([X development libraries not found])
    fi
    
    x_cflags="$X_CFLAGS"
1082
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1083

1084 1085
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1086
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1087 1088
  fi

1089 1090
  # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
  x_extra_libs=
Alex Larsson's avatar
Alex Larsson committed
1091

1092
  gtk_save_cppflags="$CPPFLAGS"
1093
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alex Larsson's avatar
Alex Larsson committed
1094

1095 1096 1097 1098 1099 1100 1101 1102 1103 1104
  gtk_save_LIBS=$LIBS
  LIBS="$x_libs_for_checks $LIBS"
  
  # Sanity check for the X11 and Xext libraries. While everything we need from
  # Xext is optional, the chances a system has *none* of these things is so
  # small that we just unconditionally require it.
  AC_CHECK_FUNC(XOpenDisplay, :,
                AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
  AC_CHECK_FUNC(XextFindDisplay, :,
                AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1105 1106
  AC_CHECK_FUNC(XRenderQueryExtension, :,
                AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))