]> Pileus Git - ~andy/gtk/blob - configure.in
Added Tatar translation by Albert Fazlí
[~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], [9])
15 m4_define([gtk_micro_version], [0])
16 m4_define([gtk_version],
17           [gtk_major_version.gtk_minor_version.gtk_micro_version])
18 m4_define([gtk_interface_age], [0])
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.9.0])
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 ku li lt lv mi mk ml mn mr ms nb ne nl nn no nso pa pl pt pt_BR ro ru rw sk sl sq sr sr@ije sr@Latn sv ta te th tk tr tt 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/gtkbuiltincache.h && 
997    test "x$REBUILD_PNGS" = "x#" ; then
998      AC_MSG_ERROR([
999 *** gtkbuiltincache.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     X_CFLAGS="`pkg-config --cflags x11 xext`"
1053     
1054     # Strip out any .la files that pkg-config might give us (this happens
1055     # with -uninstalled.pc files)
1056     x_libs_for_checks=
1057     for I in $x_libs ; do
1058       case $I in 
1059         *.la) ;;
1060         *) x_libs_for_checks="$x_libs_for_checks $I" ;;
1061       esac
1062     done
1063     
1064     GDK_PIXBUF_XLIB_PACKAGES="x11"
1065     GTK_PACKAGES_FOR_X="x11"
1066   else
1067     have_base_x_pc=false
1068     AC_PATH_XTRA
1069     if test x$no_x = xyes ; then
1070       AC_MSG_ERROR([X development libraries not found])
1071     fi
1072     
1073     x_cflags="$X_CFLAGS"
1074     x_libs_for_checks="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS"
1075
1076     GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
1077     GDK_PIXBUF_XLIB_EXTRA_LIBS="$X_LIBS -lX11 $X_EXTRA_LIBS"
1078     GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS"
1079   fi
1080
1081   # Extra libraries found during checks (-lXinerama, etc), not from pkg-config.
1082   x_extra_libs=
1083
1084   gtk_save_cppflags="$CPPFLAGS"
1085   CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1086
1087   gtk_save_LIBS=$LIBS
1088   LIBS="$x_libs_for_checks $LIBS"
1089   
1090   # Sanity check for the X11 and Xext libraries. While everything we need from
1091   # Xext is optional, the chances a system has *none* of these things is so
1092   # small that we just unconditionally require it.
1093   AC_CHECK_FUNC(XOpenDisplay, :,
1094                 AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]))
1095   AC_CHECK_FUNC(XextFindDisplay, :,
1096                 AC_MSG_ERROR([*** libXext not found. Check 'config.log' for more details.]))
1097
1098   # Check for xReply
1099
1100   AC_MSG_CHECKING([if <X11/extensions/XIproto.h> is needed for xReply])
1101   AC_TRY_COMPILE([#include <X11/Xlibint.h>],
1102       [xReply *rep;],
1103       [AC_MSG_RESULT([no])],
1104       [AC_TRY_COMPILE([#include <X11/extensions/XIproto.h>
1105 #include <X11/Xlibint.h>],
1106            [xReply *rep;],
1107            [AC_MSG_RESULT([yes])
1108             AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
1109                 [Define if <X11/extensions/XIproto.h> needed for xReply])],
1110            [AC_MSG_RESULT([unknown])
1111             AC_MSG_ERROR([xReply type unavailable. X11 is too old])])])
1112
1113   # Check for XConvertCase, XInternAtoms (X11R6 specific)
1114
1115   AC_CHECK_FUNCS(XConvertCase XInternAtoms)
1116
1117   # Generic X11R6 check needed for XIM support; we could
1118   # probably use this to replace the above, but we'll
1119   # leave the separate checks for XConvertCase and XInternAtoms 
1120   # for clarity
1121   
1122   have_x11r6=false
1123   AC_CHECK_FUNC(XAddConnectionWatch,
1124       have_x11r6=true)
1125
1126   if $have_x11r6; then
1127     AC_DEFINE(HAVE_X11R6,1,[Define if we have X11R6])
1128   fi
1129   AM_CONDITIONAL(HAVE_X11R6, $have_x11r6)
1130
1131   # Check for XKB support.
1132
1133   if test "x$enable_xkb" = "xyes"; then
1134         AC_MSG_WARN(XKB support explicitly enabled)
1135         AC_DEFINE(HAVE_XKB)
1136   elif test "x$enable_xkb" = "xmaybe"; then
1137         AC_CHECK_FUNC(XkbQueryExtension,
1138                       AC_DEFINE(HAVE_XKB))
1139   else
1140         AC_MSG_WARN(XKB support explicitly disabled)
1141   fi
1142
1143   # Check for shaped window extension
1144
1145   AC_CHECK_FUNC(XShapeCombineMask,
1146       AC_DEFINE(HAVE_SHAPE_EXT))
1147
1148   # X SYNC check
1149   
1150   AC_CHECK_FUNC(XSyncQueryExtension,
1151       [AC_CHECK_HEADER(X11/extensions/sync.h,
1152           AC_DEFINE(HAVE_XSYNC, 1, Have the SYNC extension library),
1153           :, [#include <X11/Xlib.h>])])
1154
1155   # Xshm checks
1156
1157   if test "x$enable_shm" = "xyes"; then
1158      # Check for the XShm extension, normally in Xext
1159      AC_CHECK_FUNC(XShmAttach,
1160         :,
1161         # On AIX, it is in XextSam instead
1162         [AC_CHECK_LIB(XextSam, XShmAttach, 
1163             [GTK_ADD_LIB(x_extra_libs,XextSam)])])
1164   fi    
1165
1166   if test "x$enable_shm" = "xyes"; then
1167     # Check for shared memory
1168     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1169     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1170
1171     # Check for the X shared memory extension header file
1172     have_xshm=no 
1173     AC_MSG_CHECKING(X11/extensions/XShm.h)
1174     if test "x$no_xext_lib" = "xyes"; then
1175       :
1176     else
1177       gtk_save_CFLAGS="$CFLAGS"
1178       CFLAGS="$CFLAGS $x_cflags"
1179       AC_TRY_COMPILE([
1180 #include <stdlib.h>
1181 #include <sys/types.h>
1182 #include <sys/ipc.h>
1183 #include <sys/shm.h>
1184 #include <X11/Xlib.h>
1185 #include <X11/Xutil.h>
1186 #include <X11/extensions/XShm.h>
1187 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1188       CFLAGS="$gtk_save_CFLAGS"
1189     fi
1190     AC_MSG_RESULT($have_xshm)
1191     if test $have_xshm = yes ; then
1192       AC_DEFINE(HAVE_XSHM_H)
1193     fi
1194   fi
1195
1196   # Check for Xinerama extension (Solaris impl or Xfree impl)
1197
1198   gtk_save_cppflags="$CPPFLAGS"
1199   CPPFLAGS="$CPPFLAGS $x_cflags"
1200   
1201   case "$host" in
1202       *-*-solaris*)
1203           # Check for solaris
1204           AC_MSG_CHECKING(for Xinerama support on Solaris)
1205           
1206           have_solaris_xinerama=false
1207           AC_CHECK_FUNC(XineramaGetInfo,
1208               [AC_CHECK_HEADER(X11/extensions/xinerama.h,
1209                   [have_solaris_xinerama=true], :,
1210                   [#include <X11/Xlib.h>])])
1211                 
1212           if $have_solaris_xinerama ; then
1213             AC_DEFINE(HAVE_SOLARIS_XINERAMA)
1214             AC_DEFINE(HAVE_XINERAMA) 
1215             AC_MSG_RESULT(yes)
1216           else
1217             AC_MSG_RESULT(no)
1218           fi
1219           ;;
1220       *)
1221           # Check for XFree
1222           AC_MSG_CHECKING(for Xinerama support on XFree86)
1223           
1224           have_xfree_xinerama=false
1225           if $PKG_CONFIG --exists xinerama ; then
1226              have_xfree_xinerama=true
1227              X_PACKAGES="$X_PACKAGES xinerama"
1228           else    
1229               AC_CHECK_LIB(Xinerama, XineramaQueryExtension,
1230                   [AC_CHECK_HEADER(X11/extensions/Xinerama.h, 
1231                       [GTK_ADD_LIB(x_extra_libs,Xinerama)
1232                       have_xfree_xinerama=true], :
1233                       [#include <X11/Xlib.h>])])
1234           fi
1235
1236           if $have_xfree_xinerama ; then
1237             AC_DEFINE(HAVE_XFREE_XINERAMA)
1238             AC_DEFINE(HAVE_XINERAMA) 
1239             AC_MSG_RESULT(yes)
1240          else
1241             AC_MSG_RESULT(no)
1242          fi
1243          ;;
1244   esac
1245
1246   # set up things for XInput
1247
1248   if test "x$with_xinput" = "xxfree" || test "x$with_xinput" = "xyes"; then
1249     AC_DEFINE(XINPUT_XFREE)
1250     
1251     if $PKG_CONFIG --exists xi ; then
1252       X_PACKAGES="$X_PACKAGES xi"
1253     else
1254       GTK_ADD_LIB(x_extra_libs, Xi)
1255     fi
1256   else
1257     AC_DEFINE(XINPUT_NONE)
1258   fi
1259
1260   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree || test x$with_xinput = xyes)
1261
1262   # Check for the RANDR extension
1263
1264   have_randr=false
1265   if $PKG_CONFIG --exists xrandr ; then
1266     have_randr=true
1267     X_PACKAGES="$X_PACKAGES xrandr"
1268   else    
1269     AC_CHECK_LIB(Xrandr, XRRUpdateConfiguration,
1270        [AC_CHECK_HEADER(X11/extensions/Xrandr.h,
1271           # RANDR requires RENDER
1272           [have_randr=true
1273           GTK_ADD_LIB(x_extra_libs, Xrender)
1274           GTK_ADD_LIB(x_extra_libs, Xrandr)],
1275           :, [#include <X11/Xlib.h>])])
1276   fi
1277
1278   if $have_randr ; then
1279      AC_DEFINE(HAVE_RANDR, 1, Have the Xrandr extension library)
1280   fi
1281        
1282   # Checks for Xcursor library
1283   
1284   if $PKG_CONFIG --exists xcursor ; then
1285     AC_DEFINE(HAVE_XCURSOR, 1, Have the Xcursor library)
1286     
1287     X_PACKAGES="$X_PACKAGES xcursor"
1288   fi
1289
1290   # Checks for XFixes extension
1291   
1292   if $PKG_CONFIG --exists xfixes ; then
1293     AC_DEFINE(HAVE_XFIXES, 1, Have the XFIXES X extension)
1294     
1295     X_PACKAGES="$X_PACKAGES xfixes"
1296   fi
1297
1298   if $have_base_x_pc ; then
1299     GDK_EXTRA_LIBS="$x_extra_libs"
1300   else
1301     GDK_EXTRA_LIBS="$X_LIBS $x_extra_libs -lXext -lX11 $GDK_EXTRA_LIBS"
1302   fi
1303
1304   CPPFLAGS="$gtk_save_cppflags"
1305   LIBS="$gtk_save_libs"
1306
1307   AM_CONDITIONAL(USE_X11, true)
1308 else
1309   AM_CONDITIONAL(XINPUT_XFREE, false)
1310   AM_CONDITIONAL(USE_X11, false)
1311   AM_CONDITIONAL(HAVE_X11R6, false)
1312 fi
1313
1314 if test "x$gdktarget" = "xwin32"; then
1315   # We start off with the libraries from Pango
1316
1317   if test x$have_wintab = xyes; then
1318     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1319     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1320   fi
1321
1322   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -Wl,-luuid"
1323   AM_CONDITIONAL(USE_WIN32, true)
1324 else
1325   AM_CONDITIONAL(USE_WIN32, false)
1326 fi
1327
1328 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1329 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"
1330
1331 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1332 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1333 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1334 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1335 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1336
1337 if test "x$gdktarget" = "xlinux-fb"; then
1338   if test x$enable_shadowfb = xyes ; then
1339     AC_DEFINE(ENABLE_SHADOW_FB)
1340   fi
1341
1342   if test x$enable_fbmanager = xyes ; then
1343     AC_DEFINE(ENABLE_FB_MANAGER)
1344     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1345   else
1346     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1347   fi
1348   
1349   AM_CONDITIONAL(USE_LINUX_FB, true)
1350 else
1351   AM_CONDITIONAL(USE_LINUX_FB, false)
1352   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1353 fi
1354
1355 # Check for Pango flags
1356
1357 if test "x$gdktarget" = "xwin32"; then
1358         PANGO_PACKAGES="pangowin32 pangocairo"
1359 else
1360         PANGO_PACKAGES="pango pangocairo"
1361 fi
1362
1363 AC_MSG_CHECKING(Pango flags)
1364 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1365         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1366         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1367
1368         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1369 else
1370         AC_MSG_ERROR([
1371 *** Pango not found. Pango built with Cairo support is required
1372 *** to build GTK+. See http://www.pango.org for Pango information.
1373 ])
1374 fi
1375
1376 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1377
1378 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1379         :
1380 else
1381         gtk_save_LIBS="$LIBS"
1382         LIBS="$PANGO_LIBS $LIBS"
1383         AC_TRY_LINK_FUNC(pango_context_new, :, AC_MSG_ERROR([
1384 *** Can't link to Pango. Pango is required to build
1385 *** GTK+. For more information see http://www.pango.org]))
1386         LIBS="$gtk_save_LIBS"
1387 fi
1388
1389 CFLAGS="$saved_cflags"
1390 LDFLAGS="$saved_ldflags"
1391
1392 GDK_PACKAGES="$PANGO_PACKAGES"
1393 if test "x$gdktarget" = "xx11"; then
1394   GDK_PACKAGES="$GDK_PACKAGES $X_PACKAGES"
1395 fi
1396 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1397 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1398
1399 #
1400 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1401 # into the pkg-config files
1402 #
1403 if test $enable_explicit_deps != yes ; then
1404   GDK_PACKAGES="$PANGO_PACKAGES"
1405   GDK_EXTRA_LIBS=
1406 fi
1407
1408 AC_SUBST(GDK_PACKAGES)
1409 AC_SUBST(GDK_EXTRA_LIBS)
1410 AC_SUBST(GDK_EXTRA_CFLAGS)
1411 AC_SUBST(GDK_DEP_LIBS)
1412 AC_SUBST(GDK_DEP_CFLAGS)
1413
1414
1415 ########################################
1416 # Check for Accessibility Toolkit flags
1417 ########################################
1418
1419 ATK_PACKAGES=atk
1420 AC_MSG_CHECKING(ATK flags)
1421 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1422         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1423         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1424
1425         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1426 else
1427         AC_MSG_ERROR([
1428 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1429 *** to build GTK+.
1430 ])
1431 fi
1432
1433 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1434         :
1435 else
1436         gtk_save_LIBS="$LIBS"
1437         LIBS="$ATK_LIBS $LIBS"
1438         AC_TRY_LINK_FUNC(atk_object_get_type, : , AC_MSG_ERROR([
1439                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1440                 *** to build GTK+]))
1441         LIBS="$gtk_save_LIBS"
1442 fi
1443
1444 GTK_PACKAGES="atk cairo"
1445 GTK_EXTRA_LIBS=
1446 GTK_EXTRA_CFLAGS= 
1447 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"
1448 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"
1449
1450 if test x"$os_win32" = xyes; then
1451   GTK_EXTRA_CFLAGS="$msnative_struct"
1452 fi
1453
1454 AC_SUBST(GTK_PACKAGES)
1455 AC_SUBST(GTK_EXTRA_LIBS)
1456 AC_SUBST(GTK_EXTRA_CFLAGS)
1457 AC_SUBST(GTK_DEP_LIBS)
1458 AC_SUBST(GTK_DEP_CFLAGS)
1459
1460
1461 AC_SUBST(GTK_DEBUG_FLAGS)
1462 AC_SUBST(GTK_XIM_FLAGS)
1463
1464 ################################################################
1465 # Strip -export-dynamic from the link lines of various libraries
1466 ################################################################
1467
1468 #
1469 # pkg-config --libs gmodule includes the "export_dynamic" flag,
1470 #  but this flag is only meaningful for executables. For libraries
1471 #  the effect is undefined; what it causes on Linux is that the
1472 #  export list from -export-symbols-regex is ignored and everything
1473 #  is exported
1474 #
1475 # We are using gmodule-no-export now, but I'm leaving the stripping
1476 # code in place for now, since pango and atk still require gmodule.
1477 export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
1478 if test -n "$export_dynamic"; then
1479   GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"`
1480   GDK_PIXBUF_XLIB_DEP_LIBS=`echo $GDK_PIXBUF_XLIB_DEP_LIBS | sed -e "s/$export_dynamic//"`
1481   GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1482   GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"`
1483 fi
1484
1485
1486 ##################################################
1487 # Checks for gtk-doc and docbook-tools
1488 ##################################################
1489
1490 GTK_DOC_CHECK([1.4])
1491
1492 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1493 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1494
1495 AC_ARG_ENABLE(man,
1496               [AC_HELP_STRING([--enable-man],
1497                               [regenerate man pages from Docbook [default=no]])],enable_man=yes,
1498               enable_man=no)
1499
1500 if test "${enable_man}" != no; then
1501   dnl
1502   dnl Check for xsltproc
1503   dnl
1504   AC_PATH_PROG([XSLTPROC], [xsltproc])
1505   if test -z "$XSLTPROC"; then
1506     enable_man=no
1507   fi
1508
1509   dnl check for DocBook DTD and stylesheets in the local catalog.
1510   JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
1511      [DocBook XML DTD V4.1.2],,enable_man=no)
1512   JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
1513      [DocBook XSL Stylesheets],,enable_man=no)
1514 fi
1515
1516 AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
1517
1518
1519 ##################################################
1520 # Output commands
1521 ##################################################
1522
1523 AC_CONFIG_COMMANDS([gdk/gdkconfig.h], [
1524         outfile=gdkconfig.h-tmp
1525         cat > $outfile <<\_______EOF
1526 /* gdkconfig.h
1527  *
1528  * This is a generated file.  Please modify `configure.in'
1529  */
1530
1531 #ifndef GDKCONFIG_H
1532 #define GDKCONFIG_H
1533
1534 #ifdef __cplusplus
1535 extern "C" {
1536 #endif /* __cplusplus */
1537
1538 _______EOF
1539
1540         cat >>$outfile <<_______EOF
1541 $gdk_windowing
1542 $gdk_wc
1543 _______EOF
1544
1545         cat >>$outfile <<_______EOF
1546
1547 #ifdef __cplusplus
1548 }
1549 #endif /* __cplusplus */
1550
1551 #endif /* GDKCONFIG_H */
1552 _______EOF
1553
1554
1555         if cmp -s $outfile gdk/gdkconfig.h; then
1556           AC_MSG_NOTICE([gdk/gdkconfig.h is unchanged])
1557           rm -f $outfile
1558         else
1559           mv $outfile gdk/gdkconfig.h
1560         fi
1561 ],[
1562 if test "x$gdktarget" = "xx11" ; then
1563   gdk_windowing='
1564 #define GDK_WINDOWING_X11'
1565 elif test "x$gdktarget" = "xwin32" ; then
1566   gdk_windowing='
1567 #define GDK_WINDOWING_WIN32'
1568 elif test "x$gdktarget" = "xlinux-fb" ; then
1569   gdk_windowing='
1570 #define GDK_WINDOWING_FB
1571 #define GDK_NATIVE_WINDOW_POINTER'
1572 fi
1573
1574 if test x$gdk_wchar_h = xyes; then
1575   gdk_wc='
1576 #define GDK_HAVE_WCHAR_H 1'
1577 fi
1578 if test x$gdk_wctype_h = xyes; then
1579   gdk_wc="\$gdk_wc
1580 #define GDK_HAVE_WCTYPE_H 1"
1581 fi
1582 if test x$gdk_working_wctype = xno; then
1583   gdk_wc="\$gdk_wc
1584 #define GDK_HAVE_BROKEN_WCTYPE 1"
1585 fi
1586
1587
1588 ])
1589
1590 AC_CONFIG_FILES([
1591 config.h.win32
1592 gtk-zip.sh
1593 Makefile
1594 gdk-pixbuf-2.0.pc
1595 gdk-2.0.pc
1596 gtk+-2.0.pc
1597 gdk-pixbuf-2.0-uninstalled.pc
1598 gdk-2.0-uninstalled.pc
1599 gtk+-2.0-uninstalled.pc
1600 m4macros/Makefile
1601 po/Makefile.in
1602 po-properties/Makefile.in
1603 demos/Makefile
1604 demos/gtk-demo/Makefile
1605 demos/gtk-demo/geninclude.pl
1606 tests/Makefile
1607 docs/Makefile
1608 docs/reference/Makefile
1609 docs/reference/gdk-pixbuf/Makefile
1610 docs/reference/gdk-pixbuf/version.xml
1611 docs/reference/gdk/Makefile
1612 docs/reference/gdk/version.xml
1613 docs/reference/gtk/Makefile
1614 docs/reference/gtk/version.xml
1615 docs/faq/Makefile
1616 docs/tools/Makefile
1617 docs/tutorial/Makefile
1618 gdk-pixbuf/Makefile
1619 gdk-pixbuf/gdk_pixbuf.rc
1620 gdk-pixbuf/gdk-pixbuf-features.h
1621 gdk-pixbuf/pixops/Makefile
1622 gdk/Makefile
1623 gdk/x11/Makefile
1624 gdk/win32/Makefile
1625 gdk/win32/rc/Makefile
1626 gdk/win32/rc/gdk.rc
1627 gdk/linux-fb/Makefile
1628 gtk/Makefile
1629 gtk/makefile.msc
1630 gtk/gtkversion.h
1631 gtk/gtk-win32.rc
1632 gtk/theme-bits/Makefile
1633 gtk/xdgmime/Makefile
1634 modules/Makefile
1635 modules/input/Makefile
1636 modules/engines/Makefile
1637 modules/engines/pixbuf/Makefile
1638 modules/engines/ms-windows/Makefile
1639 modules/engines/ms-windows/Theme/Makefile
1640 modules/engines/ms-windows/Theme/gtk-2.0/Makefile
1641 perf/Makefile
1642 contrib/Makefile
1643 contrib/gdk-pixbuf-xlib/Makefile
1644 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1645 ])
1646
1647 AC_OUTPUT
1648
1649 echo "configuration:
1650         target: $gdktarget"
1651
1652 if test "x$gdktarget" = "xlinux-fb"; then
1653   echo "Warning: The linux-fb GDK target is unmaintained"
1654   echo "         and may not work or even compile"
1655 fi
1656