]> Pileus Git - ~andy/gtk/blob - configure.in
Fix have_base_pc / have_base_x_pc typo.
[~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], [8])
15 m4_define([gtk_micro_version], [1])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [1])
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.4.0])
32
33 # required versions of other packages
34 m4_define([glib_required_version], [2.7.1])
35 m4_define([pango_required_version], [1.9.0])
36 m4_define([atk_required_version], [1.0.1])
37 m4_define([cairo_required_version], [0.9.2])
38
39
40 AC_INIT([gtk+], [gtk_version],
41         [http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2B],
42         [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]] select non-default GDK target],
228         gdktarget=$with_gdktarget)
229
230 AC_SUBST(gdktarget)
231 case $gdktarget in
232   x11|linux-fb|win32) ;;
233   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb 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     deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
374     if test "X$deplib_check_method" = Xnone || 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 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
420 AC_MSG_CHECKING(for sigsetjmp)
421 AC_TRY_LINK([#include <setjmp.h>], [
422 sigjmp_buf env;
423 sigsetjmp(env, 0);
424 ], gtk_ok=yes, gtk_ok=no)
425 AC_MSG_RESULT($gtk_ok)
426 if test "$gtk_ok" = "yes"; then
427   AC_DEFINE(HAVE_SIGSETJMP)
428 fi
429
430 # i18n stuff
431 # TRANSLATORS:  Please note that gtk+ has both po/ and po-properties/
432 # directories.  If you add a new language to ALL_LINGUAS, please make
433 # sure that both po/ and po-properties/ have .po files that correspond
434 # to your language.  If you only add one to po/, the build will break
435 # in po-properties/.
436 ALL_LINGUAS="af am ar az az_IR be bg bn br bs ca cs cy da de el en_CA en_GB es et eu fa fi fr ga gl gu he hi hr hu hy ia id is it ja ko li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta te th tk tr uk uz uz@Latn vi wa xh yi zh_CN zh_TW"
437 AM_GLIB_GNU_GETTEXT
438 LIBS="$LIBS $INTLLIBS"
439 AC_OUTPUT_COMMANDS([case "$CONFIG_FILES" in *po-properties/Makefile.in*)
440         sed -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
441       esac])
442
443 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR)
444
445 dnl The DU4 header files don't provide library prototypes unless 
446 dnl -std1 is given to the native cc.
447 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
448
449 gtk_save_LIBS=$LIBS
450 LIBS="$LIBS -lm"
451 AC_TRY_RUN([#include <math.h>
452              int main (void) { return (log(1) != log(1.)); }],
453      AC_MSG_RESULT(none needed),
454      gtk_save_CFLAGS="$CFLAGS"
455      CFLAGS="$CFLAGS -std1"
456      AC_TRY_RUN([#include <math.h>
457                  int main (void) { return (log(1) != log(1.)); }],
458          AC_MSG_RESULT(-std1),
459          AC_MSG_RESULT()
460          CFLAGS="$gtk_save_CFLAGS"
461          AC_MSG_WARN(
462                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
463          true
464      ),
465      AC_MSG_RESULT(none needed)
466 )
467 LIBS=$gtk_save_LIBS
468
469 AC_MSG_CHECKING(for the BeOS)
470 case $host in
471   *-*-beos*)
472     AC_MSG_RESULT(yes)
473     MATH_LIB=
474   ;;
475   *)
476     AC_MSG_RESULT(no)
477   ;;
478 esac
479
480 #
481 # see bug 162979
482 #
483 AC_MSG_CHECKING(for HP-UX)
484 case $host_os in
485   hpux9* | hpux10* | hpux11*)
486     AC_MSG_RESULT(yes)
487     CFLAGS="$CFLAGS -DHPPEX -DSHMLINK"
488   ;;
489   *)
490     AC_MSG_RESULT(no)
491   ;;
492 esac
493
494 dnl NeXTStep cc seems to need this
495 AC_MSG_CHECKING([for extra flags for POSIX compliance])
496 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
497   AC_MSG_RESULT(none needed),
498   gtk_save_CFLAGS="$CFLAGS"
499   CFLAGS="$CFLAGS -posix"
500   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
501     AC_MSG_RESULT(-posix),
502     AC_MSG_RESULT()
503     CFLAGS="$gtk_save_CFLAGS"
504     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
505
506 #
507 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
508
509
510 GLIB_PACKAGES="gobject-2.0 gmodule-no-export-2.0"
511
512 AM_PATH_GLIB_2_0(glib_required_version, :,
513   AC_MSG_ERROR([
514 *** GLIB glib_required_version or better is required. The latest version of 
515 *** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
516   gobject gmodule-no-export gthread)
517
518 dnl
519 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
520 dnl
521 gtk_save_LIBS=$LIBS
522 LIBS="$LIBS $GLIB_LIBS"
523 AC_CHECK_FUNCS(bind_textdomain_codeset)
524 LIBS=$gtk_save_LIBS
525
526 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
527 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
528 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
529
530 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
531   AC_MSG_CHECKING([for dimm.h])
532   saved_CFLAGS="$CFLAGS"
533   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
534   AC_TRY_COMPILE([/* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
535 #ifdef __GNUC__
536 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
537 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
538 #endif
539 #include <windows.h>
540 #include <objbase.h>
541 #include <imm.h>
542 #ifdef __GNUC__
543 #undef IMEMENUITEMINFOA
544 #undef IMEMENUITEMINFOW
545 #endif
546 #include <dimm.h>
547 ],
548    [],
549    [AC_MSG_RESULT(yes)
550     AC_MSG_CHECKING([for IE55 uuid.lib])
551     if test -f $with_ie55/Lib/uuid.lib ; then
552       AC_MSG_RESULT(yes)
553       have_ie55=yes
554       AC_DEFINE(HAVE_DIMM_H)
555       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
556       AC_SUBST(IE55_UUID_LIB)
557     else
558       AC_MSG_RESULT(no)
559       CFLAGS="$saved_CFLAGS"
560       have_ie55=no
561     fi
562     ],
563    [AC_MSG_RESULT(no)
564     CFLAGS="$saved_CFLAGS"
565     have_ie55=no])
566 fi
567 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
568
569 if test "${with_wintab+set}" = set && test $with_wintab != no; then
570   AC_MSG_CHECKING([for wintab.h])
571   saved_CFLAGS="$CFLAGS"
572   CFLAGS="$CFLAGS -I$with_wintab/include"
573   AC_TRY_COMPILE([#include <windows.h>
574 #include <wintab.h>], 
575    [],
576    [AC_MSG_RESULT(yes)
577     AC_MSG_CHECKING([for wntab32x.lib])
578     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
579       AC_MSG_RESULT(yes)
580       have_wintab=yes
581       AC_DEFINE(HAVE_WINTAB)
582       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
583       AC_SUBST(WINTAB_LIB)
584     else
585       AC_MSG_RESULT(no)
586       CFLAGS="$saved_cflags"
587       have_wintab=no
588     fi
589     ],
590    [AC_MSG_RESULT(no)
591     CFLAGS="$saved_cflags"
592     have_wintab=no])
593 fi
594 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
595
596 saved_cflags="$CFLAGS"
597 saved_ldflags="$LDFLAGS"
598
599
600 # Checks for header files.
601 AC_HEADER_STDC
602
603 # Checks for typedefs, structures, and compiler characteristics.
604 AC_C_CONST
605
606 # Checks for library functions.
607 AC_TYPE_SIGNAL
608 AC_FUNC_MMAP
609
610 AC_CHECK_FUNCS(mallinfo)
611 AC_CHECK_FUNCS(getresuid)
612 AC_TYPE_UID_T
613
614 # Check if <sys/select.h> needs to be included for fd_set
615 AC_MSG_CHECKING([for fd_set])
616 AC_TRY_COMPILE([#include <sys/types.h>],
617         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
618 if test $gtk_ok = yes; then
619     AC_MSG_RESULT([yes, found in sys/types.h])
620 else
621     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
622     if test $gtk_ok = yes; then
623         AC_DEFINE(HAVE_SYS_SELECT_H)
624         AC_MSG_RESULT([yes, found in sys/select.h])
625     else
626         AC_DEFINE(NO_FD_SET)
627         AC_MSG_RESULT(no)
628     fi
629 fi
630
631 # `widechar' tests for gdki18n.h
632 AC_MSG_CHECKING(for wchar.h)
633 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
634 if test $gdk_wchar_h = yes; then
635    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
636 fi
637 AC_MSG_RESULT($gdk_wchar_h)
638
639 # Check for wctype.h (for iswalnum)
640 AC_MSG_CHECKING(for wctype.h)
641 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
642 if test $gdk_wctype_h = yes; then
643    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
644 fi
645 AC_MSG_RESULT($gdk_wctype_h)
646
647 # in Solaris 2.5, `iswalnum' is in -lw
648 GDK_WLIBS=
649 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
650
651 oLIBS="$LIBS"
652 LIBS="$LIBS $GDK_WLIBS"
653 # The following is necessary for Linux libc-5.4.38
654 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
655 AC_TRY_LINK([#include <stdlib.h>],[
656 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
657 #  ifdef HAVE_WCTYPE_H
658 #    include <wctype.h>
659 #  else
660 #    ifdef HAVE_WCHAR_H
661 #      include <wchar.h>
662 #    endif
663 #  endif
664 #else
665 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
666 #endif
667 iswalnum((wchar_t) 0);
668 ], gdk_working_wctype=yes, gdk_working_wctype=no)
669 LIBS="$oLIBS"
670
671 if test $gdk_working_wctype = no; then
672    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
673    GDK_WLIBS=
674 fi
675 AC_MSG_RESULT($gdk_working_wctype)
676 AC_SUBST(GDK_WLIBS)
677
678 # Check for uxtheme.h (for MS-Windows Engine)
679 AC_MSG_CHECKING(for uxtheme.h)
680 AC_TRY_CPP([#include <uxtheme.h>], gtk_uxtheme_h=yes, gtk_uxtheme_h=no)
681 if test $gtk_uxtheme_h = yes; then
682    AC_DEFINE(HAVE_UXTHEME_H,1,[Have uxtheme.h include file])
683 fi
684 AC_MSG_RESULT($gtk_uxtheme_h)
685
686
687 ##################################################
688 # Checks for gdk-pixbuf
689 ##################################################
690
691 dnl ********************************************************
692 dnl * See whether we need to load our modules as .la files *
693 dnl ********************************************************
694
695 use_la_modules=false
696 case $host in
697   *-aix*) use_la_modules=true
698 esac
699
700 if $use_la_modules ; then
701    AC_DEFINE(USE_LA_MODULES, 1, [Whether to load modules via .la files rather than directly])
702 fi
703
704
705 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
706
707 AC_ARG_ENABLE(modules,
708               [AC_HELP_STRING([--disable-modules],
709                               [disable dynamic module loading])])
710
711 dynworks=false
712 deps=
713 if test x$enable_modules = xno; then
714     AC_MSG_RESULT(no)
715 else
716     AC_MSG_RESULT(yes)
717     AC_MSG_CHECKING(whether dynamic modules work)
718     ## for loop is to strip newline 
719     tmp=`$PKG_CONFIG --variable=gmodule_supported gmodule-no-export-2.0`
720     for I in $tmp; do
721         dynworks=$I
722     done
723
724     dnl Now we check to see if our libtool supports shared lib deps
725     dnl (in a rather ugly way even)
726     if $dynworks; then
727         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
728         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
729             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
730             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
731         if test "x$pixbuf_deplibs_check" = "xnone" || \
732            test "x$pixbuf_deplibs_check" = "xunknown" || \
733            test "x$pixbuf_deplibs_check" = "x"; then
734             dynworks=false
735         fi
736     fi
737
738     if $dynworks; then
739         AC_DEFINE(USE_GMODULE)
740         AC_MSG_RESULT(yes)
741     else
742         AC_MSG_RESULT(no)
743     fi
744 fi
745
746 dnl We allow people to disable image loaders explicitely, but if they don't we error
747 dnl out so that people don't accidentally build without them.
748
749 AC_ARG_WITH(libpng,
750             [AC_HELP_STRING([--without-libpng],
751                             [disable PNG loader for gdk-pixbuf])])
752 AC_ARG_WITH(libjpeg,
753             [AC_HELP_STRING([--without-libjpeg],
754                             [disable JPEG loader for gdk-pixbuf])])
755 AC_ARG_WITH(libtiff,
756             [AC_HELP_STRING([--without-libtiff],
757                             [disable TIFF loader for gdk-pixbuf])])
758
759 dnl Test for libtiff
760   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
761     AC_CHECK_LIB(tiff, TIFFReadScanline,
762       [AC_CHECK_HEADER(tiffio.h,
763         TIFF='tiff'; LIBTIFF='-ltiff',
764         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
765       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
766         [AC_CHECK_HEADER(tiffio.h,
767           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
768           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
769         [AC_CHECK_LIB(tiff34, TIFFFlushData,
770           [AC_CHECK_HEADER(tiffio.h,
771             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
772             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
773         AC_MSG_WARN(*** TIFF loader will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
774   fi
775
776   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
777      AC_MSG_ERROR([
778 *** Checks for TIFF loader failed. You can build without it by passing 
779 *** --without-libtiff to configure but some programs using GTK+ may
780 *** not work properly])
781   fi
782
783 dnl Test for libjpeg
784   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
785     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
786       jpeg_ok=yes,
787       jpeg_ok=no
788       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
789     if test "$jpeg_ok" = yes; then
790       AC_MSG_CHECKING([for jpeglib.h])
791       AC_TRY_CPP(
792 [#include <stdio.h>
793 #undef PACKAGE
794 #undef VERSION
795 #undef HAVE_STDLIB_H
796 #include <jpeglib.h>],
797         jpeg_ok=yes,
798         jpeg_ok=no)
799       AC_MSG_RESULT($jpeg_ok)
800       if test "$jpeg_ok" = yes; then
801         LIBJPEG='-ljpeg'
802         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
803           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
804           AC_MSG_WARN(JPEG library does not support progressive saving.))
805       else
806           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
807       fi
808     fi
809   fi
810
811   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
812      AC_MSG_ERROR([
813 *** Checks for JPEG loader failed. You can build without it by passing 
814 *** --without-libjpeg to configure but some programs using GTK+ may
815 *** not work properly])
816   fi
817
818 dnl Test for libpng
819   if test x$with_libpng != xno && test -z "$LIBPNG"; then
820     AC_MSG_CHECKING(for libpng12)
821     if $PKG_CONFIG --exists libpng12 ; then
822         AC_MSG_RESULT(yes)
823         PNG='png'
824         PNG_DEP_CFLAGS_PACKAGES=libpng12
825         LIBPNG=`$PKG_CONFIG --libs libpng12`
826     else
827       AC_MSG_RESULT(no)
828       AC_CHECK_LIB(png, png_read_info,
829         [AC_CHECK_HEADER(png.h,
830           png_ok=yes,
831           png_ok=no)],
832         AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
833       if test "$png_ok" = yes; then
834         AC_MSG_CHECKING([for png_structp in png.h])
835         AC_TRY_COMPILE([#include <png.h>],
836           [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
837           png_ok=yes,
838           png_ok=no)
839         AC_MSG_RESULT($png_ok)
840         if test "$png_ok" = yes; then
841           PNG='png'; LIBPNG='-lpng -lz'
842         else
843           AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
844         fi
845       else
846        AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
847       fi
848     fi
849   fi
850
851   if test x$with_libpng != xno && test -z "$LIBPNG"; then
852      AC_MSG_ERROR([
853 *** Checks for PNG loader failed. You can build without it by passing 
854 *** --without-libpng to configure but many programs using GTK+ will
855 *** not work properly. The PNG loader is also needed if you are compiling
856 *** from CVS.])
857   fi
858
859 AC_SUBST(LIBTIFF)
860 AC_SUBST(LIBJPEG)
861 AC_SUBST(LIBPNG)
862
863 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
864
865 #
866 # Allow building some or all gdk-pixbuf loaders included
867 #
868 AC_MSG_CHECKING(pixbuf loaders to build)
869
870 dnl due to an autoconf bug, commas in the first arg to
871 dnl AC_HELP_STRING cause problems.
872 dnl AC_HELP_STRING([--with-included-loaders=LOADER1 LOADER2 ...],
873 dnl                [build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
874 AC_ARG_WITH(included_loaders,
875 [  --with-included-loaders=LOADER1,LOADER2,...
876                           build the specified loaders into gdk-pixbuf (only
877                           used if module loading disabled)])
878
879 if $dynworks; then 
880         :
881 else
882    ## if the option was specified, leave it; otherwise disable included loaders
883    if test x$with_included_loaders = xno; then
884            with_included_loaders=yes
885    fi
886 fi
887
888 all_loaders="png,bmp,wbmp,gif,ico,ani,jpeg,pnm,ras,tiff,xpm,tga,pcx"
889 included_loaders=""
890 # If no loaders specified, include all
891 if test "x$with_included_loaders" = xyes ; then
892   included_loaders="$all_loaders"
893 else
894   included_loaders="$with_included_loaders"
895 fi
896
897 AC_MSG_RESULT($included_loaders)
898
899 INCLUDED_LOADER_OBJ=
900 INCLUDED_LOADER_DEFINE=
901
902 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
903 for loader in $included_loaders; do
904  if echo "$all_loaders" | egrep "(^|,)$loader(\$|,)" > /dev/null; then
905    :
906  else
907    AC_MSG_ERROR([the specified loader $loader does not exist])
908  fi
909
910  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
911  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
912 done
913 IFS="$gtk_save_ifs"
914 AC_SUBST(INCLUDED_LOADER_OBJ)
915 AC_SUBST(INCLUDED_LOADER_DEFINE)
916
917 AC_HEADER_SYS_WAIT
918
919 AC_TYPE_SIGNAL
920
921 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
922 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
923 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
924
925 if $dynworks ; then
926   STATIC_LIB_DEPS=
927   if echo "$included_loaders" | egrep '(^|,)tiff($|,)' > /dev/null; then
928     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
929   fi
930   if echo "$included_loaders" | egrep '(^|,)jpeg($|,)' > /dev/null; then
931     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
932   fi
933   if echo "$included_loaders" | egrep '(^|,)png($|,)' > /dev/null; then
934     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
935   fi
936 else
937   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
938 fi
939
940 # Checks to see if we should compile in MMX support (there will be
941 # a runtime test when the code is actually run to see if it should
942 # be used - this just checks if we can compile it.)
943 #
944 # This code is partially taken from Mesa
945 #
946 AC_MSG_CHECKING(for x86 platform)
947 case $host_cpu in
948   i386|i486|i586|i686|i786|k6|k7)
949         use_x86_asm=yes
950         ;;
951    *)
952         use_x86_asm=no
953 esac
954 AC_MSG_RESULT($use_x86_asm)
955
956 use_mmx_asm=no
957 if test $use_x86_asm = yes; then
958     save_ac_ext=$ac_ext
959     ac_ext=S
960     
961     AC_MSG_CHECKING(compiler support for MMX)
962     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
963     if AC_TRY_EVAL(ac_compile); then
964         use_mmx_asm=yes
965     fi
966
967     rm -rf conftest*
968
969     ac_ext=$save_ac_ext
970     if test $use_mmx_asm = yes; then
971       AC_DEFINE(USE_MMX)
972       AC_MSG_RESULT(yes)
973     else
974       AC_MSG_RESULT(no)
975     fi
976 fi
977
978 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
979
980 REBUILD_PNGS=
981 if test -z "$LIBPNG"; then
982   REBUILD_PNGS=#
983 fi
984
985 dnl Look for a host system's gdk-pixbuf-csource if we are cross-compiling
986
987 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
988
989 if test $cross_compiling = yes; then
990   AC_PATH_PROG(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource, no)
991   if test x$GDK_PIXBUF_CSOURCE = xno; then
992     REBUILD_PNGS=#
993   fi
994 fi
995
996 if test ! -f $srcdir/gtk/stock-icons/gtkstockpixbufs.h && 
997    test "x$REBUILD_PNGS" = "x#" ; then
998      AC_MSG_ERROR([
999 *** gtkstockpixbufs.h is not in the tree, and cannot be built
1000 *** because you don't have libpng, or (when cross-compiling) you 
1001 *** don't have a prebuilt gdk-pixbuf-csource on the host system.])
1002 fi
1003
1004 AC_SUBST(REBUILD_PNGS)
1005
1006 GDK_PIXBUF_PACKAGES="gmodule-no-export-2.0 gobject-2.0"
1007 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
1008 GDK_PIXBUF_EXTRA_CFLAGS= 
1009 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1010 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $PNG_DEP_CFLAGS_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
1011
1012 AC_SUBST(GDK_PIXBUF_PACKAGES)
1013 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
1014 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
1015 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
1016 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
1017
1018
1019 ########################################
1020 # Windowing system checks
1021 ########################################
1022
1023 GDK_PIXBUF_XLIB_PACKAGES=
1024 GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
1025 GDK_PIXBUF_XLIB_EXTRA_LIBS=
1026         
1027 X_PACKAGES=fontconfig
1028 GDK_EXTRA_LIBS="$GDK_WLIBS"
1029 GDK_EXTRA_CFLAGS=
1030         
1031 # GTK+ uses some X calls, so needs to link against X directly
1032 GTK_DEP_PACKAGES_FOR_X=
1033 GTK_DEP_LIBS_FOR_X=
1034
1035 if test "x$gdktarget" = "xx11"; then
1036   #
1037   # We use fontconfig very peripherally when decoding the default
1038   # settings.
1039   #
1040   if $PKG_CONFIG --exists fontconfig; then : ; else
1041     AC_MSG_ERROR([
1042 *** fontconfig (http://www.fontconfig.org) is required by the X11 backend.])
1043   fi
1044
1045   #
1046   # Check for basic X packages; we use pkg-config if available
1047   #
1048   if $PKG_CONFIG --exists x11 xext; then
1049     have_base_x_pc=true
1050     X_PACKAGES="$X_PACKAGES x11 xext"
1051     x_libs="`pkg-config --libs x11 xext`"
1052     
1053     # Strip out any .la files that pkg-config might give us (this happens
1054     # with -uninstalled.pc files)
1055     x_libs_for_checks=
1056     for I in $x_libs ; do
1057       case $I in 
1058         *.la) ;;
1059         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1060       esac
1061     done
1062     
1063     GDK_PIXBUF_XLIB_PACKAGES="x11"
1064     GTK_PACKAGES_FOR_X="x11"
1065   else
1066     have_base_x_pc=false
1067     AC_PATH_XTRA
1068     if test x$no_x = xyes ; then
1069       AC_MSG_ERROR([X development libraries not found])
1070     fi
1071     
1072     x_cflags="$X_CFLAGS"
1073     x_libs_for_checks="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
1074
1075     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1076     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1077     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
1078   fi
1079
1080   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1081   x_extra_libs=
1082
1083   gtk_save_cppflags="$CPPFLAGS"
1084   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1085
1086   gtk_save_LIBS=$LIBS
1087   LIBS="$x_libs_for_checks $LIBS"
1088   
1089   # Sanity check for the X11 and Xext libraries. While everything we need from
1090   # Xext is optional, the chances a system has *none* of these things is so
1091   # small that we just unconditionally require it.
1092   AC_CHECK_FUNC(XOpenDisplay, :,
1093                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1094   AC_CHECK_FUNC(XextFindDisplay, :,
1095                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1096
1097   # Check for xReply
1098
1099   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1100   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1101       [xReply *rep;],
1102       [AC_MSG_RESULT([no])],
1103       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1104 #include <X11/Xlibint.h>],
1105            [xReply *rep;],
1106            [AC_MSG_RESULT([yes])
1107             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1108                 [Define if <X11/extensions/XIproto.h> needed for xReply])],
1109            [AC_MSG_RESULT([unknown])
1110             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1111
1112   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1113
1114   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1115
1116   # Generic X11R6 check needed for XIM support; we could
1117   # probably use this to replace the above, but we'll
1118   # leave the separate checks for XConvertCase and XInternAtoms 
1119   # for clarity
1120   
1121   have_x11r6=false
1122   AC_CHECK_FUNC(XAddConnectionWatch,
1123       have_x11r6=true)
1124
1125   if $have_x11r6; then
1126     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1127   fi
1128   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1129
1130   # Check for XKB support.
1131
1132   if test "x$enable_xkb" = "xyes"; then
1133         AC_MSG_WARN(XKB support explicitly enabled)
1134         AC_DEFINE(HAVE_XKB)
1135   elif test "x$enable_xkb" = "xmaybe"; then
1136         AC_CHECK_FUNC(XkbQueryExtension,
1137                       AC_DEFINE(HAVE_XKB))
1138   else
1139         AC_MSG_WARN(XKB support explicitly disabled)
1140   fi
1141
1142   # Check for shaped window extension
1143
1144   AC_CHECK_FUNC(XShapeCombineMask,
1145       AC_DEFINE(HAVE_SHAPE_EXT))
1146
1147   # X SYNC check
1148   
1149   AC_CHECK_FUNC(XSyncQueryExtension,
1150       [AC_CHECK_HEADER(X11/extensions/sync.h,
1151           AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
1152           :, [#include <X11/Xlib.h>])])
1153
1154   # Xshm checks
1155
1156   if test "x$enable_shm" = "xyes"; then
1157      # Check for the XShm extension, normally in Xext
1158      AC_CHECK_FUNC(XShmAttach,
1159         :,
1160         # On AIX, it is in XextSam instead
1161         [AC_CHECK_LIB(XextSam, XShmAttach, 
1162             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1163   fi    
1164
1165   if test "x$enable_shm" = "xyes"; then
1166     # Check for shared memory
1167     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1168     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1169
1170     # Check for the X shared memory extension header file
1171     have_xshm=no 
1172     AC_MSG_CHECKING(X11/extensions/XShm.h)
1173     if test "x$no_xext_lib" = "xyes"; then
1174       :
1175     else
1176       gtk_save_CFLAGS="$CFLAGS"
1177       CFLAGS="$CFLAGS $x_cflags"
1178       AC_TRY_COMPILE([
1179 #include <stdlib.h>
1180 #include <sys/types.h>
1181 #include <sys/ipc.h>
1182 #include <sys/shm.h>
1183 #include <X11/Xlib.h>
1184 #include <X11/Xutil.h>
1185 #include <X11/extensions/XShm.h>
1186 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1187       CFLAGS="$gtk_save_CFLAGS"
1188     fi
1189     AC_MSG_RESULT($have_xshm)
1190     if test $have_xshm = yes ; then
1191       AC_DEFINE(HAVE_XSHM_H)
1192     fi
1193   fi
1194
1195   # Check for Xinerama extension (Solaris impl or Xfree impl)
1196
1197   gtk_save_cppflags="$CPPFLAGS"
1198   CPPFLAGS="$CPPFLAGS $x_cflags"
1199   
1200   case "$host" in
1201       *-*-solaris*)
1202           # Check for solaris
1203           AC_MSG_CHECKING(for Xinerama support on Solaris)
1204           
1205           have_solaris_xinerama=false
1206           AC_CHECK_FUNC(XineramaGetInfo,
1207               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1208                   [have_solaris_xinerama=true], :,
1209                   [#include <X11/Xlib.h>])])
1210                 
1211           if $have_solaris_xinerama ; then
1212             AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1213             AC_DEFINE(HAVE_XINERAMA) 
1214             AC_MSG_RESULT(yes)
1215           else
1216             AC_MSG_RESULT(no)
1217           fi
1218           ;;
1219       *)
1220           # Check for XFree
1221           AC_MSG_CHECKING(for Xinerama support on XFree86)
1222           
1223           have_xfree_xinerama=false
1224           if $PKG_CONFIG --exists xinerama ; then
1225              have_xfree_xinerama=true
1226              X_PACKAGES="$X_PACKAGES xinerama"
1227           else    
1228               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1229                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1230                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1231                       have_xfree_xinerama=true], :
1232                       [#include <X11/Xlib.h>])])
1233           fi
1234
1235           if $have_xfree_xinerama ; then
1236             AC_DEFINE(HAVE_XFREE_XINERAMA)
1237             AC_DEFINE(HAVE_XINERAMA) 
1238             AC_MSG_RESULT(yes)
1239          else
1240             AC_MSG_RESULT(no)
1241          fi
1242          ;;
1243   esac
1244
1245   # set up things for XInput
1246
1247   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1248     AC_DEFINE(XINPUT_XFREE)
1249     
1250     if $PKG_CONFIG --exists xi ; then
1251       X_PACKAGES="$X_PACKAGES xi"
1252     else
1253       GTK_ADD_LIB(x_extra_libs, Xi)
1254     fi
1255   else
1256     AC_DEFINE(XINPUT_NONE)
1257   fi
1258
1259   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1260
1261   # Check for the RANDR extension
1262
1263   have_randr=false
1264   if $PKG_CONFIG --exists xrandr ; then
1265     have_randr=true
1266     X_PACKAGES="$X_PACKAGES xrandr"
1267   else    
1268     AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1269        [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1270           # RANDR requires RENDER
1271           [have_randr=true
1272           GTK_ADD_LIB(x_extra_libs, Xrender)
1273           GTK_ADD_LIB(x_extra_libs, Xrandr)],
1274           :, [#include <X11/Xlib.h>])])
1275   fi
1276
1277   if $have_randr ; then
1278      AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
1279   fi
1280        
1281   # Checks for Xcursor library
1282   
1283   if $PKG_CONFIG --exists xcursor ; then
1284     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1285     
1286     X_PACKAGES="$X_PACKAGES xcursor"
1287   fi
1288
1289   # Checks for XFixes extension
1290   
1291   if $PKG_CONFIG --exists xfixes ; then
1292     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1293     
1294     X_PACKAGES="$X_PACKAGES xfixes"
1295   fi
1296
1297   if $have_base_x_pc ; then
1298     GDK_EXTRA_LIBS="$x_extra_libs"
1299   else
1300     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lX11 $GDK_EXTRA_LIBS"
1301   fi
1302
1303   CPPFLAGS="$gtk_save_cppflags"
1304   LIBS="$gtk_save_libs"
1305
1306   AM_CONDITIONAL(USE_X11, true)
1307 else
1308   AM_CONDITIONAL(XINPUT_XFREE, false)
1309   AM_CONDITIONAL(USE_X11, false)
1310   AM_CONDITIONAL(HAVE_X11R6, false)
1311 fi
1312
1313 if test "x$gdktarget" = "xwin32"; then
1314   # We start off with the libraries from Pango
1315
1316   if test x$have_wintab = xyes; then
1317     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1318     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1319   fi
1320
1321   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1322   AM_CONDITIONAL(USE_WIN32, true)
1323 else
1324   AM_CONDITIONAL(USE_WIN32, false)
1325 fi
1326
1327 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1328 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"
1329
1330 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1331 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1332 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1333 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1334 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1335
1336 if test "x$gdktarget" = "xlinux-fb"; then
1337   if test x$enable_shadowfb = xyes ; then
1338     AC_DEFINE(ENABLE_SHADOW_FB)
1339   fi
1340
1341   if test x$enable_fbmanager = xyes ; then
1342     AC_DEFINE(ENABLE_FB_MANAGER)
1343     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1344   else
1345     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1346   fi
1347   
1348   AM_CONDITIONAL(USE_LINUX_FB, true)
1349 else
1350   AM_CONDITIONAL(USE_LINUX_FB, false)
1351   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1352 fi
1353
1354 # Check for Pango flags
1355
1356 if test "x$gdktarget" = "xwin32"; then
1357         PANGO_PACKAGES="pangowin32 pangocairo"
1358 else
1359         PANGO_PACKAGES="pango pangocairo"
1360 fi
1361
1362 AC_MSG_CHECKING(Pango flags)
1363 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1364         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1365         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1366
1367         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1368 else
1369         AC_MSG_ERROR([
1370 *** Pango not found. Pango built with Cairo support is required
1371 *** to build GTK+. See http://www.pango.org for Pango information.
1372 ])
1373 fi
1374
1375 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1376
1377 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1378         :
1379 else
1380         gtk_save_LIBS="$LIBS"
1381         LIBS="$PANGO_LIBS $LIBS"
1382         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1383 *** Can't link to Pango. Pango is required to build
1384 *** GTK+. For more information see http://www.pango.org]))
1385         LIBS="$gtk_save_LIBS"
1386 fi
1387
1388 CFLAGS="$saved_cflags"
1389 LDFLAGS="$saved_ldflags"
1390
1391 GDK_PACKAGES="$PANGO_PACKAGES $X_PACKAGES"
1392 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1393 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $X_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1394
1395 #
1396 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1397 # into the pkg-config files
1398 #
1399 if test $enable_explicit_deps != yes ; then
1400   GDK_PACKAGES="$PANGO_PACKAGES"
1401   GDK_EXTRA_LIBS=
1402 fi
1403
1404 AC_SUBST(GDK_PACKAGES)
1405 AC_SUBST(GDK_EXTRA_LIBS)
1406 AC_SUBST(GDK_EXTRA_CFLAGS)
1407 AC_SUBST(GDK_DEP_LIBS)
1408 AC_SUBST(GDK_DEP_CFLAGS)
1409
1410
1411 ########################################
1412 # Check for Accessibility Toolkit flags
1413 ########################################
1414
1415 ATK_PACKAGES=atk
1416 AC_MSG_CHECKING(ATK flags)
1417 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1418         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1419         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1420
1421         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1422 else
1423         AC_MSG_ERROR([
1424 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1425 *** to build GTK+.
1426 ])
1427 fi
1428
1429 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1430         :
1431 else
1432         gtk_save_LIBS="$LIBS"
1433         LIBS="$ATK_LIBS $LIBS"
1434         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1435                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1436                 *** to build GTK+]))
1437         LIBS="$gtk_save_LIBS"
1438 fi
1439
1440 GTK_PACKAGES="atk cairo"
1441 GTK_EXTRA_LIBS=
1442 GTK_EXTRA_CFLAGS= 
1443 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"
1444 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"
1445
1446 if test x"$os_win32" = xyes; then
1447   GTK_EXTRA_CFLAGS="$msnative_struct"
1448 fi
1449
1450 AC_SUBST(GTK_PACKAGES)
1451 AC_SUBST(GTK_EXTRA_LIBS)
1452 AC_SUBST(GTK_EXTRA_CFLAGS)
1453 AC_SUBST(GTK_DEP_LIBS)
1454 AC_SUBST(GTK_DEP_CFLAGS)
1455
1456
1457 AC_SUBST(GTK_DEBUG_FLAGS)
1458 AC_SUBST(GTK_XIM_FLAGS)
1459
1460 ################################################################
1461 # Strip -export-dynamic from the link lines of various libraries
1462 ################################################################
1463
1464 #
1465 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1466 #  but this flag is only meaningful for executables. For libraries
1467 #  the effect is undefined; what it causes on Linux is that the
1468 #  export list from -export-symbols-regex is ignored and everything
1469 #  is exported
1470 #
1471 # We are using gmodule-no-export now, but I'm leaving the stripping
1472 # code in place for now, since pango and atk still require gmodule.
1473 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1474 if test -n "$export_dynamic"; then
1475   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1476   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1477   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1478   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1479 fi
1480
1481
1482 ##################################################
1483 # Checks for gtk-doc and docbook-tools
1484 ##################################################
1485
1486 GTK_DOC_CHECK([1.4])
1487
1488 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1489 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1490
1491 AC_ARG_ENABLE(man,
1492               [AC_HELP_STRING([--enable-man],
1493                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1494               enable_man=no)
1495
1496 if test "${enable_man}" != no; then
1497   dnl
1498   dnl Check for xsltproc
1499   dnl
1500   AC_PATH_PROG([XSLTPROC], [xsltproc])
1501   if test -z "$XSLTPROC"; then
1502     enable_man=no
1503   fi
1504
1505   dnl check for DocBook DTD and stylesheets in the local catalog.
1506   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1507      [DocBook XML DTD V4.1.2],,enable_man=no)
1508   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1509      [DocBook XSL Stylesheets],,enable_man=no)
1510 fi
1511
1512 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1513
1514
1515 ##################################################
1516 # Output commands
1517 ##################################################
1518
1519 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1520         outfile=gdkconfig.h-tmp
1521         cat > $outfile <<\_______EOF
1522 /* gdkconfig.h
1523  *
1524  * This is a generated file.  Please modify `configure.in'
1525  */
1526
1527 #ifndef GDKCONFIG_H
1528 #define GDKCONFIG_H
1529
1530 #ifdef __cplusplus
1531 extern "C" {
1532 #endif /* __cplusplus */
1533
1534 _______EOF
1535
1536         cat >>$outfile <<_______EOF
1537 $gdk_windowing
1538 $gdk_wc
1539 _______EOF
1540
1541         cat >>$outfile <<_______EOF
1542
1543 #ifdef __cplusplus
1544 }
1545 #endif /* __cplusplus */
1546
1547 #endif /* GDKCONFIG_H */
1548 _______EOF
1549
1550
1551         if cmp -s $outfile gdk/gdkconfig.h; then
1552           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1553           rm -f $outfile
1554         else
1555           mv $outfile gdk/gdkconfig.h
1556         fi
1557 ],[
1558 if test "x$gdktarget" = "xx11" ; then
1559   gdk_windowing='
1560 #define GDK_WINDOWING_X11'
1561 elif test "x$gdktarget" = "xwin32" ; then
1562   gdk_windowing='
1563 #define GDK_WINDOWING_WIN32'
1564 elif test "x$gdktarget" = "xlinux-fb" ; then
1565   gdk_windowing='
1566 #define GDK_WINDOWING_FB
1567 #define GDK_NATIVE_WINDOW_POINTER'
1568 fi
1569
1570 if test x$gdk_wchar_h = xyes; then
1571   gdk_wc='
1572 #define GDK_HAVE_WCHAR_H 1'
1573 fi
1574 if test x$gdk_wctype_h = xyes; then
1575   gdk_wc="\$gdk_wc
1576 #define GDK_HAVE_WCTYPE_H 1"
1577 fi
1578 if test x$gdk_working_wctype = xno; then
1579   gdk_wc="\$gdk_wc
1580 #define GDK_HAVE_BROKEN_WCTYPE 1"
1581 fi
1582
1583
1584 ])
1585
1586 AC_CONFIG_FILES([
1587 config.h.win32
1588 gtk-zip.sh
1589 Makefile
1590 gdk-pixbuf-2.0.pc
1591 gdk-2.0.pc
1592 gtk+-2.0.pc
1593 gdk-pixbuf-2.0-uninstalled.pc
1594 gdk-2.0-uninstalled.pc
1595 gtk+-2.0-uninstalled.pc
1596 m4macros/Makefile
1597 po/Makefile.in
1598 po-properties/Makefile.in
1599 demos/Makefile
1600 demos/gtk-demo/Makefile
1601 demos/gtk-demo/geninclude.pl
1602 tests/Makefile
1603 docs/Makefile
1604 docs/reference/Makefile
1605 docs/reference/gdk-pixbuf/Makefile
1606 docs/reference/gdk-pixbuf/version.xml
1607 docs/reference/gdk/Makefile
1608 docs/reference/gdk/version.xml
1609 docs/reference/gtk/Makefile
1610 docs/reference/gtk/version.xml
1611 docs/faq/Makefile
1612 docs/tools/Makefile
1613 docs/tutorial/Makefile
1614 gdk-pixbuf/Makefile
1615 gdk-pixbuf/gdk_pixbuf.rc
1616 gdk-pixbuf/gdk-pixbuf-features.h
1617 gdk-pixbuf/pixops/Makefile
1618 gdk/Makefile
1619 gdk/x11/Makefile
1620 gdk/win32/Makefile
1621 gdk/win32/rc/Makefile
1622 gdk/win32/rc/gdk.rc
1623 gdk/linux-fb/Makefile
1624 gtk/Makefile
1625 gtk/makefile.msc
1626 gtk/gtkversion.h
1627 gtk/gtk-win32.rc
1628 gtk/stock-icons/Makefile
1629 gtk/theme-bits/Makefile
1630 gtk/xdgmime/Makefile
1631 modules/Makefile
1632 modules/input/Makefile
1633 modules/engines/Makefile
1634 modules/engines/pixbuf/Makefile
1635 modules/engines/ms-windows/Makefile
1636 modules/engines/ms-windows/Theme/Makefile
1637 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
1638 perf/Makefile
1639 contrib/Makefile
1640 contrib/gdk-pixbuf-xlib/Makefile
1641 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1642 ])
1643
1644 AC_OUTPUT
1645
1646 echo "configuration:
1647         target: $gdktarget"
1648
1649 if test "x$gdktarget" = "xlinux-fb"; then
1650   echo "Warning: The linux-fb GDK target is unmaintained"
1651   echo "         and may not work or even compile"
1652 fi
1653