configure.in 52.5 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
m4_define([gtk_minor_version], [11])
Matthias Clasen's avatar
Matthias Clasen committed
15
m4_define([gtk_micro_version], [1])
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], [1])
Owen Taylor's avatar
Owen Taylor committed
19 20
m4_define([gtk_binary_age],
          [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
21 22 23 24
# This is the X.Y used in -lgtk-FOO-X.Y
m4_define([gtk_api_version], [2.0])

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

# required versions of other packages
34
m4_define([glib_required_version], [2.13.1])
35
m4_define([pango_required_version], [1.15.3])
36
m4_define([atk_required_version], [1.9.0])
Matthias Clasen's avatar
Matthias Clasen committed
37
m4_define([cairo_required_version], [1.2.0])
38 39 40


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

AC_CONFIG_SRCDIR([gdk/gdktypes.h])

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

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

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


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

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

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

96

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

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

114 115
AC_CANONICAL_HOST

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

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

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

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

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

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

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

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

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

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

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

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

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

Tor Lillqvist's avatar
Tor Lillqvist committed
214 215 216 217 218 219
if test "$platform_win32" = yes; then
  gdktarget=win32
else
  gdktarget=x11
fi

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

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

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

AC_SUBST(gdktargetlib)
AC_SUBST(gtktargetlib)

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

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

256

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


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

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

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

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

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

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

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

330 331 332
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

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

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

355 356 357 358 359
dnl ******************************************************
dnl * See whether to include shared library dependencies *
dnl ******************************************************

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

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

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

387
AC_PATH_PROGS(PERL, perl5 perl)
388

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

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

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

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

414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449
# _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
	    [Define if _NL_MEASUREMENT_MEASUREMENT is available])
fi

# _NL_PAPER_HEIGHT is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
	    [Define if _NL_PAPER_HEIGHT is available])
fi

# _NL_PAPER_WIDTH is an enum and not a define
AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
AC_TRY_LINK([#include <langinfo.h>], [
char c;
c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
], gtk_ok=yes, gtk_ok=no)
AC_MSG_RESULT($gtk_ok)
if test "$gtk_ok" = "yes"; then
  AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
	    [Define if _NL_PAPER_WIDTH is available])
fi
	
450 451 452 453 454 455 456 457 458 459
# 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
460

Owen Taylor's avatar
Owen Taylor committed
461
# i18n stuff
462 463 464 465 466
# 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/.
467
ALL_LINGUAS="af am ang ar az az_IR be be@latin bg bn bn_IN br bs ca cs cy da de dz el en_CA en_GB eo es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ka ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso or pa pl pt pt_BR ro ru rw sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@Latn vi wa xh yi zh_CN zh_HK zh_TW"
468
AM_GLIB_GNU_GETTEXT
469
LIBS="$LIBS $INTLLIBS"
470 471 472
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])
473

Owen Taylor's avatar
Owen Taylor committed
474
AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
Owen Taylor's avatar
Owen Taylor committed
475

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

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

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

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

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

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

541
GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
542

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

549 550 551 552 553 554 555 556
# 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
557 558 559 560 561 562 563 564
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
565
AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
566
AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
Tor Lillqvist's avatar
Tor Lillqvist committed
567
AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
568
AC_CHECK_HEADERS(ftw.h, AC_DEFINE(HAVE_FTW_H))
569

570 571 572 573 574 575 576 577 578 579 580
AC_MSG_CHECKING([for GNU ftw extensions])
AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
#define _GNU_SOURCE
#include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
if test $gtk_ok = yes; then
    AC_MSG_RESULT([yes])
    AC_DEFINE(HAVE_GNU_FTW,1,[Have GNU ftw])
else
    AC_MSG_RESULT([no])
fi

581 582 583
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"

584

585 586
# Checks for header files.
AC_HEADER_STDC
587

588 589
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Elliot Lee's avatar
Elliot Lee committed
590

591 592 593
# Checks for library functions.
AC_TYPE_SIGNAL
AC_FUNC_MMAP
594

Matthias Clasen's avatar
Matthias Clasen committed
595
AC_CHECK_FUNCS(mallinfo)
596 597
AC_CHECK_FUNCS(getresuid)
AC_TYPE_UID_T
598

599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614
# 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
615

616 617 618 619 620 621 622
# `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)
623

624 625 626 627 628 629 630
# 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)
631

