]> Pileus Git - ~andy/gtk/blob - configure.in
Use g_set_error_literal where appropriate. Bug #538640.
[~andy/gtk] / configure.in
1 # Process this file with autoconf to produce a configure script.
2 # require autoconf 2.54
3 AC_PREREQ(2.54)
4
5 # Making releases:
6 #   GTK_MICRO_VERSION += 1;
7 #   GTK_INTERFACE_AGE += 1;
8 #   GTK_BINARY_AGE += 1;
9 # if any functions have been added, set GTK_INTERFACE_AGE to 0.
10 # if backwards compatibility has been broken,
11 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
12
13 m4_define([gtk_major_version], [2])
14 m4_define([gtk_minor_version], [13])
15 m4_define([gtk_micro_version], [4])
16 m4_define([gtk_interface_age], [0])
17 m4_define([gtk_binary_age],
18           [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
19 m4_define([gtk_version],
20           [gtk_major_version.gtk_minor_version.gtk_micro_version])
21 # This is the X.Y used in -lgtk-FOO-X.Y
22 m4_define([gtk_api_version], [2.0])
23
24 # Define a string for the earliest version that this release has
25 # backwards binary compatibility with for all interfaces a module
26 # might. Unless we add module-only API with lower stability
27 # guarantees, this should be unchanged until we break binary compat
28 # 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.17.3])
35 m4_define([pango_required_version], [1.20])
36 m4_define([atk_required_version], [1.13.0])
37 m4_define([cairo_required_version], [1.6])
38
39
40 AC_INIT([gtk+], [gtk_version],
41         [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42         [gtk+])
43
44 AC_CONFIG_SRCDIR([gdk/gdktypes.h])
45
46 # Save this value here, since automake will set cflags later
47 cflags_set=${CFLAGS+set}
48
49 AM_INIT_AUTOMAKE(no-define)
50 AM_CONFIG_HEADER(config.h)
51
52 #
53 # For each of the libraries we build, we define the following
54  
55 # substituted variables:
56 #
57 # foo_PACKAGES:     pkg-config packages this library requires
58 # foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
59 # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
60 # foo_DEP_LIBS:     All libraries this module requires
61 # foo_DEP_CFLAGS:   All cflags this module requires
62
63
64 GTK_MAJOR_VERSION=gtk_major_version
65 GTK_MINOR_VERSION=gtk_minor_version
66 GTK_MICRO_VERSION=gtk_micro_version
67 GTK_INTERFACE_AGE=gtk_interface_age
68 GTK_BINARY_AGE=gtk_binary_age
69 GTK_VERSION=gtk_version
70 GTK_API_VERSION=gtk_api_version
71 GTK_BINARY_VERSION=gtk_binary_version
72 AC_SUBST(GTK_MAJOR_VERSION)
73 AC_SUBST(GTK_MINOR_VERSION)
74 AC_SUBST(GTK_MICRO_VERSION)
75 AC_SUBST(GTK_INTERFACE_AGE)
76 AC_SUBST(GTK_BINARY_AGE)
77 AC_SUBST(GTK_API_VERSION)
78 AC_SUBST(GTK_VERSION)
79 AC_SUBST(GTK_BINARY_VERSION)
80
81 # libtool versioning
82 #LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
83 #LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
84 #LT_REVISION=$GTK_INTERFACE_AGE
85 #LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
86 #LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
87
88 m4_define([lt_current], [m4_eval(100 * gtk_minor_version + gtk_micro_version - gtk_interface_age)])
89 m4_define([lt_revision], [gtk_interface_age])
90 m4_define([lt_age], [m4_eval(gtk_binary_age - gtk_interface_age)])
91 LT_VERSION_INFO="lt_current:lt_revision:lt_age"
92 LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
93 AC_SUBST(LT_VERSION_INFO)
94 AC_SUBST(LT_CURRENT_MINUS_AGE)
95
96 m4_define([gail_lt_current],[18])
97 m4_define([gail_lt_revision],[1])
98 m4_define([gail_lt_age],[0])
99 m4_define([gail_lt_version_info],[gail_lt_current:gail_lt_revision:gail_lt_age])
100 m4_define([gail_lt_current_minus_age],[m4_eval(gail_lt_current - gail_lt_age)])
101 AC_SUBST([GAIL_LT_VERSION_INFO],[gail_lt_version_info])
102 AC_SUBST([GAIL_LT_CURRENT_MINUS_AGE],[gail_lt_current_minus_age])
103
104 #
105 # gdk-pixbuf gets versioned separately, and for now, using standard
106 # libtool versioning, not GTK+-style versioning
107 #
108 GDK_PIXBUF_MAJOR=gtk_major_version
109 GDK_PIXBUF_MINOR=gtk_minor_version
110 GDK_PIXBUF_MICRO=gtk_micro_version
111 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
112 AC_SUBST(GDK_PIXBUF_MAJOR)
113 AC_SUBST(GDK_PIXBUF_MINOR)
114 AC_SUBST(GDK_PIXBUF_MICRO)
115 AC_SUBST(GDK_PIXBUF_VERSION)
116
117 GETTEXT_PACKAGE=gtk20
118 AC_SUBST(GETTEXT_PACKAGE)
119 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
120                    [The prefix for our gettext translation domains.])
121
122 AC_CANONICAL_HOST
123
124 MATH_LIB=-lm
125 AC_MSG_CHECKING([for native Win32])
126 case "$host" in
127   *-*-mingw*)
128     os_win32=yes
129     MATH_LIB=
130     ;;
131   *)
132     os_win32=no
133     ;;
134 esac
135 AC_MSG_RESULT([$os_win32])
136
137 case $host in
138   *-*-linux*)
139     os_linux=yes
140     ;;
141 esac
142 dnl Initialize libtool
143 AC_PROG_CC
144 AM_DISABLE_STATIC
145
146 dnl 
147 dnl Check for a working C++ compiler, but do not bail out, if none is found.
148 dnl We use this for an automated test for C++ header correctness.
149 dnl 
150 AC_CHECK_TOOLS(CXX, [$CCC c++ g++ gcc CC cxx cc++ cl], gcc)
151 AC_LANG_SAVE
152 AC_LANG_CPLUSPLUS
153
154 AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
155 AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
156
157 gtk_save_cxxflags="$CXXFLAGS"
158 CXXFLAGS="$CXXFLAGS -x objective-c++"
159 AC_TRY_COMPILE([@interface Foo @end],,OBJC=yes,OBJC=no)
160 AM_CONDITIONAL(HAVE_OBJC, test "$OBJC" = "yes")
161 CXXFLAGS="$gtk_save_cxxflags"
162 AC_LANG_RESTORE
163
164 if test "$os_win32" = "yes"; then
165   if test x$enable_static = xyes -o x$enable_static = x; then
166     AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
167     enable_static=no
168   fi
169   if test x$enable_shared = xno; then
170     AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
171   fi
172   enable_shared=yes
173 fi
174
175 AC_LIBTOOL_WIN32_DLL
176 AM_PROG_LIBTOOL
177
178 # Make sure we use 64-bit versions of various file stuff.
179 AC_SYS_LARGEFILE
180
181 AM_PROG_AS
182 AC_PATH_PROG(NM, nm, nm)
183
184 dnl Initialize maintainer mode
185 AM_MAINTAINER_MODE
186
187 AC_MSG_CHECKING([for some Win32 platform])
188 case "$host" in
189   *-*-mingw*|*-*-cygwin*)
190     platform_win32=yes
191     ;;
192   *)
193     platform_win32=no
194     ;;
195 esac
196 AC_MSG_RESULT([$platform_win32])
197 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
198
199 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
200 AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
201 AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
202
203 if test "$os_win32" = "yes"; then
204   AC_CHECK_TOOL(WINDRES, windres, no)
205   if test "$WINDRES" = no; then
206     AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
207   fi
208   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
209 fi
210 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
211
212 m4_define([debug_default],
213           m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
214
215 dnl declare --enable-* args and collect ac_help strings
216 AC_ARG_ENABLE(debug,
217               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
218                              [turn on debugging @<:@default=debug_default@:>@]),,
219               enable_debug=debug_default)
220 AC_ARG_ENABLE(shm,
221               [AC_HELP_STRING([--enable-shm],
222                               [support shared memory if available [default=yes]])],,
223               [enable_shm="yes"])
224 AC_ARG_ENABLE(xkb,
225               [AC_HELP_STRING([--enable-xkb],
226                               [support XKB [default=maybe]])],,
227               [enable_xkb="maybe"])
228 AC_ARG_ENABLE(xinerama,
229               [AC_HELP_STRING([--enable-xinerama],
230                               [support xinerama extension if available [default=yes]])],,
231               [enable_xinerama="no"])
232 AC_ARG_ENABLE(rebuilds,
233               [AC_HELP_STRING([--disable-rebuilds],
234                               [disable all source autogeneration rules])],,
235               [enable_rebuilds=yes])
236 AC_ARG_ENABLE(visibility,
237               [AC_HELP_STRING([--disable-visibility],
238                               [don't use ELF visibility attributes])],,
239               [enable_visibility=yes])
240
241 AC_ARG_WITH(xinput,
242             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
243
244 if test "$platform_win32" = yes; then
245   gdktarget=win32
246 else
247   gdktarget=x11
248 fi
249
250 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/win32/quartz/directfb]] select non-default GDK target],
251         gdktarget=$with_gdktarget)
252
253 AC_SUBST(gdktarget)
254 case $gdktarget in
255   x11|win32|quartz|directfb) ;;
256   *) AC_MSG_ERROR([Invalid target for GDK: use x11, quartz, directfb or win32.]);;
257 esac
258
259 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
260 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
261
262 AC_SUBST(gdktargetlib)
263 AC_SUBST(gtktargetlib)
264
265 if test "x$enable_debug" = "xyes"; then
266   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
267   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG -DG_ERRORCHECK_MUTEXES" 
268 else
269   if test "x$enable_debug" = "xno"; then
270     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
271   else
272     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
273   fi
274 fi
275
276
277 if test "x$enable_visibility" = "xno"; then
278   GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
279 fi
280
281
282 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}",
283                    [Define if debugging is enabled])
284
285                         
286 # Build time sanity check...
287 AM_SANITY_CHECK
288
289 # Checks for programs.
290 AC_ISC_POSIX
291 AM_PROG_CC_STDC
292 AC_PROG_INSTALL
293 AC_PROG_MAKE_SET
294
295 changequote(,)dnl
296 if test "x$GCC" = "xyes"; then
297   case " $CFLAGS " in
298   *[\ \ ]-Wall[\ \      ]*) ;;
299   *) CFLAGS="$CFLAGS -Wall" ;;
300   esac
301
302   if test "x$enable_ansi" = "xyes"; then
303     case " $CFLAGS " in
304     *[\ \       ]-ansi[\ \      ]*) ;;
305     *) CFLAGS="$CFLAGS -ansi" ;;
306     esac
307
308     case " $CFLAGS " in
309     *[\ \       ]-pedantic[\ \  ]*) ;;
310     *) CFLAGS="$CFLAGS -pedantic" ;;
311     esac
312   fi
313 fi
314 changequote([,])dnl
315
316 CPPFLAGS="$CPPFLAGS -DG_DISABLE_SINGLE_INCLUDES -DATK_DISABLE_SINGLE_INCLUDES -DPANGO_DISABLE_SINGLE_INCLUDES -DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
317
318 # Ensure MSVC-compatible struct packing convention is used when
319 # compiling for Win32 with gcc.
320 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
321 # gcc2 uses "-fnative-struct".
322 if test x"$os_win32" = xyes; then
323   if test x"$GCC" = xyes; then
324     msnative_struct=''
325     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
326     if test -z "$ac_cv_prog_CC"; then
327       our_gcc="$CC"
328     else
329       our_gcc="$ac_cv_prog_CC"
330     fi
331     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
332       2.)
333         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
334           msnative_struct='-fnative-struct'
335         fi
336         ;;
337       *)
338         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
339           msnative_struct='-mms-bitfields'
340         fi
341         ;;
342     esac
343     if test x"$msnative_struct" = x ; then
344       AC_MSG_RESULT([no way])
345       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
346     else
347       CFLAGS="$CFLAGS $msnative_struct"
348       AC_MSG_RESULT([${msnative_struct}])
349     fi
350   fi
351 fi
352
353 # Honor aclocal flags
354 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
355
356 ## Initial sanity check, done here so that users get told they 
357 ## have the wrong dependencies as early in the process as possible.
358 ## Later on we actually use the cflags/libs from separate pkg-config
359 ## calls. Oh, also the later pkg-config calls don't include 
360 ## the version requirements since those make the module lists 
361 ## annoying to construct
362 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
363   [glib-2.0 >= glib_required_version dnl
364    atk >= atk_required_version dnl
365    pango >= pango_required_version dnl
366    cairo >= cairo_required_version])
367
368 if test "$os_win32" != yes; then
369     # libtool option to control which symbols are exported
370     # right now, symbols starting with _ are not exported
371     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
372 else
373     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
374     LIBTOOL_EXPORT_OPTIONS=
375 fi
376 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
377
378 dnl ******************************************************
379 dnl * See whether to include shared library dependencies *
380 dnl ******************************************************
381
382 AC_ARG_ENABLE(explicit-deps, 
383               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
384                               [use explicit dependencies in .pc files [default=auto]])],,
385               [enable_explicit_deps=auto])
386
387 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
388 case $enable_explicit_deps in
389   auto)
390     export SED
391     deplibs_check_method=`(./libtool --config; echo 'eval echo $deplibs_check_method') | sh`
392     if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
393       enable_explicit_deps=yes  
394     else
395       enable_explicit_deps=no  
396     fi
397   ;;
398   yes|no) 
399   ;;
400   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
401   ;;
402 esac
403 AC_MSG_RESULT($enable_explicit_deps)
404
405 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
406
407 # define a MAINT-like variable REBUILD which is set if Perl
408 # and awk are found, so autogenerated sources can be rebuilt
409
410 AC_PATH_PROGS(PERL, perl5 perl)
411
412 # We would like indent, but don't require it.
413 AC_CHECK_PROG(INDENT, indent, indent)
414
415 REBUILD=\#
416 if test "x$enable_rebuilds" = "xyes" && \
417      test -n "$PERL" && \
418      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
419   REBUILD=
420 fi
421 AC_SUBST(REBUILD)
422
423 AC_CHECK_FUNCS(lstat mkstemp flockfile getc_unlocked)
424 AC_CHECK_FUNCS(localtime_r)
425
426 # _NL_TIME_FIRST_WEEKDAY is an enum and not a define
427 AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
428 AC_TRY_LINK([#include <langinfo.h>], [
429 char c;
430 c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
431 ], gtk_ok=yes, gtk_ok=no)
432 AC_MSG_RESULT($gtk_ok)
433 if test "$gtk_ok" = "yes"; then
434   AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
435             [Define if _NL_TIME_FIRST_WEEKDAY is available])
436 fi
437
438 # _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
439 AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
440 AC_TRY_LINK([#include <langinfo.h>], [
441 char c;
442 c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
443 ], gtk_ok=yes, gtk_ok=no)
444 AC_MSG_RESULT($gtk_ok)
445 if test "$gtk_ok" = "yes"; then
446   AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
447             [Define if _NL_MEASUREMENT_MEASUREMENT is available])
448 fi
449
450 # _NL_PAPER_HEIGHT is an enum and not a define
451 AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
452 AC_TRY_LINK([#include <langinfo.h>], [
453 char c;
454 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
455 ], gtk_ok=yes, gtk_ok=no)
456 AC_MSG_RESULT($gtk_ok)
457 if test "$gtk_ok" = "yes"; then
458   AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
459             [Define if _NL_PAPER_HEIGHT is available])
460 fi
461
462 # _NL_PAPER_WIDTH is an enum and not a define
463 AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
464 AC_TRY_LINK([#include <langinfo.h>], [
465 char c;
466 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
467 ], gtk_ok=yes, gtk_ok=no)
468 AC_MSG_RESULT($gtk_ok)
469 if test "$gtk_ok" = "yes"; then
470   AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
471             [Define if _NL_PAPER_WIDTH is available])
472 fi
473         
474 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
475 AC_MSG_CHECKING(for sigsetjmp)
476 AC_TRY_LINK([#include <setjmp.h>], [
477 sigjmp_buf env;
478 sigsetjmp(env, 0);
479 ], gtk_ok=yes, gtk_ok=no)
480 AC_MSG_RESULT($gtk_ok)
481 if test "$gtk_ok" = "yes"; then
482   AC_DEFINE(HAVE_SIGSETJMP, 1,
483             [Define to 1 if sigsetjmp is available])
484 fi
485
486 # i18n stuff
487 # TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
488 # directories.  If you add a new language to ALL_LINGUAS, please make
489 # sure that both po/ and po-properties/ have .po files that correspond
490 # to your language.  If you only add one to po/, the build will break
491 # in po-properties/.
492 ALL_LINGUAS="af am ang ar as az az_IR be be@latin bg bn bn_IN br bs ca ca@valencia 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 io is it ja ka kn ko ku li lt lv mi mk ml mn mr ms nb ne nl nn nso oc or pa pl pt pt_BR ro ru rw si sk sl sq sr sr@Latn sr@ije sv ta te th tk tr tt uk ur uz uz@cyrillic vi wa xh yi zh_CN zh_HK zh_TW"
493 AM_GLIB_GNU_GETTEXT
494 LIBS="$LIBS $INTLLIBS"
495 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
496         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
497       esac])
498
499 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
500
501 dnl The DU4 header files don't provide library prototypes unless 
502 dnl -std1 is given to the native cc.
503 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
504
505 gtk_save_LIBS=$LIBS
506 LIBS="$LIBS -lm"
507 AC_TRY_RUN([#include <math.h>
508              int main (void) { return (log(1) != log(1.)); }],
509      AC_MSG_RESULT(none needed),
510      gtk_save_CFLAGS="$CFLAGS"
511      CFLAGS="$CFLAGS -std1"
512      AC_TRY_RUN([#include <math.h>
513                  int main (void) { return (log(1) != log(1.)); }],
514          AC_MSG_RESULT(-std1),
515          AC_MSG_RESULT()
516          CFLAGS="$gtk_save_CFLAGS"
517          AC_MSG_WARN(
518                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
519          true
520      ),
521      AC_MSG_RESULT(none needed)
522 )
523 LIBS=$gtk_save_LIBS
524
525 AC_MSG_CHECKING(for the BeOS)
526 case $host in
527   *-*-beos*)
528     AC_MSG_RESULT(yes)
529     MATH_LIB=
530   ;;
531   *)
532     AC_MSG_RESULT(no)
533   ;;
534 esac
535
536 #
537 # see bug 162979
538 #
539 AC_MSG_CHECKING(for HP-UX)
540 case $host_os in
541   hpux9* | hpux10* | hpux11*)
542     AC_MSG_RESULT(yes)
543     CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
544   ;;
545   *)
546     AC_MSG_RESULT(no)
547   ;;
548 esac
549
550 dnl NeXTStep cc seems to need this
551 AC_MSG_CHECKING([for extra flags for POSIX compliance])
552 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
553   AC_MSG_RESULT(none needed),
554   gtk_save_CFLAGS="$CFLAGS"
555   CFLAGS="$CFLAGS -posix"
556   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
557     AC_MSG_RESULT(-posix),
558     AC_MSG_RESULT()
559     CFLAGS="$gtk_save_CFLAGS"
560     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
561
562 #
563 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
564
565
566 GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
567
568 AM_PATH_GLIB_2_0(glib_required_version, :,
569   AC_MSG_ERROR([
570 *** GLIB glib_required_version or better is required. The latest version of 
571 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
572   gobject gmodule-no-export gthread)
573
574 # See if it's safe to turn G_DISABLE_DEPRECATED on.
575 GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
576 GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
577 if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
578   CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
579 fi
580
581
582 dnl
583 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
584 dnl
585 gtk_save_LIBS=$LIBS
586 LIBS="$LIBS $GLIB_LIBS"
587 AC_CHECK_FUNCS(bind_textdomain_codeset)
588 LIBS=$gtk_save_LIBS
589
590 AC_CHECK_HEADERS(pwd.h,
591                  AC_DEFINE(HAVE_PWD_H, 1,
592                            [Define to 1 if pwd.h is available]))
593 AC_CHECK_HEADERS(sys/time.h,
594                  AC_DEFINE(HAVE_SYS_TIME_H, 1,
595                            [Define to 1 if time.h is available]))
596 AC_CHECK_HEADERS(unistd.h,
597                  AC_DEFINE(HAVE_UNISTD_H, 1,
598                            [Define to 1 if unistd.h is available]))
599 AC_CHECK_HEADERS(ftw.h,
600                  AC_DEFINE(HAVE_FTW_H, 1,
601                            [Define to 1 if ftw.h is available]))
602
603 AC_MSG_CHECKING([for GNU ftw extensions])
604 AC_TRY_COMPILE([#define _XOPEN_SOURCE 500
605 #define _GNU_SOURCE
606 #include <ftw.h>], [int flags = FTW_ACTIONRETVAL;], gtk_ok=yes, gtk_ok=no)
607 if test $gtk_ok = yes; then
608     AC_MSG_RESULT([yes])
609     AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
610 else
611     AC_MSG_RESULT([no])
612 fi
613
614 saved_cflags="$CFLAGS"
615 saved_ldflags="$LDFLAGS"
616
617
618 # Checks for header files.
619 AC_HEADER_STDC
620
621 # Checks for typedefs, structures, and compiler characteristics.
622 AC_C_CONST
623
624 # Checks for library functions.
625 AC_TYPE_SIGNAL
626 AC_FUNC_MMAP
627
628 AC_CHECK_FUNCS(mallinfo)
629 AC_CHECK_FUNCS(getresuid)
630 AC_TYPE_UID_T
631
632 # Check if <sys/select.h> needs to be included for fd_set
633 AC_MSG_CHECKING([for fd_set])
634 AC_TRY_COMPILE([#include <sys/types.h>],
635         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
636 if test $gtk_ok = yes; then
637     AC_MSG_RESULT([yes, found in sys/types.h])
638 else
639     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
640     if test $gtk_ok = yes; then
641         AC_DEFINE(HAVE_SYS_SELECT_H, 1,
642                   [Define to 1 if sys/select.h is available])
643         AC_MSG_RESULT([yes, found in sys/select.h])
644     else
645         AC_DEFINE(NO_FD_SET, 1,
646                   [Define to 1 if fd_set is not available])
647         AC_MSG_RESULT(no)
648     fi
649 fi
650
651 # `widechar' tests for gdki18n.h
652 AC_MSG_CHECKING(for wchar.h)
653 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
654 if test $gdk_wchar_h = yes; then
655    AC_DEFINE(HAVE_WCHAR_H, 1, [Have wchar.h include file])
656 fi
657 AC_MSG_RESULT($gdk_wchar_h)
658
659 # Check for wctype.h (for iswalnum)
660 AC_MSG_CHECKING(for wctype.h)
661 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
662 if test $gdk_wctype_h = yes; then
663    AC_DEFINE(HAVE_WCTYPE_H, 1, [Have wctype.h include file])
664 fi
665 AC_MSG_RESULT($gdk_wctype_h)
666
667 # in Solaris 2.5, `iswalnum' is in -lw
668 GDK_WLIBS=
669 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
670
671 oLIBS="$LIBS"
672 LIBS="$LIBS $GDK_WLIBS"
673 # The following is necessary for Linux libc-5.4.38
674 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
675 AC_TRY_LINK([#include <stdlib.h>],[
676 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
677 #  ifdef HAVE_WCTYPE_H
678 #    include <wctype.h>
679 #  else
680 #    ifdef HAVE_WCHAR_H
681 #      include <wchar.h>
682 #    endif
683 #  endif
684 #else
685 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
686 #endif
687 iswalnum((wchar_t) 0);
688 ], gdk_working_wctype=yes, gdk_working_wctype=no)
689 LIBS="$oLIBS"
690
691 if test $gdk_working_wctype = no; then
692    AC_DEFINE(HAVE_BROKEN_WCTYPE, 1, [Is the wctype implementation broken])
693    GDK_WLIBS=
694 fi
695 AC_MSG_RESULT($gdk_working_wctype)
696 AC_SUBST(GDK_WLIBS)
697
698 # Check for uxtheme.h (for MS-Windows Engine)
699 AC_MSG_CHECKING(for uxtheme.h)
700 AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
701 if test $gtk_uxtheme_h = yes; then
702    AC_DEFINE(HAVE_UXTHEME_H, 1, [Have uxtheme.h include file])
703 fi
704 AC_MSG_RESULT($gtk_uxtheme_h)
705
706 # Checks for gdkspawn
707 AC_CHECK_HEADERS(crt_externs.h)
708 AC_CHECK_FUNCS(_NSGetEnviron)
709
710
711 ##################################################
712 # Checks for gdk-pixbuf
713 ##################################################
714
715 dnl ********************************************************
716 dnl * See whether we need to load our modules as .la files *
717 dnl ********************************************************
718
719 use_la_modules=false
720 case $host in
721   *-aix*) use_la_modules=true
722 esac
723
724 if $use_la_modules ; then
725    AC_DEFINE(USE_LA_MODULES, 1,
726              [Whether to load modules via .la files rather than directly])
727 fi
728
729
730 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
731
732 AC_ARG_ENABLE(modules,
733               [AC_HELP_STRING([--disable-modules],
734                               [disable dynamic module loading])])
735
736 dynworks=false
737 deps=
738 if test x$enable_modules = xno; then
739     AC_MSG_RESULT(no)
740 else
741     AC_MSG_RESULT(yes)
742     AC_MSG_CHECKING(whether dynamic modules work)
743     ## for loop is to strip newline 
744     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
745     for I in $tmp; do
746         dynworks=$I
747     done
748
749     dnl Now we check to see if our libtool supports shared lib deps
750     dnl (in a rather ugly way even)
751     if $dynworks; then
752         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
753         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
754             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
755             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
756         if test "x$pixbuf_deplibs_check" = "xnone" || \
757            test "x$pixbuf_deplibs_check" = "xunknown" || \
758            test "x$pixbuf_deplibs_check" = "x"; then
759             dynworks=false
760         fi
761     fi
762
763     if $dynworks; then
764         AC_DEFINE(USE_GMODULE, 1,
765                   [Define to 1 if gmodule works and should be used])
766         AC_MSG_RESULT(yes)
767     else
768         AC_MSG_RESULT(no)
769     fi
770 fi
771
772 dnl We allow people to disable image loaders explicitely, but if they don't we error
773 dnl out so that people don't accidentally build without them.
774
775 AC_ARG_WITH(libpng,
776             [AC_HELP_STRING([--without-libpng],
777                             [disable PNG loader for gdk-pixbuf])])
778 AC_ARG_WITH(libjpeg,
779             [AC_HELP_STRING([--without-libjpeg],
780                             [disable JPEG loader for gdk-pixbuf])])
781 AC_ARG_WITH(libtiff,
782             [AC_HELP_STRING([--without-libtiff],
783                             [disable TIFF loader for gdk-pixbuf])])
784 AC_ARG_WITH(libjasper,
785             [AC_HELP_STRING([--without-libjasper],
786                             [disable JPEG2000 loader for gdk-pixbuf])])
787
788 AC_ARG_ENABLE(gdiplus,
789             [AC_HELP_STRING([--disable-gdiplus-loaders],
790                             [disable GDI+ loaders for gdk-pixbuf])])
791
792 AM_CONDITIONAL(BUILD_GDIPLUS_LOADERS, [ test x$os_win32 = xyes && test x$enable_gdiplus != xno ])
793
794 dnl Test for libtiff
795 if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
796   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
797     AC_CHECK_LIB(tiff, TIFFReadRGBAImageOriented,
798       [AC_CHECK_HEADER(tiffio.h,
799         TIFF='tiff'; LIBTIFF='-ltiff',
800         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
801       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
802         [AC_CHECK_HEADER(tiffio.h,
803           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
804           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
805         [AC_CHECK_LIB(tiff34, TIFFFlushData,
806           [AC_CHECK_HEADER(tiffio.h,
807             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
808             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
809         AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
810   fi
811
812   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
813      AC_MSG_ERROR([
814 *** Checks for TIFF loader failed. You can build without it by passing 
815 *** --without-libtiff to configure but some programs using GTK+ may
816 *** not work properly])
817   fi
818 fi
819
820 dnl Test for libjpeg
821 if test x$os_win32 = xno || test x$enable_gdiplus = xno; then
822   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
823     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
824       jpeg_ok=yes,
825       jpeg_ok=no
826       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
827     if test "$jpeg_ok" = yes; then
828       AC_MSG_CHECKING([for jpeglib.h])
829       AC_TRY_CPP(
830 [#include <stdio.h>
831 #undef PACKAGE
832 #undef VERSION
833 #undef HAVE_STDLIB_H
834 #include <jpeglib.h>],
835         jpeg_ok=yes,
836         jpeg_ok=no)
837       AC_MSG_RESULT($jpeg_ok)
838       if test "$jpeg_ok" = yes; then
839         LIBJPEG='-ljpeg'
840         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
841           AC_DEFINE(HAVE_PROGRESSIVE_JPEG, 1,
842                     [Define to 1 is libjpeg supports progressive JPEG]),
843           AC_MSG_WARN(JPEG library does not support progressive saving.))
844       else
845           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
846       fi
847     fi
848   fi
849
850   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
851      AC_MSG_ERROR([
852 *** Checks for JPEG loader failed. You can build without it by passing 
853 *** --without-libjpeg to configure but some programs using GTK+ may
854 *** not work properly])
855   fi
856 fi
857
858 dnl Test for libpng
859   if test x$with_libpng != xno && test -z "$LIBPNG"; then
860     AC_MSG_CHECKING(for libpng12)
861     if $PKG_CONFIG --exists libpng12 ; then
862         AC_MSG_RESULT(yes)
863         PNG='png'
864         PNG_DEP_CFLAGS_PACKAGES=libpng12
865         LIBPNG=`$PKG_CONFIG --libs libpng12`
866     else
867       AC_MSG_RESULT(no)
868       AC_CHECK_LIB(png, png_read_info,
869         [AC_CHECK_HEADER(png.h,
870           png_ok=yes,
871           png_ok=no)],
872         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
873       if test "$png_ok" = yes; then
874         AC_MSG_CHECKING([for png_structp in png.h])
875         AC_TRY_COMPILE([#include <png.h>],
876           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
877           png_ok=yes,
878           png_ok=no)
879         AC_MSG_RESULT($png_ok)
880         if test "$png_ok" = yes; then
881           PNG='png'; LIBPNG='-lpng -lz'
882         else
883           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
884         fi
885       else
886        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
887       fi
888     fi
889   fi
890
891   if test x$with_libpng != xno && test -z "$LIBPNG"; then
892      AC_MSG_ERROR([
893 *** Checks for PNG loader failed. You can build without it by passing 
894 *** --without-libpng to configure but many programs using GTK+ will
895 *** not work properly. The PNG loader is also needed if you are compiling
896 *** from CVS.])
897   fi
898
899 dnl Test for libjasper
900   if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
901     AC_CHECK_LIB(jasper, jas_init, LIBJASPER=-ljasper, [])
902   fi
903
904   if test x$with_libjasper != xno && test -z "$LIBJASPER"; then
905      AC_MSG_ERROR([
906 *** Checks for JPEG2000 loader failed. You can build without it by passing 
907 *** --without-libjasper to configure])
908   fi
909
910 AC_SUBST(LIBTIFF)
911 AC_SUBST(LIBJPEG)
912 AC_SUBST(LIBPNG)
913 AC_SUBST(LIBJASPER)
914
915 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
916
917 #
918 # Allow building some or all gdk-pixbuf loaders included
919 #
920 AC_MSG_CHECKING(pixbuf loaders to build)
921
922 dnl due to an autoconf bug, commas in the first arg to
923 dnl AC_HELP_STRING cause problems.
924 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
925 dnl                [build the specified loaders into gdk-pixbuf])
926 AC_ARG_WITH(included_loaders,
927 [  --with-included-loaders=LOADER1,LOADER2,...
928                           build the specified loaders into gdk-pixbuf])
929
930 if $dynworks; then 
931    :
932 else
933    ## if the option was specified, leave it; otherwise disable included loaders
934    if test x$with_included_loaders = xno; then
935            with_included_loaders=yes
936    fi
937 fi
938
939 # Use the traditional png loader instead of the GDI+ one on Windows,
940 # because some important apps like GIMP need to read and write
941 # arbitrary tEXt chunks which doesn't seem to be possible through GDI+
942
943 all_loaders="ani,icns,pcx,ras,tga,png,pnm,wbmp,xbm,xpm"
944 if test x$with_libjasper != xno; then
945   all_loaders="$all_loaders,jasper"
946 fi
947 if test x$os_win32 = xyes && test x$enable_gdiplus != xno; then
948   # Skip PNG, see comment above
949   gdip_formats="bmp emf gif ico jpeg tiff wmf"
950   for f in $gdip_formats; do
951     all_loaders="$all_loaders,gdip-$f"
952   done
953 else
954   all_loaders="$all_loaders,bmp,gif,ico,jpeg,tiff"
955 fi
956 included_loaders=""
957 # If no loaders specified, include all
958 if test "x$with_included_loaders" = xyes ; then
959   included_loaders="$all_loaders"
960 else
961   included_loaders="$with_included_loaders"
962 fi
963
964 AC_MSG_RESULT($included_loaders)
965
966 INCLUDED_LOADER_OBJ=
967 INCLUDED_LOADER_DEFINE=
968
969 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
970 for loader in $included_loaders; do
971  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
972    :
973  else
974    AC_MSG_ERROR([the specified loader $loader does not exist])
975  fi
976
977  loader_underscores=`echo $loader | sed -e 's/-/_/g'`
978  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libstatic-pixbufloader-$loader.la"
979
980  # Don't bother defining separate -DINCLUDE_gdip_foo for each gdip-foo loader
981  case $loader in
982    gdip-*) ;;
983    *) INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader_underscores";;
984  esac
985  eval INCLUDE_$loader_underscores=yes
986 done
987
988 # Just define one -DINCLUDE_gdiplus for all the gdip-foo loaders
989 # (except gdip-png, which isn't built at all)
990 if test x"$INCLUDE_gdip_ico" = xyes; then
991   INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_gdiplus"
992 fi
993
994 IFS="$gtk_save_ifs"
995 AC_SUBST(INCLUDED_LOADER_OBJ)
996 AC_SUBST(INCLUDED_LOADER_DEFINE)
997
998 AM_CONDITIONAL(INCLUDE_PNG, [test x"$INCLUDE_png" = xyes])
999 AM_CONDITIONAL(INCLUDE_BMP, [test x"$INCLUDE_bmp" = xyes])
1000 AM_CONDITIONAL(INCLUDE_WBMP, [test x"$INCLUDE_wbmp" = xyes])
1001 AM_CONDITIONAL(INCLUDE_GIF, [test x"$INCLUDE_gif" = xyes])
1002 AM_CONDITIONAL(INCLUDE_ICO, [test x"$INCLUDE_ico" = xyes])
1003 AM_CONDITIONAL(INCLUDE_ANI, [test x"$INCLUDE_ani" = xyes])
1004 AM_CONDITIONAL(INCLUDE_JPEG, [test x"$INCLUDE_jpeg" = xyes])
1005 AM_CONDITIONAL(INCLUDE_PNM, [test x"$INCLUDE_pnm" = xyes])
1006 AM_CONDITIONAL(INCLUDE_RAS, [test x"$INCLUDE_ras" = xyes])
1007 AM_CONDITIONAL(INCLUDE_TIFF, [test x"$INCLUDE_tiff" = xyes])
1008 AM_CONDITIONAL(INCLUDE_XPM, [test x"$INCLUDE_xpm" = xyes])
1009 AM_CONDITIONAL(INCLUDE_XBM, [test x"$INCLUDE_xbm" = xyes])
1010 AM_CONDITIONAL(INCLUDE_TGA, [test x"$INCLUDE_tga" = xyes])
1011 AM_CONDITIONAL(INCLUDE_PCX, [test x"$INCLUDE_pcx" = xyes])
1012 AM_CONDITIONAL(INCLUDE_ICNS, [test x"$INCLUDE_icns" = xyes])
1013 AM_CONDITIONAL(INCLUDE_JASPER, [test x"$INCLUDE_jasper" = xyes])
1014 # As all GDI+ loaders are either built-in or not, arbitrarily just
1015 # check one of the variables here
1016 AM_CONDITIONAL(INCLUDE_GDIPLUS, [test x"$INCLUDE_gdip_ico" = xyes])
1017
1018 #
1019 # Allow building some or all immodules included
1020 #
1021 AC_MSG_CHECKING(immodules to build)
1022
1023 dnl due to an autoconf bug, commas in the first arg to
1024 dnl AC_HELP_STRING cause problems.
1025 dnl AC_HELP_STRING([--with-included-immodules=MODULE1 MODULE2 ...],
1026 dnl                [build the specified input method modules into gtk])
1027 AC_ARG_WITH(included_immodules,
1028 [  --with-included-immodules=MODULE1,MODULE2,...
1029                           build the specified input methods into gtk])
1030
1031 if $dynworks; then 
1032    :
1033 else
1034    ## if the option was specified, leave it; otherwise disable included immodules
1035    if test x$with_included_immodules = xno; then
1036            with_included_immodules=yes
1037    fi
1038 fi
1039
1040 all_immodules="am-et,cedilla,cyrillic-translit"
1041 if test "$gdktarget" = "win32"; then
1042    all_immodules="${all_immodules},ime"
1043 fi
1044 all_immodules="${all_immodules},inuktitut,ipa,multipress,thai,ti-er,ti-et,viqr"
1045 if test "$gdktarget" = "x11"; then
1046    all_immodules="${all_immodules},xim"
1047 fi
1048
1049 included_immodules=""
1050 # If the switch specified without listing any specific ones, include all
1051 if test "x$with_included_immodules" = xyes ; then
1052   included_immodules="$all_immodules"
1053 else
1054   included_immodules="$with_included_immodules"
1055 fi
1056
1057 AC_MSG_RESULT($included_immodules)
1058 AM_CONDITIONAL(HAVE_INCLUDED_IMMMODULES, test "x$included_immodules" != x)
1059
1060 INCLUDED_IMMODULE_OBJ=
1061 INCLUDED_IMMODULE_DEFINE=
1062
1063 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
1064 for immodule in $included_immodules; do
1065  immodule_underscores=`echo $immodule | sed -e 's/-/_/g'`
1066  if echo "$all_immodules" | egrep "(^|,)$immodule(\$|,)" > /dev/null; then
1067    :
1068  else
1069    AC_MSG_ERROR([the specified input method $immodule does not exist])
1070  fi
1071
1072  INCLUDED_IMMODULE_OBJ="$INCLUDED_IMMODULE_OBJ ../modules/input/libstatic-im-$immodule.la"
1073  INCLUDED_IMMODULE_DEFINE="$INCLUDED_IMMODULE_DEFINE -DINCLUDE_IM_$immodule_underscores"
1074  eval INCLUDE_$immodule_underscores=yes
1075 done
1076 IFS="$gtk_save_ifs"
1077 AC_SUBST(INCLUDED_IMMODULE_OBJ)
1078 AC_SUBST(INCLUDED_IMMODULE_DEFINE)
1079
1080 AM_CONDITIONAL(INCLUDE_IM_AM_ET, [test x"$INCLUDE_am_et" = xyes])
1081 AM_CONDITIONAL(INCLUDE_IM_CEDILLA, [test x"$INCLUDE_cedilla" = xyes])
1082 AM_CONDITIONAL(INCLUDE_IM_CYRILLIC_TRANSLIT, [test x"$INCLUDE_cyrillic_translit" = xyes])
1083 AM_CONDITIONAL(INCLUDE_IM_IME, [test x"$INCLUDE_ime" = xyes])
1084 AM_CONDITIONAL(INCLUDE_IM_INUKTITUT, [test x"$INCLUDE_inuktitut" = xyes])
1085 AM_CONDITIONAL(INCLUDE_IM_IPA, [test x"$INCLUDE_ipa" = xyes])
1086 AM_CONDITIONAL(INCLUDE_IM_MULTIPRESS, [test x"$INCLUDE_multipress" = xyes])
1087 AM_CONDITIONAL(INCLUDE_IM_THAI, [test x"$INCLUDE_thai" = xyes])
1088 AM_CONDITIONAL(INCLUDE_IM_TI_ER, [test x"$INCLUDE_ti_er" = xyes])
1089 AM_CONDITIONAL(INCLUDE_IM_TI_ET, [test x"$INCLUDE_ti_et" = xyes])
1090 AM_CONDITIONAL(INCLUDE_IM_VIQR, [test x"$INCLUDE_viqr" = xyes])
1091 AM_CONDITIONAL(INCLUDE_IM_XIM, [test x"$INCLUDE_xim" = xyes])
1092
1093 AC_HEADER_SYS_WAIT
1094
1095 AC_TYPE_SIGNAL
1096
1097 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
1098 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
1099 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
1100 AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x)
1101
1102 if $dynworks ; then
1103   STATIC_LIB_DEPS=
1104   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
1105     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
1106   fi
1107   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
1108     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
1109   fi
1110   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
1111     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
1112   fi
1113 else
1114   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
1115 fi
1116
1117 # Checks to see whether we should include mediaLib
1118 # support.
1119 #
1120 AC_CHECK_HEADER(sys/systeminfo.h,
1121                 AC_DEFINE(HAVE_SYS_SYSTEMINFO_H, 1, 
1122                           [Define to 1 if sys/systeminfo.h is available]))
1123 AC_CHECK_HEADER(sys/sysinfo.h,
1124                 AC_DEFINE(HAVE_SYS_SYSINFO_H, 1,
1125                           [Define to 1 if sys/sysinfo.h is available]))
1126
1127 AC_MSG_CHECKING(for mediaLib 2.3)
1128 use_mlib25=no
1129 # Check for a mediaLib 2.3 function since that is what the GTK+ mediaLib
1130 # patch requires.
1131 AC_CHECK_LIB(mlib, mlib_ImageSetStruct, use_mlib=yes, use_mlib=no)
1132 if test $use_mlib = yes; then
1133     AC_DEFINE(USE_MEDIALIB, 1,
1134               [Define to 1 if medialib is available and should be used])
1135     MEDIA_LIB=-lmlib
1136
1137     AC_MSG_CHECKING(for mediaLib 2.5)
1138     # Check for a mediaLib 2.5 function since that is what is needed for
1139     # gdk_rgb_convert integration.
1140     AC_CHECK_LIB(mlib, mlib_VideoColorRGBint_to_BGRAint, use_mlib25=yes, use_mlib25=no)
1141     if test $use_mlib25 = yes; then
1142         AC_DEFINE(USE_MEDIALIB25, 1,
1143                   [Define to 1 if medialib 2.5 is available])
1144     fi
1145 fi
1146 AM_CONDITIONAL(USE_MEDIALIB, test $use_mlib = yes)
1147 AM_CONDITIONAL(USE_MEDIALIB25, test $use_mlib25 = yes)
1148
1149 # Checks to see if we should compile in MMX support (there will be
1150 # a runtime test when the code is actually run to see if it should
1151 # be used - this just checks if we can compile it.)
1152 #
1153 # This code is partially taken from Mesa
1154 #
1155 AC_MSG_CHECKING(for x86 platform)
1156 case $host_cpu in
1157   i386|i486|i586|i686|i786|k6|k7)
1158         use_x86_asm=yes
1159         ;;
1160    *)
1161         use_x86_asm=no
1162 esac
1163 AC_MSG_RESULT($use_x86_asm)
1164
1165 use_mmx_asm=no
1166 if test $use_x86_asm = yes; then
1167     save_ac_ext=$ac_ext
1168     ac_ext=S
1169     
1170     AC_MSG_CHECKING(compiler support for MMX)
1171     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
1172     if AC_TRY_EVAL(ac_compile); then
1173         use_mmx_asm=yes
1174     fi
1175
1176     rm -rf conftest*
1177
1178     ac_ext=$save_ac_ext
1179     if test $use_mmx_asm = yes; then
1180       AC_DEFINE(USE_MMX, 1,
1181                 [Define to 1 if XXM is available and should be used])
1182       AC_MSG_RESULT(yes)
1183     else
1184       AC_MSG_RESULT(no)
1185     fi
1186 fi
1187
1188 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1189
1190 REBUILD_PNGS=
1191 if test -z "$LIBPNG" && test x"$os_win32" = xno -o x$enable_gdiplus = xno; then
1192   REBUILD_PNGS=#
1193 fi
1194
1195 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
1196
1197 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1198
1199 if test $cross_compiling = yes; then
1200   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1201   AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache, no)
1202   if test x$GTK_UPDATE_ICON_CACHE = xno; then
1203     REBUILD_PNGS=#
1204   fi
1205 fi
1206
1207 if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1208    test "x$REBUILD_PNGS" = "x#" ; then
1209      AC_MSG_ERROR([
1210 *** gtkbuiltincache.h is not in the tree, and cannot be built
1211 *** because you don't have libpng, or (when cross-compiling) you 
1212 *** don't have a prebuilt gtk-update-icon-cache on the build system.])
1213 fi
1214
1215 AC_SUBST(REBUILD_PNGS)
1216
1217 GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0 gio-2.0"
1218 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB $MEDIA_LIB"
1219 GDK_PIXBUF_EXTRA_CFLAGS= 
1220 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1221 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1222
1223 ########################################
1224 # Windowing system checks
1225 ########################################
1226
1227 GDK_PIXBUF_XLIB_PACKAGES=
1228 GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
1229 GDK_PIXBUF_XLIB_EXTRA_LIBS=
1230         
1231 X_PACKAGES=fontconfig
1232 GDK_EXTRA_LIBS="$GDK_WLIBS"
1233 GDK_EXTRA_CFLAGS=
1234         
1235 # GTK+ uses some X calls, so needs to link against X directly
1236 GTK_DEP_PACKAGES_FOR_X=
1237 GTK_DEP_LIBS_FOR_X=
1238
1239 if test "x$gdktarget" = "xx11"; then
1240   #
1241   # We use fontconfig very peripherally when decoding the default
1242   # settings.
1243   #
1244   if $PKG_CONFIG --exists fontconfig; then : ; else
1245     AC_MSG_ERROR([
1246 *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
1247   fi
1248
1249   #
1250   # Check for basic X packages; we use pkg-config if available
1251   #
1252   if $PKG_CONFIG --exists x11 xext xrender; then
1253     have_base_x_pc=true
1254     X_PACKAGES="$X_PACKAGES x11 xext xrender"
1255     x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
1256     X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1257     
1258     # Strip out any .la files that pkg-config might give us (this happens
1259     # with -uninstalled.pc files)
1260     x_libs_for_checks=
1261     for I in $x_libs ; do
1262       case $I in 
1263         *.la) ;;
1264         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1265       esac
1266     done
1267     
1268     GDK_PIXBUF_XLIB_PACKAGES="x11"
1269     GTK_PACKAGES_FOR_X="x11"
1270   else
1271     have_base_x_pc=false
1272     AC_PATH_XTRA
1273     if test x$no_x = xyes ; then
1274       AC_MSG_ERROR([X development libraries not found])
1275     fi
1276     
1277     x_cflags="$X_CFLAGS"
1278     x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
1279
1280     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1281     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1282     GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1283   fi
1284
1285   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1286   x_extra_libs=
1287
1288   gtk_save_cppflags="$CPPFLAGS"
1289   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1290
1291   gtk_save_LIBS=$LIBS
1292   LIBS="$x_libs_for_checks $LIBS"
1293   
1294   # Sanity check for the X11 and Xext libraries. While everything we need from
1295   # Xext is optional, the chances a system has *none* of these things is so
1296   # small that we just unconditionally require it.
1297   AC_CHECK_FUNC(XOpenDisplay, :,
1298                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1299   AC_CHECK_FUNC(XextFindDisplay, :,
1300                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1301   AC_CHECK_FUNC(XRenderQueryExtension, :,
1302                 AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1303
1304   # Check for xReply
1305
1306   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1307   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1308       [xReply *rep;],
1309       [AC_MSG_RESULT([no])],
1310       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1311 #include <X11/Xlibint.h>],
1312            [xReply *rep;],
1313            [AC_MSG_RESULT([yes])
1314             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1315                       [Define if <X11/extensions/XIproto.h> needed for xReply])],
1316            [AC_MSG_RESULT([unknown])
1317             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1318
1319   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1320
1321   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1322
1323   # Generic X11R6 check needed for XIM support; we could
1324   # probably use this to replace the above, but we'll
1325   # leave the separate checks for XConvertCase and XInternAtoms 
1326   # for clarity
1327   
1328   have_x11r6=false
1329   AC_CHECK_FUNC(XAddConnectionWatch,
1330       have_x11r6=true)
1331
1332   if $have_x11r6; then
1333     AC_DEFINE(HAVE_X11R6, 1, [Define if we have X11R6])
1334   fi
1335   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1336
1337   # Check for XKB support.
1338
1339   if test "x$enable_xkb" = "xyes"; then
1340         AC_MSG_WARN(XKB support explicitly enabled)
1341         AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension])
1342   elif test "x$enable_xkb" = "xmaybe"; then
1343         AC_CHECK_FUNC(XkbQueryExtension,
1344                       AC_DEFINE(HAVE_XKB, 1, [Define to use XKB extension]))
1345   else
1346         AC_MSG_WARN(XKB support explicitly disabled)
1347   fi
1348
1349   # Check for shaped window extension
1350
1351   AC_CHECK_FUNC(XShapeCombineMask,
1352       AC_DEFINE(HAVE_SHAPE_EXT, 1,
1353                 [Define to 1 if the XShape extension is available]))
1354
1355   # X SYNC check
1356   gtk_save_CFLAGS="$CFLAGS"
1357   CFLAGS="$CFLAGS $x_cflags"
1358   
1359   AC_CHECK_FUNC(XSyncQueryExtension,
1360       [AC_CHECK_HEADER(X11/extensions/sync.h,
1361           AC_DEFINE(HAVE_XSYNC, 1, [Have the SYNC extension library]),
1362           :, [#include <X11/Xlib.h>])])
1363
1364   CFLAGS="$gtk_save_CFLAGS"
1365
1366   # Xshm checks
1367
1368   if test "x$enable_shm" = "xyes"; then
1369      # Check for the XShm extension, normally in Xext
1370      AC_CHECK_FUNC(XShmAttach,
1371         :,
1372         # On AIX, it is in XextSam instead
1373         [AC_CHECK_LIB(XextSam, XShmAttach, 
1374             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1375   fi    
1376
1377   if test "x$enable_shm" = "xyes"; then
1378     # Check for shared memory
1379     AC_CHECK_HEADER(sys/ipc.h,
1380                     AC_DEFINE(HAVE_IPC_H, 1,
1381                               [Define to 1 if ipc.h is available]),
1382                     no_sys_ipc=yes)
1383     AC_CHECK_HEADER(sys/shm.h,
1384                     AC_DEFINE(HAVE_SHM_H, 1,
1385                               [Define to 1 if shm.h is available]),
1386                     no_sys_shm=yes)
1387
1388     # Check for the X shared memory extension header file
1389     have_xshm=no 
1390     AC_MSG_CHECKING(X11/extensions/XShm.h)
1391     if test "x$no_xext_lib" = "xyes"; then
1392       :
1393     else
1394       gtk_save_CFLAGS="$CFLAGS"
1395       CFLAGS="$CFLAGS $x_cflags"
1396       AC_TRY_COMPILE([
1397 #include <stdlib.h>
1398 #include <sys/types.h>
1399 #include <sys/ipc.h>
1400 #include <sys/shm.h>
1401 #include <X11/Xlib.h>
1402 #include <X11/Xutil.h>
1403 #include <X11/extensions/XShm.h>
1404 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1405       CFLAGS="$gtk_save_CFLAGS"
1406     fi
1407     AC_MSG_RESULT($have_xshm)
1408     if test $have_xshm = yes ; then
1409       AC_DEFINE(HAVE_XSHM_H, 1,
1410                 [Define to 1 if xshm.h is available])
1411     fi
1412   fi
1413
1414   if test "x$enable_xinerama" = "xyes"; then
1415     # Check for Xinerama extension (Solaris impl or Xfree impl)
1416     gtk_save_cppflags="$CPPFLAGS"
1417     CPPFLAGS="$CPPFLAGS $x_cflags"
1418   
1419     case "$host" in
1420       *-*-solaris*)
1421           # Check for solaris
1422           AC_MSG_CHECKING(for Xinerama support on Solaris)
1423           
1424           have_solaris_xinerama=false
1425           AC_CHECK_FUNC(XineramaGetInfo,
1426               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1427                   [have_solaris_xinerama=true], :,
1428                   [#include <X11/Xlib.h>])])
1429                 
1430           if $have_solaris_xinerama ; then
1431             AC_DEFINE(HAVE_SOLARIS_XINERAMA, 1,
1432                       [Define to 1 if solaris xinerama is available])
1433             AC_DEFINE(HAVE_XINERAMA, 1,
1434                       [Define to 1 if xinerama is available])
1435             AC_MSG_RESULT(yes)
1436           else
1437             AC_MSG_RESULT(no)
1438           fi
1439           ;;
1440       *)
1441           # Check for XFree
1442           AC_MSG_CHECKING(for Xinerama support on XFree86)
1443           
1444           have_xfree_xinerama=false
1445           if $PKG_CONFIG --exists xinerama ; then
1446              have_xfree_xinerama=true
1447              X_PACKAGES="$X_PACKAGES xinerama"
1448           else    
1449               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1450                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1451                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1452                       have_xfree_xinerama=true], :,
1453                       [#include <X11/Xlib.h>])])
1454           fi
1455
1456           if $have_xfree_xinerama ; then
1457             AC_DEFINE(HAVE_XFREE_XINERAMA, 1,
1458                       [Define to 1 if XFree Xinerama is available])
1459             AC_DEFINE(HAVE_XINERAMA, 1,
1460                       [Define to 1 is Xinerama is available])
1461             AC_MSG_RESULT(yes)
1462          else
1463             AC_MSG_RESULT(no)
1464          fi
1465          ;;
1466     esac
1467   fi
1468   
1469   # set up things for XInput
1470
1471   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1472     AC_DEFINE(XINPUT_XFREE, 1,
1473               [Define to 1 if XFree XInput should be used])
1474     
1475     if $PKG_CONFIG --exists xi ; then
1476       X_PACKAGES="$X_PACKAGES xi"
1477     else
1478       GTK_ADD_LIB(x_extra_libs, Xi)
1479     fi
1480   else
1481     AC_DEFINE(XINPUT_NONE, 1,
1482               [Define to 1 if no XInput should be used])
1483   fi
1484
1485   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1486
1487   # Check for the RANDR extension
1488   if $PKG_CONFIG --exists "xrandr >= 1.2" ; then
1489      AC_DEFINE(HAVE_RANDR, 1, [Have the Xrandr extension library])
1490
1491      X_PACKAGES="$X_PACKAGES xrandr"
1492   fi
1493        
1494   # Checks for Xcursor library
1495   
1496   if $PKG_CONFIG --exists xcursor ; then
1497     AC_DEFINE(HAVE_XCURSOR, 1, [Have the Xcursor library])
1498     
1499     X_PACKAGES="$X_PACKAGES xcursor"
1500   fi
1501
1502   # Checks for XFixes extension
1503   
1504   if $PKG_CONFIG --exists xfixes ; then
1505     AC_DEFINE(HAVE_XFIXES, 1, [Have the XFIXES X extension])
1506     
1507     X_PACKAGES="$X_PACKAGES xfixes"
1508     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xfixes"
1509   fi
1510
1511   # Checks for Xcomposite extension
1512
1513   if $PKG_CONFIG --exists xcomposite ; then
1514     AC_DEFINE(HAVE_XCOMPOSITE, 1, [Have the XCOMPOSITE X extension])
1515
1516     X_PACKAGES="$X_PACKAGES xcomposite"
1517     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xcomposite"
1518   fi
1519
1520   # Checks for Xdamage extension
1521
1522   if $PKG_CONFIG --exists xdamage ; then
1523     AC_DEFINE(HAVE_XDAMAGE, 1, [Have the XDAMAGE X extension])
1524
1525     X_PACKAGES="$X_PACKAGES xdamage"
1526     GTK_PACKAGES_FOR_X="$GTK_PACKAGES_FOR_X xdamage"
1527   fi
1528
1529   if $have_base_x_pc ; then
1530     GDK_EXTRA_LIBS="$x_extra_libs"
1531   else
1532     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1533   fi
1534
1535   CPPFLAGS="$gtk_save_cppflags"
1536   LIBS="$gtk_save_libs"
1537
1538   AM_CONDITIONAL(USE_X11, true)
1539 else
1540   AM_CONDITIONAL(XINPUT_XFREE, false)
1541   AM_CONDITIONAL(USE_X11, false)
1542   AM_CONDITIONAL(HAVE_X11R6, false)
1543 fi
1544
1545 if test "x$gdktarget" = "xwin32"; then
1546   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1547   AM_CONDITIONAL(USE_WIN32, true)
1548 else
1549   AM_CONDITIONAL(USE_WIN32, false)
1550 fi
1551
1552 if test "x$gdktarget" = "xquartz"; then
1553   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
1554   AM_CONDITIONAL(USE_QUARTZ, true)
1555 else
1556   AM_CONDITIONAL(USE_QUARTZ, false)
1557 fi
1558
1559 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1560 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"
1561
1562 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1563 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1564 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1565 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1566 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1567
1568 if test "x$gdktarget" = "xdirectfb"; then
1569   DIRECTFB_REQUIRED_VERSION=0.9.24
1570   AC_MSG_CHECKING(for DirectFB)
1571
1572   if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb && $PKG_CONFIG --exists cairo-directfb ; then
1573       AC_MSG_RESULT(found)
1574       GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags cairo-directfb` $GDK_EXTRA_CFLAGS"
1575       GDK_EXTRA_LIBS="`$PKG_CONFIG --libs cairo-directfb` $GDK_EXTRA_LIBS"
1576   else
1577       AC_MSG_ERROR([
1578 *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer and the cairo backend 
1579 *** are required. The latest version of DirectFB is always available 
1580 *** from http://www.directfb.org/.
1581   ])
1582   fi
1583
1584   AM_CONDITIONAL(USE_DIRECTFB, true)
1585 else
1586   AM_CONDITIONAL(USE_DIRECTFB, false)
1587 fi
1588
1589
1590 # Check for Pango flags
1591
1592 if test "x$gdktarget" = "xwin32"; then
1593         PANGO_PACKAGES="pangowin32 pangocairo"
1594 else
1595         PANGO_PACKAGES="pango pangocairo"
1596 fi
1597
1598 AC_MSG_CHECKING(Pango flags)
1599 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1600         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1601         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1602
1603         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1604 else
1605         AC_MSG_ERROR([
1606 *** Pango not found. Pango built with Cairo support is required
1607 *** to build GTK+. See http://www.pango.org for Pango information.
1608 ])
1609 fi
1610
1611 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1612
1613 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1614         :
1615 else
1616         gtk_save_LIBS="$LIBS"
1617         LIBS="$PANGO_LIBS $LIBS"
1618         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1619 *** Can't link to Pango. Pango is required to build
1620 *** GTK+. For more information see http://www.pango.org]))
1621         LIBS="$gtk_save_LIBS"
1622 fi
1623
1624 CFLAGS="$saved_cflags"
1625 LDFLAGS="$saved_ldflags"
1626
1627 GDK_PACKAGES="$PANGO_PACKAGES gio-2.0"
1628 if test "x$gdktarget" = "xx11"; then
1629   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1630 fi
1631 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1632 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1633
1634 #
1635 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1636 # into the pkg-config files
1637 #
1638 if test $enable_explicit_deps != yes ; then
1639   GDK_PACKAGES="$PANGO_PACKAGES"
1640   GDK_EXTRA_LIBS=
1641 fi
1642
1643 AC_SUBST(GDK_PACKAGES)
1644 AC_SUBST(GDK_EXTRA_LIBS)
1645 AC_SUBST(GDK_EXTRA_CFLAGS)
1646 AC_SUBST(GDK_DEP_LIBS)
1647 AC_SUBST(GDK_DEP_CFLAGS)
1648
1649
1650 ########################################
1651 # Check for Accessibility Toolkit flags
1652 ########################################
1653
1654 ATK_PACKAGES=atk
1655 AC_MSG_CHECKING(ATK flags)
1656 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1657         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1658         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1659
1660         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1661 else
1662         AC_MSG_ERROR([
1663 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1664 *** to build GTK+.
1665 ])
1666 fi
1667
1668 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1669         :
1670 else
1671         gtk_save_LIBS="$LIBS"
1672         LIBS="$ATK_LIBS $LIBS"
1673         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1674                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1675                 *** to build GTK+]))
1676         LIBS="$gtk_save_LIBS"
1677 fi
1678
1679 GTK_PACKAGES="atk cairo gio-2.0"
1680 if test "x$gdktarget" = "xx11"; then
1681   GTK_PACKAGES="$GTK_PACKAGES pangoft2"
1682 fi
1683 GTK_EXTRA_LIBS=
1684 GTK_EXTRA_CFLAGS= 
1685 GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1686 GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
1687
1688 if test x"$os_win32" = xyes; then
1689   GTK_EXTRA_CFLAGS="$msnative_struct"
1690 fi
1691
1692 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
1693 ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
1694 PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
1695 CAIRO_PREFIX="`pkg-config --variable=prefix cairo`"
1696
1697 if test $enable_explicit_deps != yes ; then
1698   GDK_PIXBUF_EXTRA_LIBS=
1699 fi
1700
1701 AC_SUBST(GDK_PIXBUF_PACKAGES)
1702 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1703 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1704 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1705 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1706
1707 AC_SUBST(GTK_PACKAGES)
1708 AC_SUBST(GTK_EXTRA_LIBS)
1709 AC_SUBST(GTK_EXTRA_CFLAGS)
1710 AC_SUBST(GTK_DEP_LIBS)
1711 AC_SUBST(GTK_DEP_CFLAGS)
1712
1713 AC_SUBST(GLIB_PREFIX)
1714 AC_SUBST(ATK_PREFIX)
1715 AC_SUBST(PANGO_PREFIX)
1716 AC_SUBST(CAIRO_PREFIX)
1717
1718 AC_SUBST(GTK_DEBUG_FLAGS)
1719 AC_SUBST(GTK_XIM_FLAGS)
1720
1721 ########################
1722 # Checks needed for gail
1723 ########################
1724
1725 old_LIBS="$LIBS"
1726 dnl Checks for inet libraries:
1727 AC_SEARCH_LIBS(gethostent, nsl)
1728 AC_SEARCH_LIBS(setsockopt, socket)
1729 AC_SEARCH_LIBS(connect, inet)
1730
1731 dnl check for the sockaddr_un.sun_len member
1732 AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
1733                 [struct_sockaddr_un_sun_len=true],
1734                 [struct_sockaddr_un_suin_len=false],
1735                 [#include <sys/types.h>
1736                  #include <sys/un.h>]
1737                 )
1738 case $struct_sockaddr_un_sun_len in 
1739         true)
1740                 AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1,
1741                                    [Have the sockaddr_un.sun_len member])
1742                 ;;
1743         *)
1744                 ;;
1745 esac
1746
1747 GAIL_INET_LIBS="$LIBS"
1748 AC_SUBST([GAIL_INET_LIBS])
1749
1750 LIBS="$old_LIBS"
1751
1752 ################################################################
1753 # Printing system checks
1754 ################################################################
1755
1756 AC_ARG_ENABLE(cups,
1757               [AC_HELP_STRING([--disable-cups]
1758                               [disable cups print backend])],,
1759               [enable_cups=auto])
1760
1761 if test "x$enable_cups" = "xauto"
1762 then
1763   AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
1764   if test "x$CUPS_CONFIG" != "xno"; then
1765     CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
1766     CUPS_LIBS=`$CUPS_CONFIG --libs`
1767
1768     CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
1769     CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
1770     CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
1771
1772     if test $CUPS_API_MAJOR -gt 1 -o \
1773             $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
1774       AC_DEFINE(HAVE_CUPS_API_1_2, 1, 
1775                 [Define to 1 if CUPS 1.2 API is available])
1776     fi
1777
1778     AC_SUBST(CUPS_API_MAJOR)
1779     AC_SUBST(CUPS_API_MINOR)
1780     AC_SUBST(CUPS_CFLAGS)
1781     AC_SUBST(CUPS_LIBS)
1782
1783     AC_CHECK_HEADER(cups/cups.h,,AC_MSG_ERROR([[*** Sorry, cups-config present but cups/cups.h missing.]]))
1784   fi
1785   AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno")
1786
1787   gtk_save_cflags="$CFLAGS"
1788   CFLAGS="$CUPS_CFLAGS"
1789   AC_TRY_COMPILE([#include <cups/http.h>],
1790                  [http_t http; char *s = http.authstring;],
1791                  [AC_DEFINE(HAVE_HTTP_AUTHSTRING, [],
1792                             [Define if cups http_t authstring field is accessible])],)
1793   CFLAGS="$gtk_save_cflags"
1794
1795   AC_SUBST(HAVE_HTTP_AUTHSTRING)
1796
1797   gtk_save_libs="$LIBS"
1798   LIBS="$CUPS_LIBS"
1799   AC_CHECK_FUNCS(httpGetAuthString)
1800   LIBS="$gtk_save_libs"
1801
1802 else
1803   AM_CONDITIONAL(HAVE_CUPS, false)
1804 fi
1805
1806 gtk_save_cppflags="$CPPFLAGS"
1807 CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
1808                           
1809 AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
1810 *** Can't find cairo-pdf.h. You must build Cairo with the pdf
1811 *** backend enabled.]))
1812
1813 if test "$os_win32" != "yes"; then
1814   AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
1815 *** Can't find cairo-ps.h. You must build Cairo with the 
1816 *** postscript backend enabled.]))
1817 fi   
1818
1819 CPPFLAGS="$gtk_save_cppflags"
1820      
1821                                 
1822 AC_ARG_ENABLE(test-print-backend,
1823               [AC_HELP_STRING([--enable-test-print-backend],
1824                               [build test print backend])],,
1825               [enable_test_print_backend=no])
1826 AM_CONDITIONAL(TEST_PRINT_BACKEND, test "x$enable_test_print_backend" != "xno")
1827
1828
1829 ################################################################
1830 # Strip -export-dynamic from the link lines of various libraries
1831 ################################################################
1832
1833 #
1834 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1835 #  but this flag is only meaningful for executables. For libraries
1836 #  the effect is undefined; what it causes on Linux is that the
1837 #  export list from -export-symbols-regex is ignored and everything
1838 #  is exported
1839 #
1840 # We are using gmodule-no-export now, but I'm leaving the stripping
1841 # code in place for now, since pango and atk still require gmodule.
1842 export SED
1843 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1844 if test -n "$export_dynamic"; then
1845   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1846   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1847   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1848   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1849 fi
1850
1851
1852 ##################################################
1853 # Checks for gtk-doc and docbook-tools
1854 ##################################################
1855
1856 GTK_DOC_CHECK([1.8])
1857
1858 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1859 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1860
1861 AC_ARG_ENABLE(man,
1862               [AC_HELP_STRING([--enable-man],
1863                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1864               enable_man=no)
1865
1866 if test "${enable_man}" != no; then
1867   dnl
1868   dnl Check for xsltproc
1869   dnl
1870   AC_PATH_PROG([XSLTPROC], [xsltproc])
1871   if test -z "$XSLTPROC"; then
1872     enable_man=no
1873   fi
1874
1875   dnl check for DocBook DTD and stylesheets in the local catalog.
1876   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1877      [DocBook XML DTD V4.1.2],,enable_man=no)
1878   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1879      [DocBook XSL Stylesheets],,enable_man=no)
1880 fi
1881
1882 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1883
1884
1885 ##################################################
1886 # Output commands
1887 ##################################################
1888
1889 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1890         outfile=gdkconfig.h-tmp
1891         cat > $outfile <<\_______EOF
1892 /* gdkconfig.h
1893  *
1894  * This is a generated file.  Please modify `configure.in'
1895  */
1896
1897 #ifndef GDKCONFIG_H
1898 #define GDKCONFIG_H
1899
1900 #ifdef __cplusplus
1901 extern "C" {
1902 #endif /* __cplusplus */
1903
1904 _______EOF
1905
1906         cat >>$outfile <<_______EOF
1907 $gdk_windowing
1908 $gdk_wc
1909 _______EOF
1910
1911         cat >>$outfile <<_______EOF
1912
1913 #ifdef __cplusplus
1914 }
1915 #endif /* __cplusplus */
1916
1917 #endif /* GDKCONFIG_H */
1918 _______EOF
1919
1920
1921         if cmp -s $outfile gdk/gdkconfig.h; then
1922           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1923           rm -f $outfile
1924         else
1925           mv $outfile gdk/gdkconfig.h
1926         fi
1927 ],[
1928 if test "x$gdktarget" = "xx11" ; then
1929   gdk_windowing='
1930 #define GDK_WINDOWING_X11'
1931 elif test "x$gdktarget" = "xwin32" ; then
1932   gdk_windowing='
1933 #define GDK_WINDOWING_WIN32'
1934 elif test "x$gdktarget" = "xquartz" ; then
1935   gdk_windowing='
1936 #define GDK_WINDOWING_QUARTZ'
1937 elif test "x$gdktarget" = "xdirectfb" ; then
1938   gdk_windowing='
1939 #define GDK_WINDOWING_DIRECTFB'
1940 fi
1941
1942 if test x$gdk_wchar_h = xyes; then
1943   gdk_wc='
1944 #define GDK_HAVE_WCHAR_H 1'
1945 fi
1946 if test x$gdk_wctype_h = xyes; then
1947   gdk_wc="\$gdk_wc
1948 #define GDK_HAVE_WCTYPE_H 1"
1949 fi
1950 if test x$gdk_working_wctype = xno; then
1951   gdk_wc="\$gdk_wc
1952 #define GDK_HAVE_BROKEN_WCTYPE 1"
1953 fi
1954
1955
1956 ])
1957
1958 AC_CONFIG_FILES([
1959 config.h.win32
1960 gtk-zip.sh
1961 Makefile
1962 gdk-pixbuf-2.0.pc
1963 gdk-2.0.pc
1964 gtk+-2.0.pc
1965 gtk+-unix-print-2.0.pc
1966 gail.pc
1967 gdk-pixbuf-2.0-uninstalled.pc
1968 gdk-2.0-uninstalled.pc
1969 gtk+-2.0-uninstalled.pc
1970 gail-uninstalled.pc
1971 m4macros/Makefile
1972 po/Makefile.in
1973 po-properties/Makefile.in
1974 demos/Makefile
1975 demos/gtk-demo/Makefile
1976 demos/gtk-demo/geninclude.pl
1977 tests/Makefile
1978 docs/Makefile
1979 docs/reference/Makefile
1980 docs/reference/gdk-pixbuf/Makefile
1981 docs/reference/gdk-pixbuf/version.xml
1982 docs/reference/gdk/Makefile
1983 docs/reference/gdk/version.xml
1984 docs/reference/gtk/Makefile
1985 docs/reference/gtk/version.xml
1986 docs/reference/libgail-util/Makefile
1987 docs/faq/Makefile
1988 docs/tools/Makefile
1989 docs/tutorial/Makefile
1990 gdk-pixbuf/Makefile
1991 gdk-pixbuf/gdk_pixbuf.rc
1992 gdk-pixbuf/gdk-pixbuf-features.h
1993 gdk-pixbuf/pixops/Makefile
1994 gdk/Makefile
1995 gdk/x11/Makefile
1996 gdk/win32/Makefile
1997 gdk/win32/rc/Makefile
1998 gdk/win32/rc/gdk.rc
1999 gdk/quartz/Makefile
2000 gdk/directfb/Makefile
2001 gtk/Makefile
2002 gtk/makefile.msc
2003 gtk/gtkversion.h
2004 gtk/gtk-win32.rc
2005 gtk/theme-bits/Makefile
2006 gtk/tests/Makefile
2007 modules/Makefile
2008 modules/other/Makefile
2009 modules/other/gail/Makefile
2010 modules/other/gail/libgail-util/Makefile
2011 modules/other/gail/tests/Makefile
2012 modules/engines/Makefile
2013 modules/engines/pixbuf/Makefile
2014 modules/engines/ms-windows/Makefile
2015 modules/engines/ms-windows/Theme/Makefile
2016 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
2017 modules/input/Makefile
2018 modules/printbackends/Makefile
2019 modules/printbackends/cups/Makefile
2020 modules/printbackends/lpr/Makefile
2021 modules/printbackends/file/Makefile
2022 modules/printbackends/test/Makefile
2023 perf/Makefile
2024 contrib/Makefile
2025 contrib/gdk-pixbuf-xlib/Makefile
2026 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
2027 ])
2028
2029 AC_OUTPUT
2030
2031 echo "configuration:
2032         target: $gdktarget"