]> Pileus Git - ~andy/gtk/blob - configure.in
Fix up the freetype checking logic. Suppress suprious "no" with
[~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
596     dnl Now we check to see if our libtool supports shared lib deps
597     dnl (in a rather ugly way even)
598     if $dynworks; then
599         pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config"
600         pixbuf_deplibs_check=`$pixbuf_libtool_config | \
601             grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \
602             sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'`
603         if test "x$pixbuf_deplibs_check" = "xnone" || \
604            test "x$pixbuf_deplibs_check" = "xunknown" || \
605            test "x$pixbuf_deplibs_check" = "x"; then
606             dynworks=false
607         fi
608     fi
609
610     if $dynworks; then
611         AC_DEFINE(USE_GMODULE)
612         AC_MSG_RESULT(yes)
613     else
614         AC_MSG_RESULT(no)
615     fi
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" = "xx11" ; 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=false)
876       if $have_freetype ; 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 $have_freetype ; then
902       :
903     else
904       AC_MSG_ERROR([pangoxft Pango backend found but did not find freetype libraries])
905     fi
906   else
907     PANGO_PACKAGES="pangox"
908     have_xft=false
909   fi
910
911   AM_CONDITIONAL(HAVE_XFT, $have_xft)
912
913   #
914   # If Pango included the shared library dependencies from X11 in
915   # the pkg-config output, then we use that (to avoid duplicates).
916   # but if they were omitted to avoid binary compatibility problems
917   # then we need to repeat the checks.
918   #
919   x_libs="`$PKG_CONFIG --libs $PANGO_PACKAGES`"
920   case x_libs in
921     *-lX11*) pango_omitted_x_deps=no ;;
922     *)       pango_omitted_x_deps=yes ;;
923   esac
924
925   x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`"
926   x_extra_libs=
927
928   if test $pango_omitted_x_deps = yes ; then
929     AC_PATH_XTRA
930
931     if test x$no_x = xyes ; then
932       AC_MSG_ERROR([X development libraries not found])
933     fi
934
935     x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS"
936
937     #
938     # Checks for Xft/XRender
939     #
940     XFT_LIBS=""
941     XFT_CFLAGS=""
942     if test $have_xft = true ; then
943       gtk_save_cppflags="$CPPFLAGS"
944       CPPFLAGS="$CPPFLAGS $x_cflags"
945       have_xft=false
946
947       AC_CHECK_LIB(Xrender, XRenderFindFormat, 
948         [AC_CHECK_LIB(Xft, XftFontOpen,
949           [AC_CHECK_HEADER(X11/Xft/XftFreetype.h,
950             have_xft=true,:)],
951           :,-lXrender -lXext $x_libs $FREETYPE_LIBS)]
952       ,:,-lXext $x_libs)
953
954       CPPFLAGS="$gtk_save_cppflags"
955
956       if $have_xft ; then
957         x_libs="$X_LIBS -lXft -lXrender -lXext -lX11 $FREETYPE_LIBS $X_EXTRA_LIBS"
958       else
959         AC_MSG_ERROR([pangoxft Pango backend found, but Xft not found])
960       fi
961     fi
962   fi            
963
964   ## Strip the .la files
965  
966   x_libs_for_checks=""
967   for I in $x_libs ; do
968     case $I in 
969       *.la) ;;
970       *) x_libs_for_checks="$x_libs_for_checks $I" ;;
971     esac
972   done
973
974   # Sanity check for the X11 library
975   AC_CHECK_LIB(X11, XOpenDisplay, :,
976             AC_MSG_ERROR([*** libX11 not found. Check 'config.log' for more details.]),
977             $x_libs_for_checks)
978
979   if test "x$enable_shm" = "xyes"; then
980     # Check for the Xext library (needed for XShm extention)
981     AC_CHECK_LIB(Xext, XShmAttach,
982         if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
983           x_extra_libs="-lXext"
984         fi,
985         # On AIX, it is in XextSam instead, but we still need -lXext
986         AC_CHECK_LIB(XextSam, XShmAttach, 
987             if test -z "`echo $x_libs | grep "\-lXext" 2> /dev/null`"; then
988                x_extra_libs="-lXextSam -lXext"
989             else
990                x_extra_libs="-lXextSam"
991             fi, , $x_libs_for_checks),
992         $x_libs_for_checks)
993   fi
994
995   GDK_PIXBUF_XLIB_EXTRA_CFLAGS="$x_cflags"
996   # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11
997   GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs `$PKG_CONFIG --libs pangox`"
998
999   # Check for shaped window extension
1000
1001   AC_CHECK_LIB(Xext, XShapeCombineMask,
1002       if test -z "`echo $x_extra_libs $x_libs | grep "\-lXext" 2> /dev/null`"; then
1003            x_extra_libs="-lXext $x_extra_libs"
1004       fi
1005       AC_DEFINE(HAVE_SHAPE_EXT),
1006       ,
1007       $x_libs_for_checks)
1008
1009   # Check for XConvertCase (X11R6 specific)
1010
1011   AC_CHECK_LIB(X11, XConvertCase,
1012       AC_DEFINE(HAVE_XCONVERTCASE),
1013       ,
1014       $x_libs_for_checks)
1015
1016   # Check for XIM support.
1017
1018   AC_CHECK_LIB(X11, XUnregisterIMInstantiateCallback,
1019             : ,
1020             enable_xim_inst="no",
1021             $x_libs_for_checks)
1022
1023   # On Solaris, calling XRegisterIMInstantiateCallback seems to
1024   # cause an immediate segfault, so we disable it, unless
1025   # the user specifically forces it to be on.
1026
1027   if test x$enable_xim_inst = xmaybe ; then
1028     case host in
1029           *-*-solaris*)
1030             enable_xim_inst="no"
1031             ;;
1032           *)
1033             enable_xim_inst="yes"
1034             ;;
1035     esac
1036   fi
1037
1038   if test "x$enable_xim" = "xyes"; then
1039     GTK_XIM_FLAGS="-DUSE_XIM"
1040     if test "x$enable_xim_inst" = "xyes"; then
1041       AC_DEFINE(USE_X11R6_XIM)
1042     fi
1043   fi
1044
1045   # Check for XKB support.
1046
1047   if test "x$enable_xkb" = "xyes"; then
1048         AC_MSG_WARN(XKB support explicitly enabled)
1049         AC_DEFINE(HAVE_XKB)
1050   elif test "x$enable_xkb" = "xmaybe"; then
1051         AC_CHECK_LIB(X11, XkbQueryExtension,
1052                      AC_DEFINE(HAVE_XKB),
1053                      ,
1054                      $x_libs_for_checks)
1055   else
1056         AC_MSG_WARN(XKB support explicitly disabled)
1057   fi
1058
1059   x_cflags="$X_CFLAGS"
1060   x_ldflags="$X_LDFLAGS"
1061
1062   # set up things for XInput
1063
1064   if test "x$with_xinput" = "xgxi" || test "x$with_xinput" = "xyes"; then
1065     AC_DEFINE(XINPUT_GXI)
1066     xinput_progs=gxid
1067     x_extra_libs="-lXi $x_extra_libs"
1068   elif test "x$with_xinput" = "xxfree"; then
1069     AC_DEFINE(XINPUT_XFREE)
1070     x_extra_libs="-lXi $x_extra_libs"
1071   else
1072     AC_DEFINE(XINPUT_NONE)
1073   fi
1074
1075   AM_CONDITIONAL(XINPUT_GXI, test x$with_xinput = xgxi)
1076   AM_CONDITIONAL(XINPUT_XFREE, test x$with_xinput = xxfree)
1077
1078   if test "x$enable_shm" = "xyes"; then
1079     # Check for shared memory
1080     AC_CHECK_HEADER(sys/ipc.h, AC_DEFINE(HAVE_IPC_H), no_sys_ipc=yes)
1081     AC_CHECK_HEADER(sys/shm.h, AC_DEFINE(HAVE_SHM_H), no_sys_shm=yes)
1082
1083     # Check for the X shared memory extension header file
1084     have_xshm=no 
1085     AC_MSG_CHECKING(X11/extensions/XShm.h)
1086     if test "x$no_xext_lib" = "xyes"; then
1087       :
1088     else
1089       gtk_save_CFLAGS="$CFLAGS"
1090       CFLAGS="$CFLAGS $x_cflags"
1091       AC_TRY_COMPILE([
1092 #include <stdlib.h>
1093 #include <sys/types.h>
1094 #include <sys/ipc.h>
1095 #include <sys/shm.h>
1096 #include <X11/Xlib.h>
1097 #include <X11/Xutil.h>
1098 #include <X11/extensions/XShm.h>
1099 ], [XShmSegmentInfo *x_shm_info;], have_xshm=yes)
1100       CFLAGS="$gtk_save_CFLAGS"
1101     fi
1102     AC_MSG_RESULT($have_xshm)
1103     if test $have_xshm = yes ; then
1104       AC_DEFINE(HAVE_XSHM_H)
1105     fi
1106   fi
1107
1108   GDK_EXTRA_CFLAGS=
1109   if test $pango_omitted_x_deps = yes ; then
1110     GDK_EXTRA_LIBS="$x_extra_libs $x_libs $GDK_EXTRA_LIBS"
1111   else
1112     GDK_EXTRA_LIBS="$x_extra_libs $GDK_EXTRA_LIBS"
1113   fi
1114
1115   AM_CONDITIONAL(USE_X11, true)
1116 else
1117   AM_CONDITIONAL(USE_X11, false)
1118 fi
1119
1120 if test "x$gdktarget" = "xwin32"; then
1121   # We start off with the libraries from Pango
1122
1123   ## be sure we also have Pango built with win32 support
1124   PANGO_PACKAGES="pangowin32"
1125
1126   if test x$have_wintab = xyes; then
1127     GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include"
1128     AC_SUBST(GDK_WIN32_EXTRA_CFLAGS)
1129   fi
1130
1131   GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid"
1132   AM_CONDITIONAL(USE_WIN32, true)
1133 else
1134   AM_CONDITIONAL(USE_WIN32, false)
1135 fi
1136
1137 AC_SUBST(xinput_progs)
1138
1139 GDK_PIXBUF_XLIB_PACKAGES=
1140 GDK_PIXBUF_XLIB_DEP_LIBS="`$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_XLIB_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1141 GDK_PIXBUF_XLIB_DEP_CFLAGS="`$PKG_CONFIG --cflags  $GDK_PIXBUF_PACKAGES $GDK_PIXBUF_XLIB_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_PIXBUF_XLIB_EXTRA_CFLAGS"
1142
1143 AC_SUBST(GDK_PIXBUF_XLIB_PACKAGES)
1144 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_LIBS)
1145 AC_SUBST(GDK_PIXBUF_XLIB_EXTRA_CFLAGS)
1146 AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS)
1147 AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS)
1148
1149 if test "x$gdktarget" = "xlinux-fb"; then
1150   if $have_freetype ; then
1151     :
1152   else
1153     AC_MSG_ERROR([Using linux-fb backend but freetype was not found])
1154   fi
1155
1156   ft2_libs="`$PKG_CONFIG --libs pangoft2`"
1157   case ft2_libs in
1158     *-lfreetype*) pango_omitted_ft2_deps=no ;;
1159     *)            pango_omitted_ft2_deps=yes ;;
1160   esac
1161
1162   CFLAGS="$CFLAGS $FREETYPE_CFLAGS"
1163
1164   if test x$enable_shadowfb = xyes ; then
1165     AC_DEFINE(ENABLE_SHADOW_FB)
1166   fi
1167
1168   if test x$enable_fbmanager = xyes ; then
1169     AC_DEFINE(ENABLE_FB_MANAGER)
1170     AM_CONDITIONAL(ENABLE_FB_MANAGER, true)
1171   else
1172     AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1173   fi
1174   
1175   GDK_EXTRA_CFLAGS=""
1176   if test $pango_omitted_ft2_deps = yes ; then
1177     GDK_EXTRA_LIBS="$FREETYPE_LIBS $GDK_EXTRA_LIBS"
1178   fi
1179
1180   AM_CONDITIONAL(USE_LINUX_FB, true)
1181 else
1182   AM_CONDITIONAL(USE_LINUX_FB, false)
1183   AM_CONDITIONAL(ENABLE_FB_MANAGER, false)
1184 fi
1185
1186 #
1187 # Pick correct Pango packages to use
1188 #
1189
1190 if test "x$gdktarget" = "xx11"; then
1191         if $have_xft = true ; then
1192             PANGO_PACKAGES="pangox pangoxft"
1193         else
1194             PANGO_PACKAGES=pangox
1195         fi
1196 elif test "x$gdktarget" = "xwin32"; then
1197         PANGO_PACKAGES=pangowin32
1198 elif test "x$gdktarget" = "xlinux-fb"; then
1199         PANGO_PACKAGES=pangoft2
1200 else
1201         PANGO_PACKAGES=pango
1202 fi
1203
1204 # Check for Pango flags
1205
1206 AC_MSG_CHECKING(Pango flags)
1207 if $PKG_CONFIG --exists $PANGO_PACKAGES ; then
1208         PANGO_CFLAGS=`$PKG_CONFIG --cflags $PANGO_PACKAGES`
1209         PANGO_LIBS=`$PKG_CONFIG --libs $PANGO_PACKAGES`
1210
1211         AC_MSG_RESULT($PANGO_CFLAGS $PANGO_LIBS)
1212 else
1213         AC_MSG_ERROR([
1214 *** Pango not found. Pango is required to build GTK+.
1215 *** See http://www.pango.org for Pango information.
1216 *** For the framebuffer target, you will need to build 
1217 *** Pango with freetype support.
1218 ])
1219 fi
1220
1221 CFLAGS="$CFLAGS $PANGO_CFLAGS"
1222
1223 if $PKG_CONFIG --uninstalled $PANGO_PACKAGES; then
1224         :
1225 else
1226         AC_CHECK_LIB(pango-1.0, pango_context_new, :, AC_MSG_ERROR([
1227 *** Can't link to Pango. Pango is required to build
1228 *** GTK+. For more information see http://www.pango.org]), $PANGO_LIBS)
1229 fi
1230
1231 CFLAGS="$saved_cflags"
1232 LDFLAGS="$saved_ldflags"
1233
1234 GDK_PACKAGES=$PANGO_PACKAGES
1235 GDK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_LIBS"
1236 GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags $GDK_PIXBUF_PACKAGES $GDK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS"
1237
1238 #
1239 # If we aren't writing explicit dependencies, then don't put the extra libraries we need
1240 # into the pkg-config files
1241 #
1242 if test $enable_explicit_deps != yes ; then
1243   GDK_EXTRA_LIBS=
1244 fi
1245
1246 AC_SUBST(GDK_PACKAGES)
1247 AC_SUBST(GDK_EXTRA_LIBS)
1248 AC_SUBST(GDK_EXTRA_CFLAGS)
1249 AC_SUBST(GDK_DEP_LIBS)
1250 AC_SUBST(GDK_DEP_CFLAGS)
1251
1252
1253 ########################################
1254 # Check for Accessibility Toolkit flags
1255 ########################################
1256
1257 ATK_PACKAGES=atk
1258 AC_MSG_CHECKING(ATK flags)
1259 if $PKG_CONFIG --exists $ATK_PACKAGES ; then
1260         ATK_CFLAGS=`$PKG_CONFIG --cflags $ATK_PACKAGES`
1261         ATK_LIBS=`$PKG_CONFIG --libs $ATK_PACKAGES`
1262
1263         AC_MSG_RESULT($ATK_CFLAGS $ATK_LIBS)
1264 else
1265         AC_MSG_ERROR([
1266 *** Accessibility Toolkit not found. Accessibility Toolkit is required
1267 *** to build GTK+.
1268 ])
1269 fi
1270
1271 if $PKG_CONFIG --uninstalled $ATK_PACKAGES; then
1272         :
1273 else
1274         AC_CHECK_LIB(atk-1.0, atk_object_get_type, : , AC_MSG_ERROR([
1275                 *** Cannot link to Accessibility Toolkit. Accessibility Toolkit is required
1276                 *** to build GTK+]), $ATK_LIBS $GLIB_LIBS)
1277 fi
1278
1279 GTK_PACKAGES=atk
1280 GTK_EXTRA_LIBS=
1281 GTK_EXTRA_CFLAGS= 
1282 GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS"
1283 GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags  $GTK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
1284
1285 AC_SUBST(GTK_PACKAGES)
1286 AC_SUBST(GTK_EXTRA_LIBS)
1287 AC_SUBST(GTK_EXTRA_CFLAGS)
1288 AC_SUBST(GTK_DEP_LIBS)
1289 AC_SUBST(GTK_DEP_CFLAGS)
1290
1291
1292 AC_SUBST(GTK_DEBUG_FLAGS)
1293 AC_SUBST(GTK_XIM_FLAGS)
1294
1295 ##################################################
1296 # Checks for gtk-doc and docbook-tools
1297 ##################################################
1298
1299 AC_ARG_WITH(html-dir, [  --with-html-dir=PATH    path to installed docs ])
1300
1301 if test "x$with_html_dir" = "x" ; then
1302   HTML_DIR='${datadir}/gtk-doc/html'
1303 else
1304   HTML_DIR=$with_html_dir
1305 fi
1306
1307 AC_SUBST(HTML_DIR)
1308
1309 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1310
1311 gtk_doc_min_version=0.9
1312 if $GTKDOC ; then 
1313     gtk_doc_version=`gtkdoc-mkdb --version`
1314     AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
1315     if perl <<EOF ; then
1316       exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
1317             ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
1318 EOF
1319       AC_MSG_RESULT(yes)
1320    else
1321       AC_MSG_RESULT(no)
1322       GTKDOC=false
1323    fi
1324 fi
1325
1326 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1327 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1328
1329 dnl Make people enable the gtk-doc stuff explicitely.
1330 AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc        use gtk-doc to build documentation [default=no]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
1331
1332 if test x$enable_gtk_doc = xyes ; then
1333   if test x$GTKDOC != xtrue ; then
1334     enable_gtk_doc=no 
1335   fi
1336 fi
1337
1338 dnl NOTE: We need to use a separate automake conditional for this
1339 dnl       to make this work with the tarballs.
1340 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1341
1342
1343 ##################################################
1344 # Output commands
1345 ##################################################
1346
1347 AC_OUTPUT_COMMANDS([
1348
1349 ## Generate `gdk/gdkconfig.h' in two cases
1350 ## 1. `config.status' is run either explicitly, or via configure.
1351 ##     Esp. not when it is run in `Makefile' to generate makefiles and
1352 ##     config.h
1353 ## 2. CONFIG_OTHER is set explicitly
1354 ##
1355 ## Case 1 is difficult.  We know that `automake' sets one of
1356 ## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
1357 ## only when AM_CONFIG_HEADER is set, however.
1358
1359 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1360   # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1361   CONFIG_OTHER=${CONFIG_OTHER:-gdk/gdkconfig.h}
1362 fi
1363 case "$CONFIG_OTHER" in
1364 *gdk/gdkconfig.h*)
1365         echo creating gdk/gdkconfig.h
1366         outfile=gdkconfig.h-tmp
1367         cat > $outfile <<\_______EOF
1368 /* gdkconfig.h
1369  *
1370  * This is a generated file.  Please modify `configure.in'
1371  */
1372
1373 #ifndef GDKCONFIG_H
1374 #define GDKCONFIG_H
1375
1376 #ifdef __cplusplus
1377 extern "C" {
1378 #endif /* __cplusplus */
1379
1380 _______EOF
1381
1382         cat >>$outfile <<_______EOF
1383 $gdk_windowing
1384 $gdk_wc
1385 _______EOF
1386
1387         cat >>$outfile <<_______EOF
1388
1389 #ifdef __cplusplus
1390 }
1391 #endif /* __cplusplus */
1392
1393 #endif /* GDKCONFIG_H */
1394 _______EOF
1395
1396
1397         if cmp -s $outfile gdk/gdkconfig.h; then
1398           echo gdk/gdkconfig.h is unchanged
1399           rm -f $outfile
1400         else
1401           mv $outfile gdk/gdkconfig.h
1402         fi ;;
1403 esac
1404 ],[
1405 if test "x$gdktarget" = "xx11" ; then
1406   gdk_windowing='
1407 #define GDK_WINDOWING_X11'
1408 elif test "x$gdktarget" = "xwin32" ; then
1409   gdk_windowing='
1410 #define GDK_WINDOWING_WIN32'
1411 elif test "x$gdktarget" = "xlinux-fb" ; then
1412   gdk_windowing='
1413 #define GDK_WINDOWING_FB
1414 #define GDK_NATIVE_WINDOW_POINTER'
1415 fi
1416
1417 if test x$gdk_wchar_h = xyes; then
1418   gdk_wc='
1419 #define GDK_HAVE_WCHAR_H 1'
1420 fi
1421 if test x$gdk_wctype_h = xyes; then
1422   gdk_wc="\$gdk_wc
1423 #define GDK_HAVE_WCTYPE_H 1"
1424 fi
1425 if test x$gdk_working_wctype = xno; then
1426   gdk_wc="\$gdk_wc
1427 #define GDK_HAVE_BROKEN_WCTYPE 1"
1428 fi
1429
1430
1431 ])
1432
1433 AC_PATH_PROG(SGML2HTML, sgml2html, no)
1434 AM_CONDITIONAL(HAVE_SGML2HTML, test x$SGML2HTML != xno)
1435
1436 AC_OUTPUT([
1437 config.h.win32
1438 gtk-zip.sh
1439 gtk+.spec
1440 Makefile
1441 gdk-pixbuf-2.0.pc
1442 gdk-2.0.pc
1443 gtk+-2.0.pc
1444 gdk-pixbuf-2.0-uninstalled.pc
1445 gdk-2.0-uninstalled.pc
1446 gtk+-2.0-uninstalled.pc
1447 m4macros/Makefile
1448 po/Makefile.in
1449 build/Makefile
1450 build/win32/Makefile
1451 build/win32/dirent/Makefile
1452 demos/Makefile
1453 demos/gtk-demo/Makefile
1454 tests/Makefile
1455 docs/Makefile
1456 docs/reference/Makefile
1457 docs/reference/gdk-pixbuf/Makefile
1458 docs/reference/gdk/Makefile
1459 docs/reference/gtk/Makefile
1460 docs/faq/Makefile
1461 docs/tutorial/Makefile
1462 gdk-pixbuf/Makefile
1463 gdk-pixbuf/makefile.mingw
1464 gdk-pixbuf/gdk_pixbuf.rc
1465 gdk-pixbuf/gdk-pixbuf-features.h
1466 gdk-pixbuf/pixops/Makefile
1467 gdk-pixbuf/pixops/makefile.mingw
1468 gdk/Makefile
1469 gdk/makefile.mingw
1470 gdk/x11/Makefile
1471 gdk/win32/Makefile
1472 gdk/win32/makefile.mingw
1473 gdk/win32/rc/Makefile
1474 gdk/win32/rc/gdk.rc
1475 gdk/linux-fb/Makefile
1476 gtk/Makefile
1477 gtk/makefile.mingw
1478 gtk/makefile.msc
1479 gtk/gtkversion.h
1480 gtk/gtk-win32.rc
1481 gtk/stock-icons/Makefile
1482 gtk/theme-bits/Makefile
1483 modules/Makefile
1484 modules/input/Makefile
1485 contrib/Makefile
1486 contrib/gdk-pixbuf-xlib/Makefile
1487 contrib/gdk-pixbuf-xlib/gdk-pixbuf-xlib-2.0.pc
1488 ])