632 633 634
# in Solaris 2.5, `iswalnum' is in -lw
GDK_WLIBS=
AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
635

636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654
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"
655

656 657 658 659 660 661
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
662

663 664 665 666 667 668 669 670
# Check for uxtheme.h (for MS-Windows Engine)
AC_MSG_CHECKING(for uxtheme.h)
AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
if test $gtk_uxtheme_h = yes; then
   AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
fi
AC_MSG_RESULT($gtk_uxtheme_h)

Matthias Clasen's avatar
Matthias Clasen committed
671 672 673 674
# Checks for gdkspawn
AC_CHECK_HEADERS(crt_externs.h)
AC_CHECK_FUNCS(_NSGetEnviron)

675

676 677 678
##################################################
# Checks for gdk-pixbuf
##################################################
679

680 681 682 683 684 685 686 687 688 689 690 691 692 693
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


694
AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
695

696 697 698
AC_ARG_ENABLE(modules,
              [AC_HELP_STRING([--disable-modules],
                              [disable dynamic module loading])])
699

700 701
dynworks=false
deps=
702
if test x$enable_modules = xno; then
703 704 705 706
    AC_MSG_RESULT(no)
else
    AC_MSG_RESULT(yes)
    AC_MSG_CHECKING(whether dynamic modules work)
707
    ## for loop is to strip newline 
708
    tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
709 710 711
    for I in $tmp; do
        dynworks=$I
    done
712

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

727 728 729 730 731 732
    if $dynworks; then
        AC_DEFINE(USE_GMODULE)
        AC_MSG_RESULT(yes)
    else
        AC_MSG_RESULT(no)
    fi
733
fi
Havoc Pennington's avatar
Havoc Pennington committed
734

Owen Taylor's avatar
Owen Taylor committed
735 736 737
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.

738 739 740 741 742 743 744 745 746
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
747

748
dnl Test for libtiff
Owen Taylor's avatar
Owen Taylor committed
749
  if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
750
    AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
