]> Pileus Git - ~andy/gtk/blob - configure.in
7e9b0601a110ee813823b1db1d042af6b0233ace
[~andy/gtk] / configure.in
1 # Process this file with autoconf to produce a configure script.
2 AC_INIT(gdk/gdktypes.h)
3
4 #
5 # For each of the libraries we build, we define the following
6 # substituted variables:
7 #
8 # foo_PACKAGES:     pkg-config packages this library requires
9 # foo_EXTRA_LIBS:   Libraries this module requires not pulled in by pkg-config
10 # foo_EXTRA_CFLAGS: cflags this module requires not pulled in by pkg-config
11 # foo_DEP_LIBS:     All libraries this module requires
12 # foo_DEP_CFLAGS:   All cflags this module requires
13
14
15 # Save this value here, since automake will set cflags later
16 cflags_set=${CFLAGS+set}
17
18 dnl we to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
19 dnl are available for $ac_help expansion (don't we all *love* autoconf?)
20 GLIB_AC_DIVERT_BEFORE_HELP([
21 #
22 # Making releases:
23 #   GTK_MICRO_VERSION += 1;
24 #   GTK_INTERFACE_AGE += 1;
25 #   GTK_BINARY_AGE += 1;
26 # if any functions have been added, set GTK_INTERFACE_AGE to 0.
27 # if backwards compatibility has been broken,
28 # set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
29 #
30 GTK_MAJOR_VERSION=2
31 GTK_MINOR_VERSION=0
32 GTK_MICRO_VERSION=0
33 GTK_INTERFACE_AGE=0
34 GTK_BINARY_AGE=0
35 GTK_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$GTK_MICRO_VERSION
36 dnl This is the X.Y used in -lgtk-FOO-X.Y
37 GTK_API_VERSION=2.0
38 ])dnl
39
40 AC_SUBST(GTK_MAJOR_VERSION)
41 AC_SUBST(GTK_MINOR_VERSION)
42 AC_SUBST(GTK_MICRO_VERSION)
43 AC_SUBST(GTK_INTERFACE_AGE)
44 AC_SUBST(GTK_BINARY_AGE)
45 AC_SUBST(GTK_API_VERSION)
46 AC_SUBST(GTK_VERSION)
47
48 # libtool versioning
49 LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION
50 LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE`
51 LT_REVISION=$GTK_INTERFACE_AGE
52 LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE`
53 LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
54 AC_SUBST(LT_RELEASE)
55 AC_SUBST(LT_CURRENT)
56 AC_SUBST(LT_REVISION)
57 AC_SUBST(LT_AGE)
58 AC_SUBST(LT_CURRENT_MINUS_AGE)
59
60 # Define a string for the earliest version that this release has
61 # binary compatibility with. This is used for module locations.
62 #
63 GTK_BINARY_VERSION=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION.$LT_CURRENT
64 AC_SUBST(GTK_BINARY_VERSION)
65
66 #
67 # gdk-pixbuf gets versioned separately, and for now, using standard
68 # libtool versioning, not GTK+-style versioning
69 #
70 GDK_PIXBUF_MAJOR=$GTK_MAJOR_VERSION
71 GDK_PIXBUF_MINOR=$GTK_MINOR_VERSION
72 GDK_PIXBUF_MICRO=$GTK_MICRO_VERSION
73 GDK_PIXBUF_VERSION="${GDK_PIXBUF_MAJOR}.${GDK_PIXBUF_MINOR}.${GDK_PIXBUF_MICRO}"
74 AC_SUBST(GDK_PIXBUF_MAJOR)
75 AC_SUBST(GDK_PIXBUF_MINOR)
76 AC_SUBST(GDK_PIXBUF_MICRO)
77 AC_SUBST(GDK_PIXBUF_VERSION)
78
79 ## Versions of dependencies
80 GLIB_REQUIRED_VERSION=2.0.0
81 PANGO_REQUIRED_VERSION=1.0.0
82 ATK_REQUIRED_VERSION=1.0.0
83
84 # For automake.
85 VERSION=$GTK_VERSION
86 PACKAGE=gtk+
87
88 GETTEXT_PACKAGE=gtk20
89 AC_SUBST(GETTEXT_PACKAGE)
90 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE")
91
92 # Save this value here, since automake will set cflags later
93 cflags_set=${CFLAGS+set}
94
95 dnl Initialize automake stuff
96 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
97
98 # Specify a configuration file
99 AM_CONFIG_HEADER(config.h)
100
101 dnl Initialize libtool
102 AC_PROG_CC
103 AM_DISABLE_STATIC
104 AC_LIBTOOL_WIN32_DLL
105 AM_PROG_LIBTOOL
106
107 dnl Set AS and ASFLAGS so that automake 1.5 will be happy
108 AS="\${CC}"
109 ASFLAGS="\${CFLAGS}"
110 AC_SUBST(AS)
111 AC_SUBST(ASFLAGS)
112
113 dnl Initialize maintainer mode
114 AM_MAINTAINER_MODE
115
116 AC_CANONICAL_HOST
117
118 AC_MSG_CHECKING([for some Win32 platform])
119 case "$host" in
120   *-*-mingw*|*-*-cygwin*)
121     platform_win32=yes
122     ;;
123   *)
124     platform_win32=no
125     ;;
126 esac
127 AC_MSG_RESULT([$platform_win32])
128 AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
129
130 AC_MSG_CHECKING([for native Win32])
131 case "$host" in
132   *-*-mingw*)
133     os_win32=yes
134     ;;
135   *)
136     os_win32=no
137     ;;
138 esac
139 AC_MSG_RESULT([$os_win32])
140 AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
141
142 if test "$os_win32" = "yes"; then
143   AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
144 fi
145 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
146
147 dnl figure debugging default, prior to $ac_help setup
148 dnl
149 GLIB_AC_DIVERT_BEFORE_HELP([
150 if test `expr $GTK_MINOR_VERSION \% 2` = 1 ; then
151         debug_default=yes
152 else
153         debug_default=minimum
154 fi
155 ])dnl
156
157 dnl declare --enable-* args and collect ac_help strings
158 AC_ARG_ENABLE(debug, [  --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
159 AC_ARG_ENABLE(shm, [  --enable-shm            support shared memory if available [default=yes]],
160                    echo $enable_shm, enable_shm="yes")
161 AC_ARG_ENABLE(ansi, [  --enable-ansi           turn on strict ansi [default=no]],
162                     , enable_ansi=no)
163 AC_ARG_ENABLE(xim, [  --enable-xim            support XIM [default=yes]],
164                         , enable_xim="yes")
165 AC_ARG_ENABLE(xim_inst, [  --disable-xim-inst      does not use xim instantiate callback],
166                         , enable_xim_inst="maybe")
167 AC_ARG_ENABLE(xkb, [  --enable-xkb            support XKB [default=maybe]],
168                         , enable_xkb="maybe")
169 AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogeneration rules],,enable_rebuilds=yes)
170
171 AC_ARG_WITH(xinput, [  --with-xinput=[no/gxi/xfree] support XInput ])
172
173 AC_ARG_WITH(wintab, [  --with-wintab=DIRECTORY use Wintab API with win32 backend])
174 AC_ARG_WITH(ie55, [  --with-ie55=DIRECTORY IE5.5 libs and headers (for Active IMM)])
175
176 GLIB_AC_DIVERT_BEFORE_HELP([
177 if test "$platform_win32" = yes; then
178   gdktarget=win32
179 else
180   gdktarget=x11
181 fi
182 ])
183
184 AC_ARG_WITH(gdktarget, [  --with-gdktarget=[[x11/linux-fb/win32]] select GDK target [default=$gdktarget]],
185         gdktarget=$with_gdktarget)
186
187 AC_SUBST(gdktarget)
188 case $gdktarget in
189   x11|linux-fb|win32) ;;
190   *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);;
191 esac
192
193 gdktargetlib=libgdk-$gdktarget-$GTK_API_VERSION.la
194 gtktargetlib=libgtk-$gdktarget-$GTK_API_VERSION.la
195
196 AC_SUBST(gdktargetlib)
197 AC_SUBST(gtktargetlib)
198
199 AC_ARG_ENABLE(shadowfb, [  --disable-shadowfb      disable shadowfb support for linux-fb],,enable_shadowfb=yes)
200
201 AC_ARG_ENABLE(fbmanager, [  --enable-fbmanager      enable framebuffer manager support (GtkFB)],enable_fbmanager=yes,enable_fbmanager=no)
202         
203 if test "x$enable_debug" = "xyes"; then
204   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
205   GTK_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
206 else
207   if test "x$enable_debug" = "xno"; then
208     GTK_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
209   else
210     GTK_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
211   fi
212 fi
213
214 AC_DEFINE_UNQUOTED(GTK_COMPILED_WITH_DEBUGGING, "${enable_debug}")
215
216                         
217 # Build time sanity check...
218 AM_SANITY_CHECK
219
220 # Checks for programs.
221 AC_ISC_POSIX
222 AM_PROG_CC_STDC
223 AC_PROG_INSTALL
224 AC_PROG_MAKE_SET
225
226 changequote(,)dnl
227 if test "x$GCC" = "xyes"; then
228   case " $CFLAGS " in
229   *[\ \ ]-Wall[\ \      ]*) ;;
230   *) CFLAGS="$CFLAGS -Wall" ;;
231   esac
232
233   if test "x$enable_ansi" = "xyes"; then
234     case " $CFLAGS " in
235     *[\ \       ]-ansi[\ \      ]*) ;;
236     *) CFLAGS="$CFLAGS -ansi" ;;
237     esac
238
239     case " $CFLAGS " in
240     *[\ \       ]-pedantic[\ \  ]*) ;;
241     *) CFLAGS="$CFLAGS -pedantic" ;;
242     esac
243   fi
244
245   if test "$os_win32" = "yes"; then
246     case "$CC $CFLAGS " in
247     *[[\ \      ]]-fnative-struct[[\ \  ]]*) ;;
248     *) CFLAGS="$CFLAGS -fnative-struct" ;;
249     esac
250   fi
251 fi
252 changequote([,])dnl
253
254 # Honor aclocal flags
255 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
256
257 ## Initial sanity check, done here so that users get told they 
258 ## have the wrong dependencies as early in the process as possible.
259 ## Later on we actually use the cflags/libs from separate pkg-config
260 ## calls. Oh, also the later pkg-config calls don't include 
261 ## the version requirements since those make the module lists 
262 ## annoying to construct
263 PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION atk >= $ATK_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION)
264
265 if test "$os_win32" != yes; then
266     # libtool option to control which symbols are exported
267     # right now, symbols starting with _ are not exported
268     LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"'
269 else
270     # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk)
271     LIBTOOL_EXPORT_OPTIONS=
272 fi
273 AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
274
275 dnl ******************************************************
276 dnl * See whether to include shared library dependencies *
277 dnl ******************************************************
278
279 AC_ARG_ENABLE(explicit-deps, 
280               [  --enable-explicit-deps=[yes/no/auto]    use explicit dependencies in .pc files [default=auto]],
281               enable_explicit_deps="$enableval", 
282               enable_explicit_deps=auto)
283
284 AC_MSG_CHECKING([Whether to write dependencies into .pc files])
285 case $enable_explicit_deps in
286   auto)
287     deplib_check_method=`(./libtool --config; echo eval echo \\$deplib_check_method) | sh`
288     if test "X$deplib_check_method" == Xnone || test "x$enable_static" = xyes ; then
289       enable_explicit_deps=yes  
290     else
291       enable_explicit_deps=no  
292     fi
293   ;;
294   yes|no) 
295   ;;
296   *) AC_MSG_ERROR([Value given to --enable-explicit-deps must be one of yes, no or auto])
297   ;;
298 esac
299 AC_MSG_RESULT($enable_explicit_deps)
300
301 AM_CONDITIONAL(DISABLE_EXPLICIT_DEPS, test $enable_explicit_deps = no)
302
303 # define a MAINT-like variable REBUILD which is set if Perl
304 # and awk are found, so autogenerated sources can be rebuilt
305
306 AC_CHECK_PROGS(PERL, perl5 perl)
307
308 # We would like indent, but don't require it.
309 AC_CHECK_PROG(INDENT, indent, indent)
310
311 REBUILD=\#
312 if test "x$enable_rebuilds" = "xyes" && \
313      test -n "$PERL" && \
314      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 ; then
315   REBUILD=
316 fi
317 AC_SUBST(REBUILD)
318
319 AC_CHECK_FUNCS(lstat mkstemp bind_textdomain_codeset)
320
321 # sigsetjmp is a macro on some platforms, so AC_CHECK_FUNCS is not reliable
322 AC_MSG_CHECKING(for sigsetjmp)
323 AC_TRY_LINK([#include <setjmp.h>], [
324 sigjmp_buf env;
325 sigsetjmp(env, 0);
326 ], gtk_ok=yes, gtk_ok=no)
327 AC_MSG_RESULT($gtk_ok)
328 if test "$gtk_ok" = "yes"; then
329   AC_DEFINE(HAVE_SIGSETJMP)
330 fi
331
332 AC_MSG_CHECKING(whether make is GNU Make)
333 STRIP_BEGIN=
334 STRIP_END=
335 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
336         STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
337         STRIP_END=')'
338         AC_MSG_RESULT(yes)
339 else
340         AC_MSG_RESULT(no)
341 fi
342 STRIP_DUMMY=
343 AC_SUBST(STRIP_DUMMY)
344 AC_SUBST(STRIP_BEGIN)
345 AC_SUBST(STRIP_END)
346
347 # i18n stuff
348 ALL_LINGUAS="az ca cs cy da de el en_GB en@IPA es et eu fa fi fr ga gl he hr hu ia it ja ko lt ms nl nn no pl pt pt_BR ro ru sk sl sp sr sv tr uk vi wa zh_TW zh_CN"
349 AM_GLIB_GNU_GETTEXT
350 LIBS="$LIBS $INTLLIBS"
351
352 # AM_GLIB_GNU_GETTEXT above substs $DATADIRNAME
353 # this is the directory where the *.{mo,gmo} files are installed
354 gtklocaledir='${prefix}/${DATADIRNAME}/locale'
355 AC_SUBST(gtklocaledir)
356
357 dnl The DU4 header files don't provide library prototypes unless 
358 dnl -std1 is given to the native cc.
359 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
360
361 gtk_save_LIBS=$LIBS
362 LIBS="$LIBS -lm"
363 AC_TRY_RUN([#include <math.h>
364              int main (void) { return (log(1) != log(1.)); }],
365      AC_MSG_RESULT(none needed),
366      gtk_save_CFLAGS="$CFLAGS"
367      CFLAGS="$CFLAGS -std1"
368      AC_TRY_RUN([#include <math.h>
369                  int main (void) { return (log(1) != log(1.)); }],
370          AC_MSG_RESULT(-std1),
371          AC_MSG_RESULT()
372          CFLAGS="$gtk_save_CFLAGS"
373          AC_MSG_WARN(
374                 [No ANSI prototypes found in library. (-std1 didn't work.)]),
375          true
376      ),
377      AC_MSG_RESULT(none needed)
378 )
379 LIBS=$gtk_save_LIBS
380
381 MATH_LIB=-lm
382 AC_MSG_CHECKING(for the BeOS)
383 case $host in
384   *-*-beos*)
385     AC_MSG_RESULT(yes)
386     MATH_LIB=
387   ;;
388   *)
389     AC_MSG_RESULT(no)
390   ;;
391 esac
392
393 dnl NeXTStep cc seems to need this
394 AC_MSG_CHECKING([for extra flags for POSIX compliance])
395 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
396   AC_MSG_RESULT(none needed),
397   gtk_save_CFLAGS="$CFLAGS"
398   CFLAGS="$CFLAGS -posix"
399   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
400     AC_MSG_RESULT(-posix),
401     AC_MSG_RESULT()
402     CFLAGS="$gtk_save_CFLAGS"
403     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
404
405 #
406 # Run AM_PATH_GLIB_2_0 to make sure that GLib is installed and working
407
408
409 GLIB_PACKAGES="gobject-2.0 gmodule-2.0"
410
411 AM_PATH_GLIB_2_0($GLIB_REQUIRED_VERSION, :,
412   AC_MSG_ERROR([
413 *** GLIB $GLIB_REQUIRED_VERSION or better is required. The latest version of 
414 *** GLIB is always available from ftp://ftp.gtk.org/.]),
415   gobject gmodule gthread)
416
417 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
418 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
419 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
420 AC_CHECK_HEADERS(winsock.h, AC_DEFINE(HAVE_WINSOCK_H))
421
422 if test "${with_ie55+set}" = set && test $with_ie55 != no; then
423   AC_MSG_CHECKING([for dimm.h])
424   saved_CFLAGS="$CFLAGS"
425   CFLAGS="$CFLAGS -idirafter $with_ie55/Include"
426   AC_TRY_COMPILE([#include <windows.h>
427 #include <objbase.h>
428 #ifdef __GNUC__
429 /* The w32api imm.h clashes a bit with the IE5.5 dimm.h */
430 #define IMEMENUITEMINFOA hidden_IMEMENUITEMINFOA
431 #define IMEMENUITEMINFOW hidden_IMEMENUITEMINFOW
432 #include <imm.h>
433 #undef IMEMENUITEMINFOA
434 #undef IMEMENUITEMINFOW
435 #endif
436 #include <dimm.h>
437 ],
438    [],
439    [AC_MSG_RESULT(yes)
440     AC_MSG_CHECKING([for IE55 uuid.lib])
441     if test -f $with_ie55/Lib/uuid.lib ; then
442       AC_MSG_RESULT(yes)
443       have_ie55=yes
444       AC_DEFINE(HAVE_DIMM_H)
445       IE55_UUID_LIB="$with_ie55/Lib/uuid.lib"
446       AC_SUBST(IE55_UUID_LIB)
447     else
448       AC_MSG_RESULT(no)
449       CFLAGS="$saved_CFLAGS"
450       have_ie55=no
451     fi
452     ],
453    [AC_MSG_RESULT(no)
454     CFLAGS="$saved_CFLAGS"
455     have_ie55=no])
456 fi
457 AM_CONDITIONAL(HAVE_IE55, test x$have_ie55 = xyes)
458
459 if test "${with_wintab+set}" = set && test $with_wintab != no; then
460   AC_MSG_CHECKING([for wintab.h])
461   saved_CFLAGS="$CFLAGS"
462   CFLAGS="$CFLAGS -I$with_wintab/include"
463   AC_TRY_COMPILE([#include <windows.h>
464 #include <wintab.h>], 
465    [],
466    [AC_MSG_RESULT(yes)
467     AC_MSG_CHECKING([for wntab32x.lib])
468     if test -f $with_wintab/lib/i386/wntab32x.lib ; then
469       AC_MSG_RESULT(yes)
470       have_wintab=yes
471       AC_DEFINE(HAVE_WINTAB)
472       WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib"
473       AC_SUBST(WINTAB_LIB)
474     else
475       AC_MSG_RESULT(no)
476       CFLAGS="$saved_cflags"
477       have_wintab=no
478     fi
479     ],
480    [AC_MSG_RESULT(no)
481     CFLAGS="$saved_cflags"
482     have_wintab=no])
483 fi
484 AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes)
485
486 saved_cflags="$CFLAGS"
487 saved_ldflags="$LDFLAGS"
488
489
490 # Checks for header files.
491 AC_HEADER_STDC
492
493 # Checks for typedefs, structures, and compiler characteristics.
494 AC_C_CONST
495
496 # Checks for library functions.
497 AC_TYPE_SIGNAL
498 AC_FUNC_MMAP
499
500 AC_CHECK_FUNCS(getresuid)
501 AC_TYPE_UID_T
502
503 # Check if <sys/select.h> needs to be included for fd_set
504 AC_MSG_CHECKING([for fd_set])
505 AC_TRY_COMPILE([#include <sys/types.h>],
506         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
507 if test $gtk_ok = yes; then
508     AC_MSG_RESULT([yes, found in sys/types.h])
509 else
510     AC_HEADER_EGREP(fd_mask, sys/select.h, gtk_ok=yes)
511     if test $gtk_ok = yes; then
512         AC_DEFINE(HAVE_SYS_SELECT_H)
513         AC_MSG_RESULT([yes, found in sys/select.h])
514     else
515         AC_DEFINE(NO_FD_SET)
516         AC_MSG_RESULT(no)
517     fi
518 fi
519
520 # `widechar' tests for gdki18n.h
521 AC_MSG_CHECKING(for wchar.h)
522 AC_TRY_CPP([#include <wchar.h>], gdk_wchar_h=yes, gdk_wchar_h=no)
523 if test $gdk_wchar_h = yes; then
524    AC_DEFINE(HAVE_WCHAR_H,1,[Have wchar.h include file])
525 fi
526 AC_MSG_RESULT($gdk_wchar_h)
527
528 # Check for wctype.h (for iswalnum)
529 AC_MSG_CHECKING(for wctype.h)
530 AC_TRY_CPP([#include <wctype.h>], gdk_wctype_h=yes, gdk_wctype_h=no)
531 if test $gdk_wctype_h = yes; then
532    AC_DEFINE(HAVE_WCTYPE_H,1,[Have wctype.h include file])
533 fi
534 AC_MSG_RESULT($gdk_wctype_h)
535
536 # in Solaris 2.5, `iswalnum' is in -lw
537 GDK_WLIBS=
538 AC_CHECK_FUNC(iswalnum,,[AC_CHECK_LIB(w,iswalnum,GDK_WLIBS=-lw)])
539
540 oLIBS="$LIBS"
541 LIBS="$LIBS $GDK_WLIBS"
542 # The following is necessary for Linux libc-5.4.38
543 AC_MSG_CHECKING(if iswalnum() and friends are properly defined)
544 AC_TRY_LINK([#include <stdlib.h>],[
545 #if (defined(HAVE_WCTYPE_H) || defined(HAVE_WCHAR_H))
546 #  ifdef HAVE_WCTYPE_H
547 #    include <wctype.h>
548 #  else
549 #    ifdef HAVE_WCHAR_H
550 #      include <wchar.h>
551 #    endif
552 #  endif
553 #else
554 #  define iswalnum(c) ((wchar_t)(c) <= 0xFF && isalnum(c))
555 #endif
556 iswalnum((wchar_t) 0);
557 ], gdk_working_wctype=yes, gdk_working_wctype=no)
558 LIBS="$oLIBS"
559
560 if test $gdk_working_wctype = no; then
561    AC_DEFINE(HAVE_BROKEN_WCTYPE,1,[Is the wctype implementation broken])
562    GDK_WLIBS=
563 fi
564 AC_MSG_RESULT($gdk_working_wctype)
565 AC_SUBST(GDK_WLIBS)
566
567
568
569 ##################################################
570 # Checks for gdk-pixbuf
571 ##################################################
572
573 AC_MSG_CHECKING(whether to build gmodulized gdk-pixbuf)
574
575 AC_ARG_ENABLE(modules, [  --disable-modules       disable dynamic module loading],[
576         if test x$withval = xyes; then 
577             with_modules=yes
578         else
579             with_modules=no
580         fi
581 ])
582
583 dynworks=false
584 deps=
585 if test x$with_modules = xno; then
586     AC_MSG_RESULT(no)
587 else
588     AC_MSG_RESULT(yes)
589     AC_MSG_CHECKING(whether dynamic modules work)
590     ## for loop is to strip newline 
591     tmp=`pkg-config --variable=gmodule_supported gmodule-2.0`
592     for I in $tmp; do
593         dynworks=$I
594     done
595 fi
596
597 dnl Now we check to see if our libtool supports shared lib deps
598 dnl (in a rather ugly way even)
599 if $dynworks; then
600    pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
601    pixbuf_deplibs_check=`$pixbuf_libtool_config | \
602       grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
603       sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
604    if test "x$pixbuf_deplibs_check" = "xnone" || \
605       test "x$pixbuf_deplibs_check" = "xunknown" || \
606       test "x$pixbuf_deplibs_check" = "x"; then
607       dynworks=false
608    fi
609 fi
610
611 if $dynworks; then
612    AC_DEFINE(USE_GMODULE)
613    AC_MSG_RESULT(yes)
614 else
615    AC_MSG_RESULT(no)
616 fi
617
618 dnl We allow people to disable image loaders explicitely, but if they don't we error
619 dnl out so that people don't accidentally build without them.
620
621 AC_ARG_WITH(libpng,  [  --without-libpng          disable PNG loader for gdk-pixbuf])
622 AC_ARG_WITH(libjpeg, [  --without-libjpeg         disable JPEG loader for gdk-pixbuf])
623 AC_ARG_WITH(libtiff, [  --without-libtiff         disable TIFF loader for gdk-pixbuf])
624
625 dnl Test for libtiff
626   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
627     AC_CHECK_LIB(tiff, TIFFReadScanline,
628       [AC_CHECK_HEADER(tiffio.h,
629         TIFF='tiff'; LIBTIFF='-ltiff',
630         AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
631       [AC_CHECK_LIB(tiff, TIFFWriteScanline,
632         [AC_CHECK_HEADER(tiffio.h,
633           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
634           AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
635         [AC_CHECK_LIB(tiff34, TIFFFlushData,
636           [AC_CHECK_HEADER(tiffio.h,
637             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
638             AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
639         AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
640   fi
641
642   if test x$with_libtiff != xno && test -z "$LIBTIFF"; then
643      AC_MSG_ERROR([
644 *** Checks for TIFF loader failed. You can build without it by passing 
645 *** --without-libtiff to configure but some programs using GTK+ may
646 *** not work properly])
647   fi
648
649 dnl Test for libjpeg
650   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
651     AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
652       jpeg_ok=yes,
653       jpeg_ok=no
654       AC_MSG_WARN(*** JPEG loader will not be built (JPEG library not found) ***))
655     if test "$jpeg_ok" = yes; then
656       AC_MSG_CHECKING([for jpeglib.h])
657       AC_TRY_CPP(
658 [#include <stdio.h>
659 #undef PACKAGE
660 #undef VERSION
661 #undef HAVE_STDLIB_H
662 #include <jpeglib.h>],
663         jpeg_ok=yes,
664         jpeg_ok=no)
665       AC_MSG_RESULT($jpeg_ok)
666       if test "$jpeg_ok" = yes; then
667         LIBJPEG='-ljpeg'
668         AC_CHECK_LIB(jpeg, jpeg_simple_progression,     
669           AC_DEFINE(HAVE_PROGRESSIVE_JPEG),
670           AC_MSG_WARN(JPEG library does not support progressive saving.))
671       else
672           AC_MSG_WARN(*** JPEG loader will not be built (JPEG header file not found) ***)
673       fi
674     fi
675   fi
676
677   if test x$with_libjpeg != xno && test -z "$LIBJPEG"; then
678      AC_MSG_ERROR([
679 *** Checks for JPEG loader failed. You can build without it by passing 
680 *** --without-libjpeg to configure but some programs using GTK+ may
681 *** not work properly])
682   fi
683
684 dnl Test for libpng
685   if test x$with_libpng != xno && test -z "$LIBPNG"; then
686     AC_CHECK_LIB(png, png_read_info,
687       [AC_CHECK_HEADER(png.h,
688         png_ok=yes,
689         png_ok=no)],
690       AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
691     if test "$png_ok" = yes; then
692       AC_MSG_CHECKING([for png_structp in png.h])
693       AC_TRY_COMPILE([#include <png.h>],
694         [png_structp pp; png_infop info; png_colorp cmap; png_create_read_struct;],
695         png_ok=yes,
696         png_ok=no)
697       AC_MSG_RESULT($png_ok)
698       if test "$png_ok" = yes; then
699         PNG='png'; LIBPNG='-lpng -lz'
700       else
701         AC_MSG_WARN(*** PNG loader will not be built (PNG library is too old) ***)
702       fi
703     else
704      AC_MSG_WARN(*** PNG loader will not be built (PNG header file not found) ***)
705     fi
706   fi
707
708   if test x$with_libpng != xno && test -z "$LIBPNG"; then
709      AC_MSG_ERROR([
710 *** Checks for PNG loader failed. You can build without it by passing 
711 *** --without-libpng to configure but many programs using GTK+ will
712 *** not work properly. The PNG loader is also needed if you are compiling
713 *** from CVS.])
714   fi
715
716 AC_SUBST(LIBTIFF)
717 AC_SUBST(LIBJPEG)
718 AC_SUBST(LIBPNG)
719
720 AM_CONDITIONAL(BUILD_DYNAMIC_MODULES, $dynworks)
721
722 #
723 # Allow building some or all gdk-pixbuf loaders included
724 #
725 AC_MSG_CHECKING(pixbuf loaders to build)
726
727 AC_ARG_WITH(included_loaders, [  --with-included-loaders=LOADER1,LOADER2,...  build the specified loaders into gdk-pixbuf (only used if module loading disabled)])
728
729 if $dynworks; then 
730         :
731 else
732    ## if the option was specified, leave it; otherwise disable included loaders
733    if test x$with_included_loaders = xno; then
734            with_included_loaders=yes
735    fi
736 fi
737
738 all_loaders="png,bmp,wbmp,gif,ico,jpeg,pnm,ras,tiff,xpm,tga"
739 included_loaders=""
740 # If no loaders specified, include all
741 if test "x$with_included_loaders" = xyes ; then
742   included_loaders="$all_loaders"
743 else
744   included_loaders="$with_included_loaders"
745 fi
746
747 AC_MSG_RESULT($included_loaders)
748
749 INCLUDED_LOADER_OBJ=
750 INCLUDED_LOADER_DEFINE=
751
752 IFS="${IFS=     }"; gtk_save_ifs="$IFS"; IFS=","
753 for loader in $included_loaders; do
754  if echo "$all_loaders" | grep "\(^\|\,\)$loader\(\$\|\,\)" > /dev/null; then
755    :
756  else
757    AC_MSG_ERROR([the specified loader $loader does not exist])
758  fi
759
760  INCLUDED_LOADER_OBJ="$INCLUDED_LOADER_OBJ libpixbufloader-static-$loader.la"
761  INCLUDED_LOADER_DEFINE="$INCLUDED_LOADER_DEFINE -DINCLUDE_$loader"
762 done
763 IFS="$gtk_save_ifs"
764 AC_SUBST(INCLUDED_LOADER_OBJ)
765 AC_SUBST(INCLUDED_LOADER_DEFINE)
766
767 AC_HEADER_SYS_WAIT
768
769 AC_TYPE_SIGNAL
770
771 AM_CONDITIONAL(HAVE_TIFF, test "x$LIBTIFF" != x)
772 AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x)
773 AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x)
774
775 if $dynworks ; then
776   STATIC_LIB_DEPS=
777   if echo "$included_loaders" | grep "\(^\|\,\)tiff\(\$\|\,\)" > /dev/null; then
778     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBTIFF"
779   fi
780   if echo "$included_loaders" | grep "\(^\|\,\)jpeg\(\$\|\,\)" > /dev/null; then
781     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBJPEG"
782   fi
783   if echo "$included_loaders" | grep "\(^\|\,\)png\(\$\|\,\)" > /dev/null; then
784     STATIC_LIB_DEPS="$STATIC_LIB_DEPS $LIBPNG"
785   fi
786 else
787   STATIC_LIB_DEPS="$LIBTIFF $LIBJPEG $LIBPNG"
788 fi
789
790 # Checks to see if we should compile in MMX support (there will be
791 # a runtime test when the code is actually run to see if it should
792 # be used - this just checks if we can compile it.)
793 #
794 # This code is partially taken from Mesa
795 #
796 AC_MSG_CHECKING(for x86 platform)
797 case $host_cpu in
798   i386|i486|i586|i686|i786|k6|k7)
799         use_x86_asm=yes
800         ;;
801    *)
802         use_x86_asm=no
803 esac
804 AC_MSG_RESULT($use_x86_asm)
805
806 use_mmx_asm=no
807 if test $use_x86_asm = yes; then
808     save_ac_ext=$ac_ext
809     ac_ext=S
810     
811     AC_MSG_CHECKING(compiler support for MMX)
812     cp $srcdir/gdk-pixbuf/pixops/scale_line_22_33_mmx.S conftest.S
813     if AC_TRY_EVAL(ac_compile); then
814         use_mmx_asm=yes
815     fi
816
817     rm -rf conftest*
818
819     ac_ext=$save_ac_ext
820     if test $use_mmx_asm = yes; then
821       AC_DEFINE(USE_MMX)
822       AC_MSG_RESULT(yes)
823     else
824       AC_MSG_RESULT(no)
825     fi
826 fi
827
828 AM_CONDITIONAL(USE_MMX, test x$use_mmx_asm = xyes)
829
830
831 GDK_PIXBUF_PACKAGES="gmodule-2.0 gobject-2.0"
832 GDK_PIXBUF_EXTRA_LIBS="$STATIC_LIB_DEPS $MATH_LIB"
833 GDK_PIXBUF_EXTRA_CFLAGS= 
834 GDK_PIXBUF_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
835 GDK_PIXBUF_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PIXBUF_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS"
836
837 AC_SUBST(GDK_PIXBUF_PACKAGES)
838 AC_SUBST(GDK_PIXBUF_EXTRA_LIBS)
839 AC_SUBST(GDK_PIXBUF_EXTRA_CFLAGS)
840 AC_SUBST(GDK_PIXBUF_DEP_LIBS)
841 AC_SUBST(GDK_PIXBUF_DEP_CFLAGS)
842
843
844 ########################################
845 # Windowing system checks
846 ########################################
847
848 GDK_EXTRA_LIBS=$GDK_WLIBS
849 GDK_EXTRA_CFLAGS= 
850
851 FREETYPE_LIBS=
852 FREETYPE_CFLAGS=
853 if test "x$gdktarget" = "xlinux-fb" || test "x$gdktarget" = "x11" ; then
854   #
855   # Checks for FreeType
856   #
857   have_freetype=false
858   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
859   if test "x$FREETYPE_CONFIG" != "xno" ; then
860     FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
861     FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
862
863     AC_CHECK_LIB(freetype, FT_New_Face, have_freetype=true
864                  ,:,$FREETYPE_LIBS)
865
866     if $have_freetype ; then
867       gtk_save_cppflags="$CPPFLAGS"
868       CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
869
870       AC_MSG_CHECKING([For sufficiently new FreeType (at least 2.0.1)])
871       AC_TRY_COMPILE([
872 #include <freetype/freetype.h>
873 #include FT_ERRORS_H
874     ],
875                      [(void)1;],:,have_freetype=yes)
876       if test x$have_freetype = xyes ; then
877         AC_MSG_RESULT(yes)
878       else
879         AC_MSG_RESULT(no)
880       fi
881
882       CPPFLAGS="$gtk_save_cppflags"
883     fi
884   fi
885   AC_SUBST(FREETYPE_LIBS)
886   AC_SUBST(FREETYPE_CFLAGS)
887 fi
888
889 if test "x$gdktarget" = "xx11"; then
890   # We start off with the libraries from Pango
891
892   if $PKG_CONFIG --exists pangox ; then : ; else
893     AC_MSG_ERROR([pangox Pango backend is required for x11 target])
894   fi
895     
896   ## be sure we also have Pango built with xft support
897   if $PKG_CONFIG --exists pangoxft ; then
898     PANGO_PACKAGES="pangox pangoxft"
899     have_xft=true
900     AC_DEFINE(HAVE_XFT)
901     if x$have_freetype != xyes ; then
902       AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
903     fi
904   else
905     PANGO_PACKAGES="pangox"
906     have_xft=false
907   fi
908
909   AM_CONDITIONAL(HAVE_XFT, $have_xft)
910
911   #
912   # If Pango included the shared library dependencies from X11 in
913   # the pkg-config output, then we use that (to avoid duplicates).
914   # but if they were omitted to avoid binary compatibility problems
915   # then we need to repeat the checks.
916   #
917   x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
918   case x_libs in
919     *-lX11*) pango_omitted_x_deps=no ;;
920     *)       pango_omitted_x_deps=yes ;;
921   esac
922
923   x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
924   x_extra_libs=
925
926   if test $pango_omitted_x_deps = yes ; then
927     AC_PATH_XTRA
928
929     if test x$no_x = xyes ; then
930       AC_MSG_ERROR([X development libraries not found])
931     fi
932
933     x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
934
935     #
936     # Checks for Xft/XRender
937     #
938     XFT_LIBS=""
939     XFT_CFLAGS=""
940     if test $have_xft = true ; then
941       gtk_save_cppflags="$CPPFLAGS"
942       CPPFLAGS="$CPPFLAGS $x_cflags"
943       have_xft=false
944
945       AC_CHECK_LIB(Xrender, XRenderFindFormat, 
946         [AC_CHECK_LIB(Xft, XftFontOpen,
947           [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
948             have_xft=true,:)],
949           :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
950       ,:,-lXext $x_libs)
951
952       CPPFLAGS="$gtk_save_cppflags"
953
954       if $have_xft ; then
955         x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
956       else
957         AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
958       fi
959     fi
960   fi            
961
962   ## Strip the .la files
963  
964   x_libs_for_checks=""
965   for I in $x_libs ; do
966     case $I in 
967       *.la) ;;
968       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
969     esac
970   done
971
972   # Sanity check for the X11 library
973   AC_CHECK_LIB(X11, XOpenDisplay, :,
974             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
975             $x_libs_for_checks)
976
977   if test "x$enable_shm" = "xyes"; then
978     # Check for the Xext library (needed for XShm extention)
979     AC_CHECK_LIB(Xext, XShmAttach,
980         if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
981           x_extra_libs="-lXext"
982         fi,
983         # On AIX, it is in XextSam instead, but we still need -lXext
984         AC_CHECK_LIB(XextSam, XShmAttach, 
985             if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
986                x_extra_libs="-lXextSam -lXext"
987             else
988                x_extra_libs="-lXextSam"
989             fi, , $x_libs_for_checks),
990         $x_libs_for_checks)
991   fi
992
993   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
994   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
995   GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs `$PKG_CONFIG --libs pangox`"
996
997   # Check for shaped window extension
998
999   AC_CHECK_LIB(Xext, XShapeCombineMask,
1000       if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1001            x_extra_libs="-lXext $x_extra_libs"
1002       fi
1003       AC_DEFINE(HAVE_SHAPE_EXT),
1004       ,
1005       $x_libs_for_checks)
1006
1007   # Check for XConvertCase (X11R6 specific)
1008
1009   AC_CHECK_LIB(X11, XConvertCase,
1010       AC_DEFINE(HAVE_XCONVERTCASE),
1011       ,
1012       $x_libs_for_checks)
1013
1014   # Check for XIM support.
1015
1016   AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
1017             : ,
1018             enable_xim_inst="no",
1019             $x_libs_for_checks)
1020
1021   # On Solaris, calling XRegisterIMInstantiateCallback seems to
1022   # cause an immediate segfault, so we disable it, unless
1023   # the user specifically forces it to be on.
1024
1025   if test x$enable_xim_inst = xmaybe ; then
1026     case host in
1027           *-*-solaris*)
1028             enable_xim_inst="no"
1029             ;;
1030           *)
1031             enable_xim_inst="yes"
1032             ;;
1033     esac
1034   fi
1035
1036   if test "x$enable_xim" = "xyes"; then
1037     GTK_XIM_FLAGS="-DUSE_XIM"
1038     if test "x$enable_xim_inst" = "xyes"; then
1039       AC_DEFINE(USE_X11R6_XIM)
1040     fi
1041   fi
1042
1043   # Check for XKB support.
1044
1045   if test "x$enable_xkb" = "xyes"; then
1046         AC_MSG_WARN(XKB support explicitly enabled)
1047         AC_DEFINE(HAVE_XKB)
1048   elif test "x$enable_xkb" = "xmaybe"; then
1049         AC_CHECK_LIB(X11, XkbQueryExtension,
1050                      AC_DEFINE(HAVE_XKB),
1051                      ,
1052                      $x_libs_for_checks)
1053   else
1054         AC_MSG_WARN(XKB support explicitly disabled)
1055   fi
1056
1057   x_cflags="$X_CFLAGS"
1058   x_ldflags="$X_LDFLAGS"
1059
1060   # set up things for XInput
1061
1062   if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
1063     AC_DEFINE(XINPUT_GXI)
1064     xinput_progs=gxid
1065     x_extra_libs="-lXi $x_extra_libs"
1066   elif test "x$with_xinput" = "xxfree"; then
1067     AC_DEFINE(XINPUT_XFREE)
1068     x_extra_libs="-lXi $x_extra_libs"
1069   else
1070     AC_DEFINE(XINPUT_NONE)
1071   fi
1072
1073   AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
1074   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
1075
1076   if test "x$enable_shm" = "xyes"; then
1077     # Check for shared memory
1078     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1079     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1080
1081     # Check for the X shared memory extension header file
1082     have_xshm=no 
1083     AC_MSG_CHECKING(X11/extensions/XShm.h)
1084     if test "x$no_xext_lib" = "xyes"; then
1085       :
1086     else
1087       gtk_save_CFLAGS="$CFLAGS"
1088       CFLAGS="$CFLAGS $x_cflags"
1089       AC_TRY_COMPILE([
1090 #include <stdlib.h>
1091 #include <sys/types.h>
1092 #include <sys/ipc.h>
1093 #include <sys/shm.h>
1094 #include <X11/Xlib.h>
1095 #include <X11/Xutil.h>
1096 #include <X11/extensions/XShm.h>
1097 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1098       CFLAGS="$gtk_save_CFLAGS"
1099     fi
1100     AC_MSG_RESULT($have_xshm)
1101     if test $have_xshm = yes ; then
1102       AC_DEFINE(HAVE_XSHM_H)
1103     fi
1104   fi
1105
1106   GDK_EXTRA_CFLAGS=
1107   if test $pango_omitted_x_deps = yes ; then
1108     GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1109   else
1110     GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
1111   fi
1112
1113   AM_CONDITIONAL(USE_X11, true)
1114 else
1115   AM_CONDITIONAL(USE_X11, false)
1116 fi
1117
1118 if test "x$gdktarget" = "xwin32"; then
1119   # We start off with the libraries from Pango
1120
1121   ## be sure we also have Pango built with win32 support
1122   PANGO_PACKAGES="pangowin32"
1123
1124   if test x$have_wintab = xyes; then
1125     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1126     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1127   fi
1128
1129   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1130   AM_CONDITIONAL(USE_WIN32, true)
1131 else
1132   AM_CONDITIONAL(USE_WIN32, false)
1133 fi
1134
1135 AC_SUBST(xinput_progs)
1136
1137 GDK_PIXBUF_XLIB_PACKAGES=
1138 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1139 GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags  $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS"
1140
1141 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1142 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1143 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1144 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1145 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1146
1147 if test "x$gdktarget" = "xlinux-fb"; then
1148   if test x$have_freetype != xyes ; then
1149     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1150   fi
1151
1152   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1153   case ft2_libs in
1154     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1155     *)            pango_omitted_ft2_deps=yes ;;
1156   esac
1157
1158   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1159
1160   if test x$enable_shadowfb = xyes ; then
1161     AC_DEFINE(ENABLE_SHADOW_FB)
1162   fi
1163
1164   if test x$enable_fbmanager = xyes ; then
1165     AC_DEFINE(ENABLE_FB_MANAGER)
1166     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1167   else
1168     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1169   fi
1170   
1171   GDK_EXTRA_CFLAGS=""
1172   if test $pango_omitted_ft2_deps = yes ; then
1173     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1174   fi
1175
1176   AM_CONDITIONAL(USE_LINUX_FB, true)
1177 else
1178   AM_CONDITIONAL(USE_LINUX_FB, false)
1179   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1180 fi
1181
1182 #
1183 # Pick correct Pango packages to use
1184 #
1185
1186 if test "x$gdktarget" = "xx11"; then
1187         if $have_xft = true ; then
1188             PANGO_PACKAGES="pangox pangoxft"
1189         else
1190             PANGO_PACKAGES=pangox
1191         fi
1192 elif test "x$gdktarget" = "xwin32"; then
1193         PANGO_PACKAGES=pangowin32
1194 elif test "x$gdktarget" = "xlinux-fb"; then
1195         PANGO_PACKAGES=pangoft2
1196 else
1197         PANGO_PACKAGES=pango
1198 fi
1199
1200 # Check for Pango flags
1201
1202 AC_MSG_CHECKING(Pango flags)
1203 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1204         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1205         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1206
1207         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1208 else
1209         AC_MSG_ERROR([
1210 *** Pango not found. Pango is required to build GTK+.
1211 *** See http://www.pango.org for Pango information.
1212 *** For the framebuffer target, you will need to build 
1213 *** Pango with freetype support.
1214 ])
1215 fi
1216
1217 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1218
1219 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1220         :
1221 else
1222         AC_CHECK_LIB(pango, pango_context_new, :, AC_MSG_ERROR([
1223 *** Can't link to Pango. Pango is required to build
1224 *** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS)
1225 fi
1226
1227 CFLAGS="$saved_cflags"
1228 LDFLAGS="$saved_ldflags"
1229
1230 GDK_PACKAGES=$PANGO_PACKAGES
1231 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1232 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1233
1234 #
1235 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1236 # into the pkg-config files
1237 #
1238 if test $enable_explicit_deps != yes ; then
1239   GDK_EXTRA_LIBS=
1240 fi
1241
1242 AC_SUBST(GDK_PACKAGES)
1243 AC_SUBST(GDK_EXTRA_LIBS)
1244 AC_SUBST(GDK_EXTRA_CFLAGS)
1245 AC_SUBST(GDK_DEP_LIBS)
1246 AC_SUBST(GDK_DEP_CFLAGS)
1247
1248
1249 ########################################
1250 # Check for Accessibility Toolkit flags
1251 ########################################
1252
1253 ATK_PACKAGES=atk
1254 AC_MSG_CHECKING(ATK flags)
1255 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1256         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1257         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1258
1259         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1260 else
1261         AC_MSG_ERROR([
1262 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1263 *** to build GTK+.
1264 ])
1265 fi
1266
1267 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1268         :
1269 else
1270         AC_CHECK_LIB(atk-1.0, atk_object_get_type, : , AC_MSG_ERROR([
1271                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1272                 *** to build GTK+]), $ATK_LIBS $GLIB_LIBS)
1273 fi
1274
1275 GTK_PACKAGES=atk
1276 GTK_EXTRA_LIBS=
1277 GTK_EXTRA_CFLAGS= 
1278 GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1279 GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags  $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
1280
1281 AC_SUBST(GTK_PACKAGES)
1282 AC_SUBST(GTK_EXTRA_LIBS)
1283 AC_SUBST(GTK_EXTRA_CFLAGS)
1284 AC_SUBST(GTK_DEP_LIBS)
1285 AC_SUBST(GTK_DEP_CFLAGS)
1286
1287
1288 AC_SUBST(GTK_DEBUG_FLAGS)
1289 AC_SUBST(GTK_XIM_FLAGS)
1290
1291 ##################################################
1292 # Checks for gtk-doc and docbook-tools
1293 ##################################################
1294
1295 AC_ARG_WITH(html-dir, [  --with-html-dir=PATH    path to installed docs ])
1296
1297 if test "x$with_html_dir" = "x" ; then
1298   HTML_DIR='${datadir}/gtk-doc/html'
1299 else
1300   HTML_DIR=$with_html_dir
1301 fi
1302
1303 AC_SUBST(HTML_DIR)
1304
1305 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1306
1307 gtk_doc_min_version=0.9
1308 if $GTKDOC ; then 
1309     gtk_doc_version=`gtkdoc-mkdb --version`
1310     AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
1311     if perl <<EOF ; then
1312       exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
1313             ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
1314 EOF
1315       AC_MSG_RESULT(yes)
1316    else
1317       AC_MSG_RESULT(no)
1318       GTKDOC=false
1319    fi
1320 fi
1321
1322 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1323 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1324
1325 dnl Make people enable the gtk-doc stuff explicitely.
1326 AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc        use gtk-doc to build documentation [default=no]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
1327
1328 if test x$enable_gtk_doc = xyes ; then
1329   if test x$GTKDOC != xtrue ; then
1330     enable_gtk_doc=no 
1331   fi
1332 fi
1333
1334 dnl NOTE: We need to use a separate automake conditional for this
1335 dnl       to make this work with the tarballs.
1336 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1337
1338
1339 ##################################################
1340 # Output commands
1341 ##################################################
1342
1343 AC_OUTPUT_COMMANDS([
1344
1345 ## Generate `gdk/gdkconfig.h' in two cases
1346 ## 1. `config.status' is run either explicitly, or via configure.
1347 ##     Esp. not when it is run in `Makefile' to generate makefiles and
1348 ##     config.h
1349 ## 2. CONFIG_OTHER is set explicitly
1350 ##
1351 ## Case 1 is difficult.  We know that `automake' sets one of
1352 ## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
1353 ## only when AM_CONFIG_HEADER is set, however.
1354
1355 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1356   # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1357   CONFIG_OTHER=${CONFIG_OTHER:-gdk/gdkconfig.h}
1358 fi
1359 case "$CONFIG_OTHER" in
1360 *gdk/gdkconfig.h*)
1361         echo creating gdk/gdkconfig.h
1362         outfile=gdkconfig.h-tmp
1363         cat > $outfile <<\_______EOF
1364 /* gdkconfig.h
1365  *
1366  * This is a generated file.  Please modify `configure.in'
1367  */
1368
1369 #ifndef GDKCONFIG_H
1370 #define GDKCONFIG_H
1371
1372 #ifdef __cplusplus
1373 extern "C" {
1374 #endif /* __cplusplus */
1375
1376 _______EOF
1377
1378         cat >>$outfile <<_______EOF
1379 $gdk_windowing
1380 $gdk_wc
1381 _______EOF
1382
1383         cat >>$outfile <<_______EOF
1384
1385 #ifdef __cplusplus
1386 }
1387 #endif /* __cplusplus */
1388
1389 #endif /* GDKCONFIG_H */
1390 _______EOF
1391
1392
1393         if cmp -s $outfile gdk/gdkconfig.h; then
1394           echo gdk/gdkconfig.h is unchanged
1395           rm -f $outfile
1396         else
1397           mv $outfile gdk/gdkconfig.h
1398         fi ;;
1399 esac
1400 ],[
1401 if test "x$gdktarget" = "xx11" ; then
1402   gdk_windowing='
1403 #define GDK_WINDOWING_X11'
1404 elif test "x$gdktarget" = "xwin32" ; then
1405   gdk_windowing='
1406 #define GDK_WINDOWING_WIN32'
1407 elif test "x$gdktarget" = "xlinux-fb" ; then
1408   gdk_windowing='
1409 #define GDK_WINDOWING_FB
1410 #define GDK_NATIVE_WINDOW_POINTER'
1411 fi
1412
1413 if test x$gdk_wchar_h = xyes; then
1414   gdk_wc='
1415 #define GDK_HAVE_WCHAR_H 1'
1416 fi
1417 if test x$gdk_wctype_h = xyes; then
1418   gdk_wc="\$gdk_wc
1419 #define GDK_HAVE_WCTYPE_H 1"
1420 fi
1421 if test x$gdk_working_wctype = xno; then
1422   gdk_wc="\$gdk_wc
1423 #define GDK_HAVE_BROKEN_WCTYPE 1"
1424 fi
1425
1426
1427 ])
1428
1429 AC_PATH_PROG(SGML2HTML, sgml2html, no)
1430 AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
1431
1432 AC_OUTPUT([
1433 config.h.win32
1434 gtk-zip.sh
1435 gtk+.spec
1436 Makefile
1437 gdk-pixbuf-2.0.pc
1438 gdk-2.0.pc
1439 gtk+-2.0.pc
1440 gdk-pixbuf-2.0-uninstalled.pc
1441 gdk-2.0-uninstalled.pc
1442 gtk+-2.0-uninstalled.pc
1443 m4macros/Makefile
1444 po/Makefile.in
1445 build/Makefile
1446 build/win32/Makefile
1447 build/win32/dirent/Makefile
1448 demos/Makefile
1449 demos/gtk-demo/Makefile
1450 tests/Makefile
1451 docs/Makefile
1452 docs/reference/Makefile
1453 docs/reference/gdk-pixbuf/Makefile
1454 docs/reference/gdk/Makefile
1455 docs/reference/gtk/Makefile
1456 docs/faq/Makefile
1457 docs/tutorial/Makefile
1458 gdk-pixbuf/Makefile
1459 gdk-pixbuf/makefile.mingw
1460 gdk-pixbuf/gdk_pixbuf.rc
1461 gdk-pixbuf/gdk-pixbuf-features.h
1462 gdk-pixbuf/pixops/Makefile
1463 gdk-pixbuf/pixops/makefile.mingw
1464 gdk/Makefile
1465 gdk/makefile.mingw
1466 gdk/x11/Makefile
1467 gdk/win32/Makefile
1468 gdk/win32/makefile.mingw
1469 gdk/win32/rc/Makefile
1470 gdk/win32/rc/gdk.rc
1471 gdk/linux-fb/Makefile
1472 gtk/Makefile
1473 gtk/makefile.mingw
1474 gtk/makefile.msc
1475 gtk/gtkversion.h
1476 gtk/gtk-win32.rc
1477 gtk/stock-icons/Makefile
1478 gtk/theme-bits/Makefile
1479 modules/Makefile
1480 modules/input/Makefile
1481 contrib/Makefile
1482 contrib/gdk-pixbuf-xlib/Makefile
1483 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1484 ])