]> Pileus Git - ~andy/gtk/blob - configure.in
e6d2e8e314a494809976436a868039c7a692e435
[~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], [10])
15 m4_define([gtk_micro_version], [2])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [2])
19 m4_define([gtk_binary_age],
20           [m4_eval(100 * 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.12.0])
35 m4_define([pango_required_version], [1.12.0])
36 m4_define([atk_required_version], [1.9.0])
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         [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
97 #
98 # gdk-pixbuf gets versioned separately, and for now, using standard
99 # libtool versioning, not GTK+-style versioning
100 #
101 GDK_PIXBUF_MAJOR=gtk_major_version
102 GDK_PIXBUF_MINOR=gtk_minor_version
103 GDK_PIXBUF_MICRO=gtk_micro_version
104 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
105 AC_SUBST(GDK_PIXBUF_MAJOR)
106 AC_SUBST(GDK_PIXBUF_MINOR)
107 AC_SUBST(GDK_PIXBUF_MICRO)
108 AC_SUBST(GDK_PIXBUF_VERSION)
109
110 GETTEXT_PACKAGE=gtk20
111 AC_SUBST(GETTEXT_PACKAGE)
112 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
113
114 AC_CANONICAL_HOST
115
116 MATH_LIB=-lm
117 AC_MSG_CHECKING([for native Win32])
118 case "$host" in
119   *-*-mingw*)
120     os_win32=yes
121     MATH_LIB=
122     ;;
123   *)
124     os_win32=no
125     ;;
126 esac
127 AC_MSG_RESULT([$os_win32])
128
129 case $host in
130   *-*-linux*)
131     os_linux=yes
132     ;;
133 esac
134 dnl Initialize libtool
135 AC_PROG_CC
136 AM_DISABLE_STATIC
137
138 if test "$os_win32" = "yes"; then
139   if test x$enable_static = xyes -o x$enable_static = x; then
140     AC_MSG_WARN([Disabling static library build, must build as DLL on Windows.])
141     enable_static=no
142   fi
143   if test x$enable_shared = xno; then
144     AC_MSG_WARN([Enabling shared library build, must build as DLL on Windows.])
145   fi
146   enable_shared=yes
147 fi
148
149 AC_LIBTOOL_WIN32_DLL
150 AM_PROG_LIBTOOL
151
152 # Make sure we use 64-bit versions of various file stuff.
153 AC_SYS_LARGEFILE
154
155 AM_PROG_AS
156 AC_PATH_PROG(NM, nm, nm)
157
158 dnl Initialize maintainer mode
159 AM_MAINTAINER_MODE
160
161 AC_MSG_CHECKING([for some Win32 platform])
162 case "$host" in
163   *-*-mingw*|*-*-cygwin*)
164     platform_win32=yes
165     ;;
166   *)
167     platform_win32=no
168     ;;
169 esac
170 AC_MSG_RESULT([$platform_win32])
171 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
172
173 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
174 AM_CONDITIONAL(OS_UNIX, test "$os_win32" != "yes")
175 AM_CONDITIONAL(OS_LINUX, test "$os_linux" = "yes")
176
177 if test "$os_win32" = "yes"; then
178   AC_CHECK_TOOL(WINDRES, windres, no)
179   if test "$WINDRES" = no; then
180     AC_MSG_ERROR([*** Could not find an implementation of windres in your PATH.])
181   fi
182   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
183 fi
184 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
185
186 m4_define([debug_default],
187           m4_if(m4_eval(gtk_minor_version % 2), [1], [yes], [minimum]))
188
189 dnl declare --enable-* args and collect ac_help strings
190 AC_ARG_ENABLE(debug,
191               AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
192                              [turn on debugging @<:@default=debug_default@:>@]),,
193               enable_debug=debug_default)
194 AC_ARG_ENABLE(shm,
195               [AC_HELP_STRING([--enable-shm],
196                               [support shared memory if available [default=yes]])],,
197               [enable_shm="yes"])
198 AC_ARG_ENABLE(xkb,
199               [AC_HELP_STRING([--enable-xkb],
200                               [support XKB [default=maybe]])],,
201               [enable_xkb="maybe"])
202 AC_ARG_ENABLE(rebuilds,
203               [AC_HELP_STRING([--disable-rebuilds],
204                               [disable all source autogeneration rules])],,
205               [enable_rebuilds=yes])
206 AC_ARG_ENABLE(visibility,
207               [AC_HELP_STRING([--disable-visibility],
208                               [don't use ELF visibility attributes])],,
209               [enable_visibility=yes])
210
211 AC_ARG_WITH(xinput,
212             [AC_HELP_STRING([--with-xinput=@<:@no/yes@:>@], [support XInput])])
213
214 AC_ARG_WITH(wintab,
215             [AC_HELP_STRING([--with-wintab=DIRECTORY],
216                             [use Wintab API with win32 backend])])
217 AC_ARG_WITH(ie55,
218             [AC_HELP_STRING([--with-ie55=DIRECTORY],
219                             [IE5.5 libs and headers (for Active IMM)])])
220
221 if test "$platform_win32" = yes; then
222   gdktarget=win32
223 else
224   gdktarget=x11
225 fi
226
227 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32/quartz/directfb]] select non-default GDK target],
228         gdktarget=$with_gdktarget)
229
230 AC_SUBST(gdktarget)
231 case $gdktarget in
232   x11|linux-fb|win32|quartz|directfb) ;;
233   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb, quartz, directfb or win32.]);;
234 esac
235
236 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
237 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
238
239 AC_SUBST(gdktargetlib)
240 AC_SUBST(gtktargetlib)
241
242 AC_ARG_ENABLE(shadowfb,
243               [AC_HELP_STRING([--disable-shadowfb],
244                               [disable shadowfb support for linux-fb])],,
245               [enable_shadowfb=yes])
246
247 AC_ARG_ENABLE(fbmanager,
248               [AC_HELP_STRING([--enable-fbmanager],
249                               [enable framebuffer manager support (GtkFB)])],,
250               enable_fbmanager=no)
251         
252 if test "x$enable_debug" = "xyes"; then
253   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
254   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
255 else
256   if test "x$enable_debug" = "xno"; then
257     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
258   else
259     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
260   fi
261 fi
262
263 if test "x$enable_visibility" = "xno"; then
264   GTK_DEBUG_FLAGS="$GTK_DEBUG_FLAGS -DDISABLE_VISIBILITY"
265 fi
266
267
268 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
269
270                         
271 # Build time sanity check...
272 AM_SANITY_CHECK
273
274 # Checks for programs.
275 AC_ISC_POSIX
276 AM_PROG_CC_STDC
277 AC_PROG_INSTALL
278 AC_PROG_MAKE_SET
279
280 changequote(,)dnl
281 if test "x$GCC" = "xyes"; then
282   case " $CFLAGS " in
283   *[\ \ ]-Wall[\ \      ]*) ;;
284   *) CFLAGS="$CFLAGS -Wall" ;;
285   esac
286
287   if test "x$enable_ansi" = "xyes"; then
288     case " $CFLAGS " in
289     *[\ \       ]-ansi[\ \      ]*) ;;
290     *) CFLAGS="$CFLAGS -ansi" ;;
291     esac
292
293     case " $CFLAGS " in
294     *[\ \       ]-pedantic[\ \  ]*) ;;
295     *) CFLAGS="$CFLAGS -pedantic" ;;
296     esac
297   fi
298 fi
299 changequote([,])dnl
300
301 # Ensure MSVC-compatible struct packing convention is used when
302 # compiling for Win32 with gcc.
303 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
304 # gcc2 uses "-fnative-struct".
305 if test x"$os_win32" = xyes; then
306   if test x"$GCC" = xyes; then
307     msnative_struct=''
308     AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
309     if test -z "$ac_cv_prog_CC"; then
310       our_gcc="$CC"
311     else
312       our_gcc="$ac_cv_prog_CC"
313     fi
314     case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
315       2.)
316         if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
317           msnative_struct='-fnative-struct'
318         fi
319         ;;
320       *)
321         if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
322           msnative_struct='-mms-bitfields'
323         fi
324         ;;
325     esac
326     if test x"$msnative_struct" = x ; then
327       AC_MSG_RESULT([no way])
328       AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
329     else
330       CFLAGS="$CFLAGS $msnative_struct"
331       AC_MSG_RESULT([${msnative_struct}])
332     fi
333   fi
334 fi
335
336 # Honor aclocal flags
337 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
338
339 ## Initial sanity check, done here so that users get told they 
340 ## have the wrong dependencies as early in the process as possible.
341 ## Later on we actually use the cflags/libs from separate pkg-config
342 ## calls. Oh, also the later pkg-config calls don't include 
343 ## the version requirements since those make the module lists 
344 ## annoying to construct
345 PKG_CHECK_MODULES(BASE_DEPENDENCIES,
346   [glib-2.0 >= glib_required_version dnl
347    atk >= atk_required_version dnl
348    pango >= pango_required_version dnl
349    cairo >= cairo_required_version])
350
351 if test "$os_win32" != yes; then
352     # libtool option to control which symbols are exported
353     # right now, symbols starting with _ are not exported
354     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
355 else
356     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
357     LIBTOOL_EXPORT_OPTIONS=
358 fi
359 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
360
361 dnl ******************************************************
362 dnl * See whether to include shared library dependencies *
363 dnl ******************************************************
364
365 AC_ARG_ENABLE(explicit-deps, 
366               [AC_HELP_STRING([--enable-explicit-deps=@<:@yes/no/auto@:>@],
367                               [use explicit dependencies in .pc files [default=auto]])],,
368               [enable_explicit_deps=auto])
369
370 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
371 case $enable_explicit_deps in
372   auto)
373     deplibs_check_method=`(./libtool --config; echo eval echo \\$deplibs_check_method) | sh`
374     if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then
375       enable_explicit_deps=yes  
376     else
377       enable_explicit_deps=no  
378     fi
379   ;;
380   yes|no) 
381   ;;
382   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
383   ;;
384 esac
385 AC_MSG_RESULT($enable_explicit_deps)
386
387 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
388
389 # define a MAINT-like variable REBUILD which is set if Perl
390 # and awk are found, so autogenerated sources can be rebuilt
391
392 AC_PATH_PROGS(PERL, perl5 perl)
393
394 # We would like indent, but don't require it.
395 AC_CHECK_PROG(INDENT, indent, indent)
396
397 REBUILD=\#
398 if test "x$enable_rebuilds" = "xyes" && \
399      test -n "$PERL" && \
400      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
401   REBUILD=
402 fi
403 AC_SUBST(REBUILD)
404
405 AC_CHECK_FUNCS(lstat mkstemp flockfile)
406
407 # _NL_TIME_FIRST_WEEKDAY is an enum and not a define
408 AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
409 AC_TRY_LINK([#include <langinfo.h>], [
410 char c;
411 c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
412 ], gtk_ok=yes, gtk_ok=no)
413 AC_MSG_RESULT($gtk_ok)
414 if test "$gtk_ok" = "yes"; then
415   AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
416             [Define if _NL_TIME_FIRST_WEEKDAY is available])
417 fi
418
419 # _NL_MEASUREMENT_MEASUREMENT is an enum and not a define
420 AC_MSG_CHECKING([for _NL_MEASUREMENT_MEASUREMENT])
421 AC_TRY_LINK([#include <langinfo.h>], [
422 char c;
423 c = *((unsigned char *)  nl_langinfo(_NL_MEASUREMENT_MEASUREMENT));
424 ], gtk_ok=yes, gtk_ok=no)
425 AC_MSG_RESULT($gtk_ok)
426 if test "$gtk_ok" = "yes"; then
427   AC_DEFINE([HAVE__NL_MEASUREMENT_MEASUREMENT], [1],
428             [Define if _NL_MEASUREMENT_MEASUREMENT is available])
429 fi
430
431 # _NL_PAPER_HEIGHT is an enum and not a define
432 AC_MSG_CHECKING([for _NL_PAPER_HEIGHT])
433 AC_TRY_LINK([#include <langinfo.h>], [
434 char c;
435 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_HEIGHT));
436 ], gtk_ok=yes, gtk_ok=no)
437 AC_MSG_RESULT($gtk_ok)
438 if test "$gtk_ok" = "yes"; then
439   AC_DEFINE([HAVE__NL_PAPER_HEIGHT], [1],
440             [Define if _NL_PAPER_HEIGHT is available])
441 fi
442
443 # _NL_PAPER_WIDTH is an enum and not a define
444 AC_MSG_CHECKING([for _NL_PAPER_WIDTH])
445 AC_TRY_LINK([#include <langinfo.h>], [
446 char c;
447 c = *((unsigned char *)  nl_langinfo(_NL_PAPER_WIDTH));
448 ], gtk_ok=yes, gtk_ok=no)
449 AC_MSG_RESULT($gtk_ok)
450 if test "$gtk_ok" = "yes"; then
451   AC_DEFINE([HAVE__NL_PAPER_WIDTH], [1],
452             [Define if _NL_PAPER_WIDTH is available])
453 fi
454         
455 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
456 AC_MSG_CHECKING(for sigsetjmp)
457 AC_TRY_LINK([#include <setjmp.h>], [
458 sigjmp_buf env;
459 sigsetjmp(env, 0);
460 ], gtk_ok=yes, gtk_ok=no)
461 AC_MSG_RESULT($gtk_ok)
462 if test "$gtk_ok" = "yes"; then
463   AC_DEFINE(HAVE_SIGSETJMP)
464 fi
465
466 # i18n stuff
467 # TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
468 # directories.  If you add a new language to ALL_LINGUAS, please make
469 # sure that both po/ and po-properties/ have .po files that correspond
470 # to your language.  If you only add one to po/, the build will break
471 # in po-properties/.
472 ALL_LINGUAS="af am ar az az_IR be bg bn bn_IN br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja 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"
473 AM_GLIB_GNU_GETTEXT
474 LIBS="$LIBS $INTLLIBS"
475 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
476         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
477       esac])
478
479 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
480
481 dnl The DU4 header files don't provide library prototypes unless 
482 dnl -std1 is given to the native cc.
483 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
484
485 gtk_save_LIBS=$LIBS
486 LIBS="$LIBS -lm"
487 AC_TRY_RUN([#include <math.h>
488              int main (void) { return (log(1) != log(1.)); }],
489      AC_MSG_RESULT(none needed),
490      gtk_save_CFLAGS="$CFLAGS"
491      CFLAGS="$CFLAGS -std1"
492      AC_TRY_RUN([#include <math.h>
493                  int main (void) { return (log(1) != log(1.)); }],
494          AC_MSG_RESULT(-std1),
495          AC_MSG_RESULT()
496          CFLAGS="$gtk_save_CFLAGS"
497          AC_MSG_WARN(
498                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
499          true
500      ),
501      AC_MSG_RESULT(none needed)
502 )
503 LIBS=$gtk_save_LIBS
504
505 AC_MSG_CHECKING(for the BeOS)
506 case $host in
507   *-*-beos*)
508     AC_MSG_RESULT(yes)
509     MATH_LIB=
510   ;;
511   *)
512     AC_MSG_RESULT(no)
513   ;;
514 esac
515
516 #
517 # see bug 162979
518 #
519 AC_MSG_CHECKING(for HP-UX)
520 case $host_os in
521   hpux9* | hpux10* | hpux11*)
522     AC_MSG_RESULT(yes)
523     CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
524   ;;
525   *)
526     AC_MSG_RESULT(no)
527   ;;
528 esac
529
530 dnl NeXTStep cc seems to need this
531 AC_MSG_CHECKING([for extra flags for POSIX compliance])
532 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
533   AC_MSG_RESULT(none needed),
534   gtk_save_CFLAGS="$CFLAGS"
535   CFLAGS="$CFLAGS -posix"
536   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
537     AC_MSG_RESULT(-posix),
538     AC_MSG_RESULT()
539     CFLAGS="$gtk_save_CFLAGS"
540     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
541
542 #
543 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
544
545
546 GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
547
548 AM_PATH_GLIB_2_0(glib_required_version, :,
549   AC_MSG_ERROR([
550 *** GLIB glib_required_version or better is required. The latest version of 
551 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
552   gobject gmodule-no-export gthread)
553
554 # See if it's safe to turn G_DISABLE_DEPRECATED on.
555 GLIB_VERSION_MAJOR_MINOR=`$PKG_CONFIG --modversion glib-2.0 | sed "s/\.@<:@^.@:>@*\$//"`
556 GLIB_REQUIRED_VERSION_MAJOR_MINOR=`echo glib_required_version | sed "s/\.@<:@^.@:>@*\$//"`
557 if test "x$GLIB_VERSION_MAJOR_MINOR" = "x$GLIB_REQUIRED_VERSION_MAJOR_MINOR"; then
558   CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
559 fi
560
561
562 dnl
563 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
564 dnl
565 gtk_save_LIBS=$LIBS
566 LIBS="$LIBS $GLIB_LIBS"
567 AC_CHECK_FUNCS(bind_textdomain_codeset)
568 LIBS=$gtk_save_LIBS
569
570 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
571 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
572 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
573
574 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
575   AC_MSG_CHECKING([for dimm.h])
576   saved_CFLAGS="$CFLAGS"
577   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
578   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
579 #ifdef __GNUC__
580 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
581 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
582 #endif
583 #include <windows.h>
584 #include <objbase.h>
585 #include <imm.h>
586 #ifdef __GNUC__
587 #undef IMEMENUITEMINFOA
588 #undef IMEMENUITEMINFOW
589 #endif
590 #include <dimm.h>
591 ],
592    [],
593    [AC_MSG_RESULT(yes)
594     AC_MSG_CHECKING([for IE55 uuid.lib])
595     if test -f $with_ie55/Lib/uuid.lib ; then
596       AC_MSG_RESULT(yes)
597       have_ie55=yes
598       AC_DEFINE(HAVE_DIMM_H)
599       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
600       AC_SUBST(IE55_UUID_LIB)
601     else
602       AC_MSG_RESULT(no)
603       CFLAGS="$saved_CFLAGS"
604       have_ie55=no
605     fi
606     ],
607    [AC_MSG_RESULT(no)
608     CFLAGS="$saved_CFLAGS"
609     have_ie55=no])
610 fi
611 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
612
613 if test "${with_wintab+set}" = set && test $with_wintab != no; then
614   AC_MSG_CHECKING([for wintab.h])
615   saved_CFLAGS="$CFLAGS"
616   CFLAGS="$CFLAGS -I$with_wintab/include"
617   AC_TRY_COMPILE([#include <windows.h>
618 #include <wintab.h>], 
619    [],
620    [AC_MSG_RESULT(yes)
621     AC_MSG_CHECKING([for wntab32x.lib])
622     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
623       AC_MSG_RESULT(yes)
624       have_wintab=yes
625       AC_DEFINE(HAVE_WINTAB)
626       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
627       AC_SUBST(WINTAB_LIB)
628     else
629       AC_MSG_RESULT(no)
630       CFLAGS="$saved_cflags"
631       have_wintab=no
632     fi
633     ],
634    [AC_MSG_RESULT(no)
635     CFLAGS="$saved_cflags"
636     have_wintab=no])
637 fi
638 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
639
640 saved_cflags="$CFLAGS"
641 saved_ldflags="$LDFLAGS"
642
643
644 # Checks for header files.
645 AC_HEADER_STDC
646
647 # Checks for typedefs, structures, and compiler characteristics.
648 AC_C_CONST
649
650 # Checks for library functions.
651 AC_TYPE_SIGNAL
652 AC_FUNC_MMAP
653
654 AC_CHECK_FUNCS(mallinfo)
655 AC_CHECK_FUNCS(getresuid)
656 AC_TYPE_UID_T
657
658 # Check if <sys/select.h> needs to be included for fd_set
659 AC_MSG_CHECKING([for fd_set])
660 AC_TRY_COMPILE([#include <sys/types.h>],
661         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
662 if test $gtk_ok = yes; then
663     AC_MSG_RESULT([yes, found in sys/types.h])
664 else
665     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
666     if test $gtk_ok = yes; then
667         AC_DEFINE(HAVE_SYS_SELECT_H)
668         AC_MSG_RESULT([yes, found in sys/select.h])
669     else
670         AC_DEFINE(NO_FD_SET)
671         AC_MSG_RESULT(no)
672     fi
673 fi
674
675 # `widechar' tests for gdki18n.h
676 AC_MSG_CHECKING(for wchar.h)
677 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
678 if test $gdk_wchar_h = yes; then
679    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
680 fi
681 AC_MSG_RESULT($gdk_wchar_h)
682
683 # Check for wctype.h (for iswalnum)
684 AC_MSG_CHECKING(for wctype.h)
685 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
686 if test $gdk_wctype_h = yes; then
687    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
688 fi
689 AC_MSG_RESULT($gdk_wctype_h)
690
691 # in Solaris 2.5, `iswalnum' is in -lw
692 GDK_WLIBS=
693 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
694
695 oLIBS="$LIBS"
696 LIBS="$LIBS $GDK_WLIBS"
697 # The following is necessary for Linux libc-5.4.38
698 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
699 AC_TRY_LINK([#include <stdlib.h>],[
700 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
701 #  ifdef HAVE_WCTYPE_H
702 #    include <wctype.h>
703 #  else
704 #    ifdef HAVE_WCHAR_H
705 #      include <wchar.h>
706 #    endif
707 #  endif
708 #else
709 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
710 #endif
711 iswalnum((wchar_t) 0);
712 ], gdk_working_wctype=yes, gdk_working_wctype=no)
713 LIBS="$oLIBS"
714
715 if test $gdk_working_wctype = no; then
716    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
717    GDK_WLIBS=
718 fi
719 AC_MSG_RESULT($gdk_working_wctype)
720 AC_SUBST(GDK_WLIBS)
721
722 # Check for uxtheme.h (for MS-Windows Engine)
723 AC_MSG_CHECKING(for uxtheme.h)
724 AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
725 if test $gtk_uxtheme_h = yes; then
726    AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
727 fi
728 AC_MSG_RESULT($gtk_uxtheme_h)
729
730
731 ##################################################
732 # Checks for gdk-pixbuf
733 ##################################################
734
735 dnl ********************************************************
736 dnl * See whether we need to load our modules as .la files *
737 dnl ********************************************************
738
739 use_la_modules=false
740 case $host in
741   *-aix*) use_la_modules=true
742 esac
743
744 if $use_la_modules ; then
745    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
746 fi
747
748
749 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
750
751 AC_ARG_ENABLE(modules,
752               [AC_HELP_STRING([--disable-modules],
753                               [disable dynamic module loading])])
754
755 dynworks=false
756 deps=
757 if test x$enable_modules = xno; then
758     AC_MSG_RESULT(no)
759 else
760     AC_MSG_RESULT(yes)
761     AC_MSG_CHECKING(whether dynamic modules work)
762     ## for loop is to strip newline 
763     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
764     for I in $tmp; do
765         dynworks=$I
766     done
767
768     dnl Now we check to see if our libtool supports shared lib deps
769     dnl (in a rather ugly way even)
770     if $dynworks; then
771         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
772         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
773             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
774             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
775         if test "x$pixbuf_deplibs_check" = "xnone" || \
776            test "x$pixbuf_deplibs_check" = "xunknown" || \
777            test "x$pixbuf_deplibs_check" = "x"; then
778             dynworks=false
779         fi
780     fi
781
782     if $dynworks; then
783         AC_DEFINE(USE_GMODULE)
784         AC_MSG_RESULT(yes)
785     else
786         AC_MSG_RESULT(no)
787     fi
788 fi
789
790 dnl We allow people to disable image loaders explicitely, but if they don't we error
791 dnl out so that people don't accidentally build without them.
792
793 AC_ARG_WITH(libpng,
794             [AC_HELP_STRING([--without-libpng],
795                             [disable PNG loader for gdk-pixbuf])])
796 AC_ARG_WITH(libjpeg,
797             [AC_HELP_STRING([--without-libjpeg],
798                             [disable JPEG loader for gdk-pixbuf])])
799 AC_ARG_WITH(libtiff,
800             [AC_HELP_STRING([--without-libtiff],
801                             [disable TIFF loader for gdk-pixbuf])])
802
803 dnl Test for libtiff
804   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
805     AC_CHECK_LIB(tiff, TIFFReadScanline,
806       [AC_CHECK_HEADER(tiffio.h,
807         TIFF='tiff'; LIBTIFF='-ltiff',
808         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
809       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
810         [AC_CHECK_HEADER(tiffio.h,
811           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
812           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
813         [AC_CHECK_LIB(tiff34, TIFFFlushData,
814           [AC_CHECK_HEADER(tiffio.h,
815             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
816             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
817         AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
818   fi
819
820   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
821      AC_MSG_ERROR([
822 *** Checks for TIFF loader failed. You can build without it by passing 
823 *** --without-libtiff to configure but some programs using GTK+ may
824 *** not work properly])
825   fi
826
827 dnl Test for libjpeg
828   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
829     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
830       jpeg_ok=yes,
831       jpeg_ok=no
832       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
833     if test "$jpeg_ok" = yes; then
834       AC_MSG_CHECKING([for jpeglib.h])
835       AC_TRY_CPP(
836 [#include <stdio.h>
837 #undef PACKAGE
838 #undef VERSION
839 #undef HAVE_STDLIB_H
840 #include <jpeglib.h>],
841         jpeg_ok=yes,
842         jpeg_ok=no)
843       AC_MSG_RESULT($jpeg_ok)
844       if test "$jpeg_ok" = yes; then
845         LIBJPEG='-ljpeg'
846         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
847           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
848           AC_MSG_WARN(JPEG library does not support progressive saving.))
849       else
850           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
851       fi
852     fi
853   fi
854
855   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
856      AC_MSG_ERROR([
857 *** Checks for JPEG loader failed. You can build without it by passing 
858 *** --without-libjpeg to configure but some programs using GTK+ may
859 *** not work properly])
860   fi
861
862 dnl Test for libpng
863   if test x$with_libpng != xno && test -z "$LIBPNG"; then
864     AC_MSG_CHECKING(for libpng12)
865     if $PKG_CONFIG --exists libpng12 ; then
866         AC_MSG_RESULT(yes)
867         PNG='png'
868         PNG_DEP_CFLAGS_PACKAGES=libpng12
869         LIBPNG=`$PKG_CONFIG --libs libpng12`
870     else
871       AC_MSG_RESULT(no)
872       AC_CHECK_LIB(png, png_read_info,
873         [AC_CHECK_HEADER(png.h,
874           png_ok=yes,
875           png_ok=no)],
876         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
877       if test "$png_ok" = yes; then
878         AC_MSG_CHECKING([for png_structp in png.h])
879         AC_TRY_COMPILE([#include <png.h>],
880           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
881           png_ok=yes,
882           png_ok=no)
883         AC_MSG_RESULT($png_ok)
884         if test "$png_ok" = yes; then
885           PNG='png'; LIBPNG='-lpng -lz'
886         else
887           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
888         fi
889       else
890        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
891       fi
892     fi
893   fi
894
895   if test x$with_libpng != xno && test -z "$LIBPNG"; then
896      AC_MSG_ERROR([
897 *** Checks for PNG loader failed. You can build without it by passing 
898 *** --without-libpng to configure but many programs using GTK+ will
899 *** not work properly. The PNG loader is also needed if you are compiling
900 *** from CVS.])
901   fi
902
903 AC_SUBST(LIBTIFF)
904 AC_SUBST(LIBJPEG)
905 AC_SUBST(LIBPNG)
906
907 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
908
909 #
910 # Allow building some or all gdk-pixbuf loaders included
911 #
912 AC_MSG_CHECKING(pixbuf loaders to build)
913
914 dnl due to an autoconf bug, commas in the first arg to
915 dnl AC_HELP_STRING cause problems.
916 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
917 dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
918 AC_ARG_WITH(included_loaders,
919 [  --with-included-loaders=LOADER1,LOADER2,...
920                           build the specified loaders into gdk-pixbuf (only
921                           used if module loading disabled)])
922
923 if $dynworks; then 
924         :
925 else
926    ## if the option was specified, leave it; otherwise disable included loaders
927    if test x$with_included_loaders = xno; then
928            with_included_loaders=yes
929    fi
930 fi
931
932 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
933 included_loaders=""
934 # If no loaders specified, include all
935 if test "x$with_included_loaders" = xyes ; then
936   included_loaders="$all_loaders"
937 else
938   included_loaders="$with_included_loaders"
939 fi
940
941 AC_MSG_RESULT($included_loaders)
942
943 INCLUDED_LOADER_OBJ=
944 INCLUDED_LOADER_DEFINE=
945
946 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
947 for loader in $included_loaders; do
948  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
949    :
950  else
951    AC_MSG_ERROR([the specified loader $loader does not exist])
952  fi
953
954  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
955  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
956 done
957 IFS="$gtk_save_ifs"
958 AC_SUBST(INCLUDED_LOADER_OBJ)
959 AC_SUBST(INCLUDED_LOADER_DEFINE)
960
961 AC_HEADER_SYS_WAIT
962
963 AC_TYPE_SIGNAL
964
965 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
966 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
967 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
968
969 if $dynworks ; then
970   STATIC_LIB_DEPS=
971   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
972     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
973   fi
974   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
975     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
976   fi
977   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
978     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
979   fi
980 else
981   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
982 fi
983
984 # Checks to see if we should compile in MMX support (there will be
985 # a runtime test when the code is actually run to see if it should
986 # be used - this just checks if we can compile it.)
987 #
988 # This code is partially taken from Mesa
989 #
990 AC_MSG_CHECKING(for x86 platform)
991 case $host_cpu in
992   i386|i486|i586|i686|i786|k6|k7)
993         use_x86_asm=yes
994         ;;
995    *)
996         use_x86_asm=no
997 esac
998 AC_MSG_RESULT($use_x86_asm)
999
1000 use_mmx_asm=no
1001 if test $use_x86_asm = yes; then
1002     save_ac_ext=$ac_ext
1003     ac_ext=S
1004     
1005     AC_MSG_CHECKING(compiler support for MMX)
1006     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
1007     if AC_TRY_EVAL(ac_compile); then
1008         use_mmx_asm=yes
1009     fi
1010
1011     rm -rf conftest*
1012
1013     ac_ext=$save_ac_ext
1014     if test $use_mmx_asm = yes; then
1015       AC_DEFINE(USE_MMX)
1016       AC_MSG_RESULT(yes)
1017     else
1018       AC_MSG_RESULT(no)
1019     fi
1020 fi
1021
1022 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
1023
1024 REBUILD_PNGS=
1025 if test -z "$LIBPNG"; then
1026   REBUILD_PNGS=#
1027 fi
1028
1029 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
1030
1031 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1032
1033 if test $cross_compiling = yes; then
1034   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
1035   if test x$GDK_PIXBUF_CSOURCE = xno; then
1036     REBUILD_PNGS=#
1037   fi
1038 fi
1039
1040 if test ! -f $srcdir/gtk/gtkbuiltincache.h && 
1041    test "x$REBUILD_PNGS" = "x#" ; then
1042      AC_MSG_ERROR([
1043 *** gtkbuiltincache.h is not in the tree, and cannot be built
1044 *** because you don't have libpng, or (when cross-compiling) you 
1045 *** don't have a prebuilt gdk-pixbuf-csource on the host system.])
1046 fi
1047
1048 AC_SUBST(REBUILD_PNGS)
1049
1050 GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1051 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
1052 GDK_PIXBUF_EXTRA_CFLAGS= 
1053 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1054 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1055
1056 AC_SUBST(GDK_PIXBUF_PACKAGES)
1057 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1058 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1059 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1060 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1061
1062
1063 ########################################
1064 # Windowing system checks
1065 ########################################
1066
1067 GDK_PIXBUF_XLIB_PACKAGES=
1068 GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
1069 GDK_PIXBUF_XLIB_EXTRA_LIBS=
1070         
1071 X_PACKAGES=fontconfig
1072 GDK_EXTRA_LIBS="$GDK_WLIBS"
1073 GDK_EXTRA_CFLAGS=
1074         
1075 # GTK+ uses some X calls, so needs to link against X directly
1076 GTK_DEP_PACKAGES_FOR_X=
1077 GTK_DEP_LIBS_FOR_X=
1078
1079 if test "x$gdktarget" = "xx11"; then
1080   #
1081   # We use fontconfig very peripherally when decoding the default
1082   # settings.
1083   #
1084   if $PKG_CONFIG --exists fontconfig; then : ; else
1085     AC_MSG_ERROR([
1086 *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
1087   fi
1088
1089   #
1090   # Check for basic X packages; we use pkg-config if available
1091   #
1092   if $PKG_CONFIG --exists x11 xext xrender; then
1093     have_base_x_pc=true
1094     X_PACKAGES="$X_PACKAGES x11 xext xrender"
1095     x_libs="`$PKG_CONFIG --libs x11 xext xrender`"
1096     X_CFLAGS="`$PKG_CONFIG --cflags x11 xext xrender`"
1097     
1098     # Strip out any .la files that pkg-config might give us (this happens
1099     # with -uninstalled.pc files)
1100     x_libs_for_checks=
1101     for I in $x_libs ; do
1102       case $I in 
1103         *.la) ;;
1104         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1105       esac
1106     done
1107     
1108     GDK_PIXBUF_XLIB_PACKAGES="x11"
1109     GTK_PACKAGES_FOR_X="x11"
1110   else
1111     have_base_x_pc=false
1112     AC_PATH_XTRA
1113     if test x$no_x = xyes ; then
1114       AC_MSG_ERROR([X development libraries not found])
1115     fi
1116     
1117     x_cflags="$X_CFLAGS"
1118     x_libs_for_checks="$X_LIBS -lXext -lXrender -lX11 $X_EXTRA_LIBS"
1119
1120     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1121     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1122     GTK_DEP_LIBS_FOR_X="$X_LIBS -lXrender -lX11 $X_EXTRA_LIBS"
1123   fi
1124
1125   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1126   x_extra_libs=
1127
1128   gtk_save_cppflags="$CPPFLAGS"
1129   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1130
1131   gtk_save_LIBS=$LIBS
1132   LIBS="$x_libs_for_checks $LIBS"
1133   
1134   # Sanity check for the X11 and Xext libraries. While everything we need from
1135   # Xext is optional, the chances a system has *none* of these things is so
1136   # small that we just unconditionally require it.
1137   AC_CHECK_FUNC(XOpenDisplay, :,
1138                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1139   AC_CHECK_FUNC(XextFindDisplay, :,
1140                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1141   AC_CHECK_FUNC(XRenderQueryExtension, :,
1142                 AC_MSG_ERROR([*** libXrender not found. Check 'config.log' for more details.]))
1143
1144   # Check for xReply
1145
1146   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1147   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1148       [xReply *rep;],
1149       [AC_MSG_RESULT([no])],
1150       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1151 #include <X11/Xlibint.h>],
1152            [xReply *rep;],
1153            [AC_MSG_RESULT([yes])
1154             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1155                 [Define if <X11/extensions/XIproto.h> needed for xReply])],
1156            [AC_MSG_RESULT([unknown])
1157             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1158
1159   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1160
1161   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1162
1163   # Generic X11R6 check needed for XIM support; we could
1164   # probably use this to replace the above, but we'll
1165   # leave the separate checks for XConvertCase and XInternAtoms 
1166   # for clarity
1167   
1168   have_x11r6=false
1169   AC_CHECK_FUNC(XAddConnectionWatch,
1170       have_x11r6=true)
1171
1172   if $have_x11r6; then
1173     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1174   fi
1175   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1176
1177   # Check for XKB support.
1178
1179   if test "x$enable_xkb" = "xyes"; then
1180         AC_MSG_WARN(XKB support explicitly enabled)
1181         AC_DEFINE(HAVE_XKB)
1182   elif test "x$enable_xkb" = "xmaybe"; then
1183         AC_CHECK_FUNC(XkbQueryExtension,
1184                       AC_DEFINE(HAVE_XKB))
1185   else
1186         AC_MSG_WARN(XKB support explicitly disabled)
1187   fi
1188
1189   # Check for shaped window extension
1190
1191   AC_CHECK_FUNC(XShapeCombineMask,
1192       AC_DEFINE(HAVE_SHAPE_EXT))
1193
1194   # X SYNC check
1195   gtk_save_CFLAGS="$CFLAGS"
1196   CFLAGS="$CFLAGS $x_cflags"
1197   
1198   AC_CHECK_FUNC(XSyncQueryExtension,
1199       [AC_CHECK_HEADER(X11/extensions/sync.h,
1200           AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
1201           :, [#include <X11/Xlib.h>])])
1202
1203   CFLAGS="$gtk_save_CFLAGS"
1204
1205   # Xshm checks
1206
1207   if test "x$enable_shm" = "xyes"; then
1208      # Check for the XShm extension, normally in Xext
1209      AC_CHECK_FUNC(XShmAttach,
1210         :,
1211         # On AIX, it is in XextSam instead
1212         [AC_CHECK_LIB(XextSam, XShmAttach, 
1213             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1214   fi    
1215
1216   if test "x$enable_shm" = "xyes"; then
1217     # Check for shared memory
1218     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1219     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1220
1221     # Check for the X shared memory extension header file
1222     have_xshm=no 
1223     AC_MSG_CHECKING(X11/extensions/XShm.h)
1224     if test "x$no_xext_lib" = "xyes"; then
1225       :
1226     else
1227       gtk_save_CFLAGS="$CFLAGS"
1228       CFLAGS="$CFLAGS $x_cflags"
1229       AC_TRY_COMPILE([
1230 #include <stdlib.h>
1231 #include <sys/types.h>
1232 #include <sys/ipc.h>
1233 #include <sys/shm.h>
1234 #include <X11/Xlib.h>
1235 #include <X11/Xutil.h>
1236 #include <X11/extensions/XShm.h>
1237 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1238       CFLAGS="$gtk_save_CFLAGS"
1239     fi
1240     AC_MSG_RESULT($have_xshm)
1241     if test $have_xshm = yes ; then
1242       AC_DEFINE(HAVE_XSHM_H)
1243     fi
1244   fi
1245
1246   # Check for Xinerama extension (Solaris impl or Xfree impl)
1247
1248   gtk_save_cppflags="$CPPFLAGS"
1249   CPPFLAGS="$CPPFLAGS $x_cflags"
1250   
1251   case "$host" in
1252       *-*-solaris*)
1253           # Check for solaris
1254           AC_MSG_CHECKING(for Xinerama support on Solaris)
1255           
1256           have_solaris_xinerama=false
1257           AC_CHECK_FUNC(XineramaGetInfo,
1258               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1259                   [have_solaris_xinerama=true], :,
1260                   [#include <X11/Xlib.h>])])
1261                 
1262           if $have_solaris_xinerama ; then
1263             AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1264             AC_DEFINE(HAVE_XINERAMA) 
1265             AC_MSG_RESULT(yes)
1266           else
1267             AC_MSG_RESULT(no)
1268           fi
1269           ;;
1270       *)
1271           # Check for XFree
1272           AC_MSG_CHECKING(for Xinerama support on XFree86)
1273           
1274           have_xfree_xinerama=false
1275           if $PKG_CONFIG --exists xinerama ; then
1276              have_xfree_xinerama=true
1277              X_PACKAGES="$X_PACKAGES xinerama"
1278           else    
1279               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1280                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1281                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1282                       have_xfree_xinerama=true], :,
1283                       [#include <X11/Xlib.h>])])
1284           fi
1285
1286           if $have_xfree_xinerama ; then
1287             AC_DEFINE(HAVE_XFREE_XINERAMA)
1288             AC_DEFINE(HAVE_XINERAMA) 
1289             AC_MSG_RESULT(yes)
1290          else
1291             AC_MSG_RESULT(no)
1292          fi
1293          ;;
1294   esac
1295
1296   # set up things for XInput
1297
1298   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1299     AC_DEFINE(XINPUT_XFREE)
1300     
1301     if $PKG_CONFIG --exists xi ; then
1302       X_PACKAGES="$X_PACKAGES xi"
1303     else
1304       GTK_ADD_LIB(x_extra_libs, Xi)
1305     fi
1306   else
1307     AC_DEFINE(XINPUT_NONE)
1308   fi
1309
1310   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1311
1312   # Check for the RANDR extension
1313
1314   have_randr=false
1315   if $PKG_CONFIG --exists xrandr ; then
1316     have_randr=true
1317     X_PACKAGES="$X_PACKAGES xrandr"
1318   else    
1319     AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1320        [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1321           # RANDR requires RENDER
1322           [have_randr=true
1323           GTK_ADD_LIB(x_extra_libs, Xrender)
1324           GTK_ADD_LIB(x_extra_libs, Xrandr)],
1325           :, [#include <X11/Xlib.h>])])
1326   fi
1327
1328   if $have_randr ; then
1329      AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
1330   fi
1331        
1332   # Checks for Xcursor library
1333   
1334   if $PKG_CONFIG --exists xcursor ; then
1335     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1336     
1337     X_PACKAGES="$X_PACKAGES xcursor"
1338   fi
1339
1340   # Checks for XFixes extension
1341   
1342   if $PKG_CONFIG --exists xfixes ; then
1343     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1344     
1345     X_PACKAGES="$X_PACKAGES xfixes"
1346   fi
1347
1348   if $have_base_x_pc ; then
1349     GDK_EXTRA_LIBS="$x_extra_libs"
1350   else
1351     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1352   fi
1353
1354   CPPFLAGS="$gtk_save_cppflags"
1355   LIBS="$gtk_save_libs"
1356
1357   AM_CONDITIONAL(USE_X11, true)
1358 else
1359   AM_CONDITIONAL(XINPUT_XFREE, false)
1360   AM_CONDITIONAL(USE_X11, false)
1361   AM_CONDITIONAL(HAVE_X11R6, false)
1362 fi
1363
1364 if test "x$gdktarget" = "xwin32"; then
1365   # We start off with the libraries from Pango
1366
1367   if test x$have_wintab = xyes; then
1368     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1369     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1370   fi
1371
1372   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1373   AM_CONDITIONAL(USE_WIN32, true)
1374 else
1375   AM_CONDITIONAL(USE_WIN32, false)
1376 fi
1377
1378 if test "x$gdktarget" = "xquartz"; then
1379   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
1380   AM_CONDITIONAL(USE_QUARTZ, true)
1381 else
1382   AM_CONDITIONAL(USE_QUARTZ, false)
1383 fi
1384
1385 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1386 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"
1387
1388 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1389 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1390 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1391 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1392 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1393
1394 if test "x$gdktarget" = "xlinux-fb"; then
1395   if test x$enable_shadowfb = xyes ; then
1396     AC_DEFINE(ENABLE_SHADOW_FB)
1397   fi
1398
1399   if test x$enable_fbmanager = xyes ; then
1400     AC_DEFINE(ENABLE_FB_MANAGER)
1401     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1402   else
1403     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1404   fi
1405   
1406   AM_CONDITIONAL(USE_LINUX_FB, true)
1407 else
1408   AM_CONDITIONAL(USE_LINUX_FB, false)
1409   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1410 fi
1411
1412 if test "x$gdktarget" = "xdirectfb"; then
1413   DIRECTFB_REQUIRED_VERSION=0.9.24
1414   AC_MSG_CHECKING(for DirectFB)
1415
1416   if $PKG_CONFIG --atleast-version $DIRECTFB_REQUIRED_VERSION directfb ; then
1417       AC_MSG_RESULT(found)
1418       GDK_EXTRA_CFLAGS="`$PKG_CONFIG --cflags directfb` $GDK_EXTRA_CFLAGS"
1419       GDK_EXTRA_LIBS="`$PKG_CONFIG --libs directfb` $GDK_EXTRA_LIBS"
1420   else
1421       AC_MSG_ERROR([
1422 *** DirectFB $DIRECTFB_REQUIRED_VERSION or newer is required. The latest
1423 *** version of DirectFB is always available from http://www.directfb.org/.
1424   ])
1425   fi
1426
1427   AM_CONDITIONAL(USE_DIRECTFB, true)
1428 else
1429   AM_CONDITIONAL(USE_DIRECTFB, false)
1430 fi
1431
1432
1433 # Check for Pango flags
1434
1435 if test "x$gdktarget" = "xwin32"; then
1436         PANGO_PACKAGES="pangowin32 pangocairo"
1437 else
1438         PANGO_PACKAGES="pango pangocairo"
1439 fi
1440
1441 AC_MSG_CHECKING(Pango flags)
1442 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1443         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1444         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1445
1446         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1447 else
1448         AC_MSG_ERROR([
1449 *** Pango not found. Pango built with Cairo support is required
1450 *** to build GTK+. See http://www.pango.org for Pango information.
1451 ])
1452 fi
1453
1454 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1455
1456 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1457         :
1458 else
1459         gtk_save_LIBS="$LIBS"
1460         LIBS="$PANGO_LIBS $LIBS"
1461         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1462 *** Can't link to Pango. Pango is required to build
1463 *** GTK+. For more information see http://www.pango.org]))
1464         LIBS="$gtk_save_LIBS"
1465 fi
1466
1467 CFLAGS="$saved_cflags"
1468 LDFLAGS="$saved_ldflags"
1469
1470 GDK_PACKAGES="$PANGO_PACKAGES"
1471 if test "x$gdktarget" = "xx11"; then
1472   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1473 fi
1474 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1475 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1476
1477 #
1478 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1479 # into the pkg-config files
1480 #
1481 if test $enable_explicit_deps != yes ; then
1482   GDK_PACKAGES="$PANGO_PACKAGES"
1483   GDK_EXTRA_LIBS=
1484 fi
1485
1486 AC_SUBST(GDK_PACKAGES)
1487 AC_SUBST(GDK_EXTRA_LIBS)
1488 AC_SUBST(GDK_EXTRA_CFLAGS)
1489 AC_SUBST(GDK_DEP_LIBS)
1490 AC_SUBST(GDK_DEP_CFLAGS)
1491
1492
1493 ########################################
1494 # Check for Accessibility Toolkit flags
1495 ########################################
1496
1497 ATK_PACKAGES=atk
1498 AC_MSG_CHECKING(ATK flags)
1499 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1500         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1501         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1502
1503         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1504 else
1505         AC_MSG_ERROR([
1506 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1507 *** to build GTK+.
1508 ])
1509 fi
1510
1511 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1512         :
1513 else
1514         gtk_save_LIBS="$LIBS"
1515         LIBS="$ATK_LIBS $LIBS"
1516         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1517                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1518                 *** to build GTK+]))
1519         LIBS="$gtk_save_LIBS"
1520 fi
1521
1522 GTK_PACKAGES="atk cairo"
1523 GTK_EXTRA_LIBS=
1524 GTK_EXTRA_CFLAGS= 
1525 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"
1526 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"
1527
1528 if test x"$os_win32" = xyes; then
1529   GTK_EXTRA_CFLAGS="$msnative_struct"
1530 fi
1531
1532 AC_SUBST(GTK_PACKAGES)
1533 AC_SUBST(GTK_EXTRA_LIBS)
1534 AC_SUBST(GTK_EXTRA_CFLAGS)
1535 AC_SUBST(GTK_DEP_LIBS)
1536 AC_SUBST(GTK_DEP_CFLAGS)
1537
1538
1539 AC_SUBST(GTK_DEBUG_FLAGS)
1540 AC_SUBST(GTK_XIM_FLAGS)
1541
1542 ################################################################
1543 # Printing system checks
1544 ################################################################
1545
1546 AC_PATH_PROG(CUPS_CONFIG, cups-config, no)
1547 if test "x$CUPS_CONFIG" != "xno"; then
1548   CUPS_CFLAGS=`cups-config --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
1549   CUPS_LIBS=`cups-config --libs`
1550
1551   CUPS_API_VERSION=`cups-config --api-version`
1552   CUPS_API_MAJOR=`echo -n $CUPS_API_VERSION | awk -F. '{print $1}'`
1553   CUPS_API_MINOR=`echo -n $CUPS_API_VERSION | awk -F. '{print $2}'`
1554
1555   if test $CUPS_API_MAJOR -gt 1 -o \
1556           $CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 2; then
1557     AC_DEFINE(HAVE_CUPS_API_1_2)
1558   fi
1559
1560   AC_SUBST(CUPS_API_MAJOR)
1561   AC_SUBST(CUPS_API_MINOR)
1562   AC_SUBST(CUPS_CFLAGS)
1563   AC_SUBST(CUPS_LIBS)
1564 fi
1565 AM_CONDITIONAL(HAVE_CUPS, test "x$CUPS_CONFIG" != "xno")
1566
1567 gtk_save_cppflags="$CPPFLAGS"
1568 CPPFLAGS="$CPPFLAGS $GTK_DEP_CFLAGS"
1569                           
1570 AC_CHECK_HEADER(cairo-pdf.h,,AC_MSG_ERROR([
1571 *** Can't find cairo-pdf.h. You must build Cairo with the pdf
1572 *** backend enabled.]))
1573
1574 if test "$os_win32" != "yes"; then
1575   AC_CHECK_HEADER(cairo-ps.h,,AC_MSG_ERROR([
1576 *** Can't find cairo-ps.h. You must build Cairo with the 
1577 *** postscript backend enabled.]))
1578 fi   
1579
1580 CPPFLAGS="$gtk_save_cppflags"
1581      
1582                                 
1583 ################################################################
1584 # Strip -export-dynamic from the link lines of various libraries
1585 ################################################################
1586
1587 #
1588 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1589 #  but this flag is only meaningful for executables. For libraries
1590 #  the effect is undefined; what it causes on Linux is that the
1591 #  export list from -export-symbols-regex is ignored and everything
1592 #  is exported
1593 #
1594 # We are using gmodule-no-export now, but I'm leaving the stripping
1595 # code in place for now, since pango and atk still require gmodule.
1596 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1597 if test -n "$export_dynamic"; then
1598   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1599   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1600   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1601   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1602 fi
1603
1604
1605 ##################################################
1606 # Checks for gtk-doc and docbook-tools
1607 ##################################################
1608
1609 GTK_DOC_CHECK([1.4])
1610
1611 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1612 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1613
1614 AC_ARG_ENABLE(man,
1615               [AC_HELP_STRING([--enable-man],
1616                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1617               enable_man=no)
1618
1619 if test "${enable_man}" != no; then
1620   dnl
1621   dnl Check for xsltproc
1622   dnl
1623   AC_PATH_PROG([XSLTPROC], [xsltproc])
1624   if test -z "$XSLTPROC"; then
1625     enable_man=no
1626   fi
1627
1628   dnl check for DocBook DTD and stylesheets in the local catalog.
1629   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1630      [DocBook XML DTD V4.1.2],,enable_man=no)
1631   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1632      [DocBook XSL Stylesheets],,enable_man=no)
1633 fi
1634
1635 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1636
1637
1638 ##################################################
1639 # Output commands
1640 ##################################################
1641
1642 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1643         outfile=gdkconfig.h-tmp
1644         cat > $outfile <<\_______EOF
1645 /* gdkconfig.h
1646  *
1647  * This is a generated file.  Please modify `configure.in'
1648  */
1649
1650 #ifndef GDKCONFIG_H
1651 #define GDKCONFIG_H
1652
1653 #ifdef __cplusplus
1654 extern "C" {
1655 #endif /* __cplusplus */
1656
1657 _______EOF
1658
1659         cat >>$outfile <<_______EOF
1660 $gdk_windowing
1661 $gdk_wc
1662 _______EOF
1663
1664         cat >>$outfile <<_______EOF
1665
1666 #ifdef __cplusplus
1667 }
1668 #endif /* __cplusplus */
1669
1670 #endif /* GDKCONFIG_H */
1671 _______EOF
1672
1673
1674         if cmp -s $outfile gdk/gdkconfig.h; then
1675           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1676           rm -f $outfile
1677         else
1678           mv $outfile gdk/gdkconfig.h
1679         fi
1680 ],[
1681 if test "x$gdktarget" = "xx11" ; then
1682   gdk_windowing='
1683 #define GDK_WINDOWING_X11'
1684 elif test "x$gdktarget" = "xwin32" ; then
1685   gdk_windowing='
1686 #define GDK_WINDOWING_WIN32'
1687 elif test "x$gdktarget" = "xlinux-fb" ; then
1688   gdk_windowing='
1689 #define GDK_WINDOWING_FB
1690 #define GDK_NATIVE_WINDOW_POINTER'
1691 elif test "x$gdktarget" = "xquartz" ; then
1692   gdk_windowing='
1693 #define GDK_WINDOWING_QUARTZ'
1694 elif test "x$gdktarget" = "xdirectfb" ; then
1695   gdk_windowing='
1696 #define GDK_WINDOWING_DIRECTFB'
1697 fi
1698
1699 if test x$gdk_wchar_h = xyes; then
1700   gdk_wc='
1701 #define GDK_HAVE_WCHAR_H 1'
1702 fi
1703 if test x$gdk_wctype_h = xyes; then
1704   gdk_wc="\$gdk_wc
1705 #define GDK_HAVE_WCTYPE_H 1"
1706 fi
1707 if test x$gdk_working_wctype = xno; then
1708   gdk_wc="\$gdk_wc
1709 #define GDK_HAVE_BROKEN_WCTYPE 1"
1710 fi
1711
1712
1713 ])
1714
1715 AC_CONFIG_FILES([
1716 config.h.win32
1717 gtk-zip.sh
1718 Makefile
1719 gdk-pixbuf-2.0.pc
1720 gdk-2.0.pc
1721 gtk+-2.0.pc
1722 gtk+-unix-print-2.0.pc
1723 gdk-pixbuf-2.0-uninstalled.pc
1724 gdk-2.0-uninstalled.pc
1725 gtk+-2.0-uninstalled.pc
1726 m4macros/Makefile
1727 po/Makefile.in
1728 po-properties/Makefile.in
1729 demos/Makefile
1730 demos/gtk-demo/Makefile
1731 demos/gtk-demo/geninclude.pl
1732 tests/Makefile
1733 docs/Makefile
1734 docs/reference/Makefile
1735 docs/reference/gdk-pixbuf/Makefile
1736 docs/reference/gdk-pixbuf/version.xml
1737 docs/reference/gdk/Makefile
1738 docs/reference/gdk/version.xml
1739 docs/reference/gtk/Makefile
1740 docs/reference/gtk/version.xml
1741 docs/faq/Makefile
1742 docs/tools/Makefile
1743 docs/tutorial/Makefile
1744 gdk-pixbuf/Makefile
1745 gdk-pixbuf/gdk_pixbuf.rc
1746 gdk-pixbuf/gdk-pixbuf-features.h
1747 gdk-pixbuf/pixops/Makefile
1748 gdk/Makefile
1749 gdk/x11/Makefile
1750 gdk/win32/Makefile
1751 gdk/win32/rc/Makefile
1752 gdk/win32/rc/gdk.rc
1753 gdk/linux-fb/Makefile
1754 gdk/quartz/Makefile
1755 gdk/directfb/Makefile
1756 gtk/Makefile
1757 gtk/makefile.msc
1758 gtk/gtkversion.h
1759 gtk/gtk-win32.rc
1760 gtk/theme-bits/Makefile
1761 gtk/xdgmime/Makefile
1762 modules/Makefile
1763 modules/input/Makefile
1764 modules/engines/Makefile
1765 modules/engines/pixbuf/Makefile
1766 modules/engines/ms-windows/Makefile
1767 modules/engines/ms-windows/Theme/Makefile
1768 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
1769 modules/printbackends/Makefile
1770 modules/printbackends/cups/Makefile
1771 modules/printbackends/lpr/Makefile
1772 modules/printbackends/file/Makefile
1773 perf/Makefile
1774 contrib/Makefile
1775 contrib/gdk-pixbuf-xlib/Makefile
1776 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1777 ])
1778
1779 AC_OUTPUT
1780
1781 echo "configuration:
1782         target: $gdktarget"
1783
1784 if test "x$gdktarget" = "xlinux-fb"; then
1785   echo "Warning: The linux-fb GDK target is unmaintained"
1786   echo "         and may not work or even compile"
1787 fi
1788