Tor Lillqvist's avatar
Tor Lillqvist committed
751
      [AC_CHECK_HEADER(tiffio.h,
752
        TIFF='tiff'; LIBTIFF='-ltiff',
Tor Lillqvist's avatar
Tor Lillqvist committed
753 754 755
        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
        [AC_CHECK_HEADER(tiffio.h,
756
          TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
757 758 759
          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
        [AC_CHECK_LIB(tiff34, TIFFFlushData,
          [AC_CHECK_HEADER(tiffio.h,
760
            TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
Tor Lillqvist's avatar
Tor Lillqvist committed
761
            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
762
        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
763 764
  fi

Owen Taylor's avatar
Owen Taylor committed
765 766 767 768 769 770 771
  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

772
dnl Test for libjpeg
Owen Taylor's avatar
Owen Taylor committed
773
  if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
774 775 776 777 778 779 780 781 782 783
    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
784
#undef HAVE_STDLIB_H
785 786 787 788 789 790 791 792 793 794 795 796 797
#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
798 799
  fi

Owen Taylor's avatar
Owen Taylor committed
800 801 802 803 804 805 806
  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

807
dnl Test for libpng
Owen Taylor's avatar
Owen Taylor committed
808
  if test x$with_libpng != xno && test -z "$LIBPNG"; then
809 810 811 812 813 814 815 816 817 818 819 820 821
    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)
822
      if test "$png_ok" = yes; then
823 824 825 826 827 828 829 830 831 832 833
        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
834
      else
835
       AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
836 837
      fi
    fi
838
  fi
839

Owen Taylor's avatar
Owen Taylor committed
840 841 842 843 844 845 846 847
  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

848 849 850
AC_SUBST(LIBTIFF)
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
851

852
AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
853

854 855 856 857
#
# Allow building some or all gdk-pixbuf loaders included
#
AC_MSG_CHECKING(pixbuf loaders to build)
858

859 860 861
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 ...],
862
dnl                [build the specified loaders into gdk-pixbuf])
863 864
AC_ARG_WITH(included_loaders,
[  --with-included-loaders=LOADER1,LOADER2,...
865
                          build the specified loaders into gdk-pixbuf])
866

867
if $dynworks; then 
868
   :
869 870 871 872 873 874 875
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

876
all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,xbm,tga,pcx"
877 878 879 880
included_loaders=""
# If no loaders specified, include all
if test "x$with_included_loaders" = xyes ; then
  included_loaders="$all_loaders"
881
else
882
  included_loaders="$with_included_loaders"
883 884
fi

885
AC_MSG_RESULT($included_loaders)
886

887 888
INCLUDED_LOADER_OBJ=
INCLUDED_LOADER_DEFINE=
889

890 891
IFS="${IFS= 	}"; gtk_save_ifs="$IFS"; IFS=","
for loader in $included_loaders; do
892
 if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
893 894 895 896
   :
 else
   AC_MSG_ERROR([the specified loader $loader does not exist])
 fi
897

898
 INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
899
 INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
900
 eval INCLUDE_$loader=yes
901 902 903 904
done
IFS="$gtk_save_ifs"
AC_SUBST(INCLUDED_LOADER_OBJ)
AC_SUBST(INCLUDED_LOADER_DEFINE)
905

906 907 908 909 910 911 912 913 914 915 916 917 918 919 920
AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])

921
AC_HEADER_SYS_WAIT
Alexander Larsson's avatar
Alexander Larsson committed
922

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

944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969
# Checks to see whether we should include mediaLib
# support.
#
AC_CHECK_HEADER(sys/systeminfo.h, AC_DEFINE(HAVE_SYS_SYSTEMINFO_H))
AC_CHECK_HEADER(sys/sysinfo.h, AC_DEFINE(HAVE_SYS_SYSINFO_H))

AC_MSG_CHECKING(for mediaLib 2.3)
use_mlib25=no
# Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
# patch requires.
AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
if test $use_mlib = yes; then
    AC_DEFINE(USE_MEDIALIB)
    MEDIA_LIB=-lmlib

    AC_MSG_CHECKING(for mediaLib 2.5)
    # Check for a mediaLib 2.5 function since that is what is needed for
    # gdk_rgb_convert integration.
    AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
    if test $use_mlib25 = yes; then
        AC_DEFINE(USE_MEDIALIB25)
    fi
fi
AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)

970 971 972
# 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.)
973
#
974
# This code is partially taken from Mesa
975
#
976 977 978 979 980 981 982 983 984
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
985

986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005
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
1006
fi
1007

1008
AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1009

1010 1011 1012 1013 1014
REBUILD_PNGS=
if test -z "$LIBPNG"; then
  REBUILD_PNGS=#
fi

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

1017
AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1018

1019
if test $cross_compiling = yes; then
1020
  AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1021 1022
  AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
  if test x$GTK_UPDATE_ICON_CACHE = xno; then
1023
    REBUILD_PNGS=#
1024 1025
  fi
fi
1026

1027
if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1028 1029
   test "x$REBUILD_PNGS" = "x#" ; then
     AC_MSG_ERROR([
1030
*** gtkbuiltincache.h is not in the tree, and cannot be built
1031
*** because you don't have libpng, or (when cross-compiling) you 
1032
*** don't have a prebuilt gtk-update-icon-cache on the build system.])
1033 1034 1035 1036
fi

AC_SUBST(REBUILD_PNGS)

1037
GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1038
GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1039
GDK_PIXBUF_EXTRA_CFLAGS= 
1040
GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1041
GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1042

1043 1044 1045 1046 1047
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)
1048

1049

1050 1051 1052
########################################
# Windowing system checks
########################################
1053

1054 1055 1056
GDK_PIXBUF_XLIB_PACKAGES=
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
GDK_PIXBUF_XLIB_EXTRA_LIBS=
1057 1058
	
X_PACKAGES=fontconfig
1059 1060 1061 1062 1063 1064
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=
1065

1066
if test "x$gdktarget" = "xx11"; then
1067 1068 1069 1070 1071 1072 1073 1074 1075
  #
  # 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

1076
  #
1077
  # Check for basic X packages; we use pkg-config if available
1078
  #
1079
  if $PKG_CONFIG --exists x11 xext xrender; then
1080
    have_base_x_pc=true
1081
    X_PACKAGES="$X_PACKAGES x11 xext xrender"
1082 1083
    x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
    X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104
    
    # 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"
1105
    x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
Elliot Lee's avatar
Elliot Lee committed
1106

1107 1108
    GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
    GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1109
    GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1110 1111
  fi

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

1115
  gtk_save_cppflags="$CPPFLAGS"
1116
  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Alexander Larsson's avatar
Alexander Larsson committed
1117

1118 1119