1 dnl ***********************************
2 dnl *** include special GLib macros ***
3 dnl ***********************************
4 builtin(include, acglib.m4)dnl
5 builtin(include, glib/libcharset/codeset.m4)dnl
6 builtin(include, glib/libcharset/glibc21.m4)dnl
8 # require autoconf 2.52
11 # Process this file with autoconf to produce a configure script.
14 # Save this value here, since automake will set cflags later
15 cflags_set=${CFLAGS+set}
17 GLIB_AC_DIVERT_BEFORE_HELP([
19 # The following version number definitions apply to GLib, GModule, GObject
20 # and GThread as a whole, so if changes occoured in any of them, they are all
21 # treated with the same interface and binary age.
24 # GLIB_MICRO_VERSION += 1;
25 # GLIB_INTERFACE_AGE += 1;
26 # GLIB_BINARY_AGE += 1;
27 # if any functions have been added, set GLIB_INTERFACE_AGE to 0.
28 # if backwards compatibility has been broken,
29 # set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
35 GLIB_BINARY_AGE=`expr 100 '*' $GLIB_MINOR_VERSION + $GLIB_MICRO_VERSION`
36 GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
39 AC_SUBST(GLIB_MAJOR_VERSION)
40 AC_SUBST(GLIB_MINOR_VERSION)
41 AC_SUBST(GLIB_MICRO_VERSION)
42 AC_SUBST(GLIB_VERSION)
43 AC_SUBST(GLIB_INTERFACE_AGE)
44 AC_SUBST(GLIB_BINARY_AGE)
47 LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
48 LT_CURRENT=`expr 100 '*' $GLIB_MINOR_VERSION + $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
49 LT_REVISION=$GLIB_INTERFACE_AGE
50 LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`
51 LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
56 AC_SUBST(LT_CURRENT_MINUS_AGE)
61 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
63 # Specify a configuration file
64 AM_CONFIG_HEADER(config.h)
66 AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION,
67 [Define to the GLIB major version])
68 AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION,
69 [Define to the GLIB minor version])
70 AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION,
71 [Define to the GLIB micro version])
72 AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE,
73 [Define to the GLIB interface age])
74 AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE,
75 [Define to the GLIB binary age])
77 dnl Initialize maintainer mode
82 AC_MSG_CHECKING(for the BeOS)
85 glib_native_beos="yes"
91 AC_MSG_RESULT([$glib_native_beos])
95 AC_MSG_CHECKING([for Win32])
99 G_LIB_WIN32_RESOURCE=glib-win32res.lo
100 G_MODULE_WIN32_RESOURCE=gmodule-win32res.lo
101 G_OBJECT_WIN32_RESOURCE=gobject-win32res.lo
102 G_THREAD_WIN32_RESOURCE=gthread-win32res.lo
104 GMODULE_DEF=gmodule.def
105 GOBJECT_DEF=gobject.def
106 GTHREAD_DEF=gthread.def
107 TESTGMODULE_EXP=testgmodule.exp
111 G_LIB_WIN32_RESOURCE=
112 G_MODULE_WIN32_RESOURCE=
113 G_OBJECT_WIN32_RESOURCE=
114 G_THREAD_WIN32_RESOURCE=
122 AC_MSG_RESULT([$glib_native_win32])
123 AM_CONDITIONAL(OS_WIN32, test "$glib_native_win32" = "yes")
124 AC_SUBST(G_LIB_WIN32_RESOURCE)
125 AC_SUBST(G_MODULE_WIN32_RESOURCE)
126 AC_SUBST(G_OBJECT_WIN32_RESOURCE)
127 AC_SUBST(G_THREAD_WIN32_RESOURCE)
129 AC_SUBST(GMODULE_DEF)
130 AC_SUBST(GOBJECT_DEF)
131 AC_SUBST(GTHREAD_DEF)
132 AC_SUBST(TESTGMODULE_EXP)
134 if test "$glib_native_win32" = "yes"; then
135 AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
137 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
139 GLIB_AC_DIVERT_BEFORE_HELP([
140 # figure debugging default, prior to $ac_help setup
141 case $GLIB_MINOR_VERSION in
142 *[[13579]]) debug_default=yes ;;
143 *) debug_default=minimum ;;
147 dnl declare --enable-* args and collect ac_help strings
148 AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
149 AC_ARG_ENABLE(gc_friendly, [ --enable-gc-friendly turn on garbage collector friendliness [default=no]],,enable_gc_friendly=no)
150 AC_ARG_ENABLE(mem_pools, [ --disable-mem-pools disable all glib memory pools],,disable_mem_pools=no)
151 AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],
153 AC_ARG_ENABLE(threads, [ --enable-threads turn on basic thread support [default=yes]
154 ([=no] will override --with-threads)],,enable_threads=yes)
155 AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogeneration rules],,enable_rebuilds=yes)
157 if test "x$enable_threads" != "xyes"; then
161 AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}",
162 [Whether glib was compiled with debugging enabled])
164 AC_MSG_CHECKING(whether to enable garbage collector friendliness)
165 if test "x$enable_gc_friendly" = "xyes"; then
166 AC_DEFINE(ENABLE_GC_FRIENDLY, 1, [Whether to enable GC friendliness])
167 AC_SUBST(ENABLE_GC_FRIENDLY)
173 AC_MSG_CHECKING(whether to disable memory pools)
174 if test "x$disable_mem_pools" = "xno"; then
177 AC_DEFINE(DISABLE_MEM_POOLS, 1, [Whether to disable memory pools])
178 AC_SUBST(DISABLE_MEM_POOLS)
182 dnl Checks for programs.
185 dnl Check for a working C++ compiler, but do not bail out, if none is found.
186 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, gcc)
189 AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=)
190 AM_CONDITIONAL(HAVE_CXX, test "$CXX" != "")
201 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
202 if test x$PKG_CONFIG = xno ; then
203 AC_MSG_ERROR([*** pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/])
206 if $PKG_CONFIG --atleast-pkgconfig-version 0.14 ; then
209 AC_MSG_ERROR([*** pkg-config too old; version 0.14 or better required.])
212 if test "x$enable_debug" = "xyes"; then
213 if test x$cflags_set != xset ; then
215 *[[\ \ ]]-g[[\ \ ]]*) ;;
216 *) CFLAGS="$CFLAGS -g" ;;
220 GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
222 GLIB_DEBUG_FLAGS="-DG_DISABLE_CAST_CHECKS"
224 if test "x$enable_debug" = "xno"; then
225 GLIB_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
229 # Ensure MSVC-compatible struct packing convention is used when
230 # compiling for Win32 with gcc.
231 # What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
232 # gcc2 uses "-fnative-struct".
233 if test x"$glib_native_win32" = xyes; then
234 if test x"$GCC" = xyes; then
236 AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
237 if test -z "$ac_cv_prog_CC"; then
240 our_gcc="$ac_cv_prog_CC"
242 case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
244 if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
245 msnative_struct='-fnative-struct'
249 if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
250 msnative_struct='-mms-bitfields'
254 if test x"$msnative_struct" = x ; then
255 AC_MSG_RESULT([no way])
256 AC_MSG_WARN([produced libraries might be incompatible with MSVC-compiled code])
258 CFLAGS="$CFLAGS $msnative_struct"
259 AC_MSG_RESULT([${msnative_struct}])
267 # define a MAINT-like variable REBUILD which is set if Perl
268 # and awk are found, so autogenerated sources can be rebuilt
270 AC_CHECK_PROGS(PERL, perl5 perl)
271 # We would like indent, but don't require it.
272 AC_CHECK_PROG(INDENT, indent, indent)
274 if test "x$enable_rebuilds" = "xyes" && \
276 $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
277 test -n "$AWK" ; then
282 # Need full path to Perl for glib-mkenums
284 if test "x$PERL" != x ; then
285 AC_PATH_PROG(PERL_PATH, $PERL)
287 PERL_PATH="/usr/bin/env perl"
291 dnl ***********************
292 dnl *** Tests for iconv ***
293 dnl ***********************
295 dnl We do this before the gettext checks, to avoid distortion
297 AC_ARG_WITH(libiconv, [ --with-libiconv=[no/gnu/native] use the libiconv library ],,with_libiconv=maybe)
300 case $with_libiconv in
302 # Check in the C library first
303 AC_CHECK_FUNC(iconv_open, with_libiconv=no; found_iconv=yes)
304 # Check if we have GNU libiconv
305 if test $found_iconv = "no"; then
306 AC_CHECK_LIB(iconv, libiconv_open, with_libiconv=gnu; found_iconv=yes)
308 # Check if we have a iconv in -liconv, possibly from vendor
309 if test $found_iconv = "no"; then
310 AC_CHECK_LIB(iconv, iconv_open, with_libiconv=native; found_iconv=yes)
314 AC_CHECK_FUNC(iconv_open, with_libiconv=no; found_iconv=yes)
317 AC_CHECK_LIB(iconv, libiconv_open, with_libiconv=gnu; found_iconv=yes)
320 AC_CHECK_LIB(iconv, iconv_open, with_libiconv=native; found_iconv=yes)
324 if test "x$found_iconv" = "xno" ; then
325 AC_MSG_ERROR([*** No iconv() implementation found in C library or libiconv])
332 ALL_LINGUAS="az be bg ca cs da de el es eu fr gl hi ja ko ms nl nn no pl pt pt_BR ro ru sk sl sq sv ta tr uk vi zh_CN zh_TW"
335 if test "$gt_cv_func_dgettext_libc" = "yes" || test "$gt_cv_func_dgettext_libintl" = "yes"; then
339 *** You must have either have gettext support in your C library, or use the
340 *** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html
344 LIBS="$LIBS $INTLLIBS"
346 GETTEXT_PACKAGE=glib20
347 AC_SUBST(GETTEXT_PACKAGE)
348 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",
349 [Define the gettext package to be used])
351 # AM_GLIB_GNU_GETTEXT above substs $DATADIRNAME
352 # this is the directory where the *.{mo,gmo} files are installed
353 GLIB_LOCALE_DIR="${prefix}/${DATADIRNAME}/locale"
354 AC_DEFINE_UNQUOTED(GLIB_LOCALE_DIR, "$GLIB_LOCALE_DIR",
355 [Define the location where the catalogs will be installed])
357 AC_CHECK_FUNCS(bind_textdomain_codeset)
360 dnl Now we are done with gettext checks, figure out ICONV_LIBS
363 if test x$with_libiconv != xno ; then
364 case " $INTLLIBS " in
365 *[[\ \ ]]-liconv[[\ \ ]]*) ;;
366 *) ICONV_LIBS="-liconv" ;;
371 case $with_libiconv in
373 AC_DEFINE(USE_LIBICONV_GNU, 1, [Using GNU libiconv])
376 AC_DEFINE(USE_LIBICONV_NATIVE, 1, [Using a native implementation of iconv in a separate library])
380 dnl Initialize libtool
385 if test "x$GCC" = "xyes"; then
387 *[[\ \ ]]-Wall[[\ \ ]]*) ;;
388 *) CFLAGS="$CFLAGS -Wall" ;;
391 if test "x$enable_ansi" = "xyes"; then
393 *[[\ \ ]]-ansi[[\ \ ]]*) ;;
394 *) CFLAGS="$CFLAGS -ansi" ;;
398 *[[\ \ ]]-pedantic[[\ \ ]]*) ;;
399 *) CFLAGS="$CFLAGS -pedantic" ;;
405 dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
407 if test $cross_compiling != yes ; then
408 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
411 AC_TRY_RUN([#include <math.h>
412 int main (void) { return (log(1) != log(1.)); }],
413 AC_MSG_RESULT(none needed),
414 glib_save_CFLAGS=$CFLAGS
415 CFLAGS="$CFLAGS -std1"
416 AC_TRY_RUN([#include <math.h>
417 int main (void) { return (log(1) != log(1.)); }],
418 AC_MSG_RESULT(-std1),
420 CFLAGS=$glib_save_CFLAGS
422 [No ANSI prototypes found in library. (-std1 didn't work.)])
428 dnl NeXTStep cc seems to need this
429 AC_MSG_CHECKING([for extra flags for POSIX compliance])
430 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
431 AC_MSG_RESULT(none needed),
432 glib_save_CFLAGS=$CFLAGS
433 CFLAGS="$CFLAGS -posix"
434 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
435 AC_MSG_RESULT(-posix),
437 CFLAGS=$glib_save_CFLAGS
438 AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
440 # Checks for header files.
443 # Checks for library functions.
448 AC_CHECK_FUNCS(atexit on_exit)
450 AC_CHECK_SIZEOF(char)
451 AC_CHECK_SIZEOF(short)
452 AC_CHECK_SIZEOF(long)
454 AC_CHECK_SIZEOF(void *)
455 AC_CHECK_SIZEOF(long long)
456 AC_CHECK_SIZEOF(__int64)
458 if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 || test x$ac_cv_sizeof___int64 = x8 ; then
462 *** GLib requires a 64 bit type. You might want to consider
463 *** using the GNU C compiler.
467 if test x$ac_cv_sizeof_long_long = x8; then
468 # long long is a 64 bit integer.
469 AC_MSG_CHECKING(for format to printf and scanf a guint64)
470 AC_CACHE_VAL(glib_cv_long_long_format,[
471 for format in ll q I64; do
472 AC_TRY_RUN([#include <stdio.h>
475 long long b, a = -0x3AFAFAFAFAFAFAFALL;
477 sprintf (buffer, "%${format}u", a);
478 sscanf (buffer, "%${format}u", &b);
482 glib_cv_long_long_format=${format}
485 if test -n "$glib_cv_long_long_format"; then
486 AC_MSG_RESULT(%${glib_cv_long_long_format}u)
490 elif test x$ac_cv_sizeof___int64 = x8; then
491 # __int64 is a 64 bit integer.
492 AC_MSG_CHECKING(for format to printf and scanf a guint64)
493 # We know this is MSVC, and what the formats are
494 glib_cv_long_long_format=I64
495 AC_MSG_RESULT(%${glib_cv_long_long_format}u)
498 dnl long doubles were not used, and a portability problem
502 dnl ok, here we try to check whether the systems prototypes for
503 dnl malloc and friends actually match the prototypes provided
504 dnl by gmem.h (keep in sync). i currently only know how to check
505 dnl this reliably with gcc (-Werror), improvements for other
506 dnl compilers are apprechiated.
507 SANE_MALLOC_PROTOS=no
508 AC_MSG_CHECKING([if malloc() and friends prototypes are gmem.h compatible])
509 glib_save_CFLAGS=$CFLAGS
510 if test "x$GCC" = "xyes"; then
511 CFLAGS="$CFLAGS -Werror"
512 AC_TRY_COMPILE([#include <stdlib.h>], [
513 void* (*my_calloc_p) (size_t, size_t) = calloc;
514 void* (*my_malloc_p) (size_t) = malloc;
515 void (*my_free_p) (void*) = free;
516 void* (*my_realloc_p) (void*, size_t) = realloc;
522 AC_DEFINE(SANE_MALLOC_PROTOS, 1,
523 [Define if you have correct malloc prototypes])
524 SANE_MALLOC_PROTOS=yes)
526 AC_MSG_RESULT($SANE_MALLOC_PROTOS)
527 CFLAGS=$glib_save_CFLAGS
530 dnl check in which direction the stack grows
532 AC_CACHE_CHECK([for growing stack pointer],glib_cv_stack_grows,[
534 volatile int *a = 0, *b = 0;
536 int main () { volatile int y = 7; a = &y; foo (); return b > a; }
537 void foo (void) { volatile int x = 5; b = &x; }
539 glib_cv_stack_grows=no
541 glib_cv_stack_grows=yes
545 dnl AC_C_INLINE is useless to us since it bails out too early, we need to
546 dnl truely know which ones of `inline', `__inline' and `__inline__' are
547 dnl actually supported.
548 AC_CACHE_CHECK([for __inline],glib_cv_has__inline,[
550 __inline int foo () { return 0; }
551 int main () { return foo (); }
553 glib_cv_has__inline=yes
555 glib_cv_has__inline=no
558 case x$glib_cv_has__inline in
559 xyes) AC_DEFINE(G_HAVE___INLINE,1,[Have __inline keyword])
561 AC_CACHE_CHECK([for __inline__],glib_cv_has__inline__,[
563 __inline__ int foo () { return 0; }
564 int main () { return foo (); }
566 glib_cv_has__inline__=yes
568 glib_cv_has__inline__=no
571 case x$glib_cv_has__inline__ in
572 xyes) AC_DEFINE(G_HAVE___INLINE__,1,[Have __inline__ keyword])
574 AC_CACHE_CHECK([for inline], glib_cv_hasinline,[
577 inline int foo () { return 0; }
578 int main () { return foo (); }
580 glib_cv_hasinline=yes
585 case x$glib_cv_hasinline in
586 xyes) AC_DEFINE(G_HAVE_INLINE,1,[Have inline keyword])
589 # check for flavours of varargs macros
590 AC_MSG_CHECKING(for ISO C99 varargs macros in C)
592 int a(int p1, int p2, int p3);
593 #define call_a(...) a(1,__VA_ARGS__)
595 ],g_have_iso_c_varargs=yes,g_have_iso_c_varargs=no)
596 AC_MSG_RESULT($g_have_iso_c_varargs)
598 AC_MSG_CHECKING(for ISO C99 varargs macros in C++)
599 if test "$CXX" = ""; then
601 g_have_iso_cxx_varargs=no
605 int a(int p1, int p2, int p3);
606 #define call_a(...) a(1,__VA_ARGS__)
608 ],g_have_iso_cxx_varargs=yes,g_have_iso_cxx_varargs=no)
611 AC_MSG_RESULT($g_have_iso_cxx_varargs)
613 AC_MSG_CHECKING(for GNUC varargs macros)
615 int a(int p1, int p2, int p3);
616 #define call_a(params...) a(1,params)
618 ],g_have_gnuc_varargs=yes,g_have_gnuc_varargs=no)
619 AC_MSG_RESULT($g_have_gnuc_varargs)
621 # check for bytesex stuff
624 # check for header files
625 AC_CHECK_HEADERS([dirent.h float.h limits.h pwd.h sys/param.h sys/poll.h sys/select.h sys/types.h])
626 AC_CHECK_HEADERS([sys/time.h sys/times.h unistd.h values.h stdint.h sched.h])
628 # Checks for libcharset
631 AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
632 AC_CHECK_FUNCS(setlocale)
634 AC_MSG_CHECKING(whether make is GNU Make)
637 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
638 STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
645 AC_SUBST(STRIP_DUMMY)
646 AC_SUBST(STRIP_BEGIN)
649 # check additional type sizes
650 AC_CHECK_SIZEOF(size_t)
652 dnl Try to figure out whether gsize, gssize should be long or int
653 AC_MSG_CHECKING([for the appropriate definition for size_t])
655 case $ac_cv_sizeof_size_t in
665 *) AC_MSG_ERROR([No type matching size_t in size])
669 dnl If int/long are the same size, we see which one produces
670 dnl warnings when used in the location as size_t. (This matters
673 if test $ac_cv_sizeof_size_t = $ac_cv_sizeof_int &&
674 test $ac_cv_sizeof_size_t = $ac_cv_sizeof_long ; then
675 GLIB_CHECK_COMPILE_WARNINGS([
680 unsigned int *size_int = &s;
681 return (int)*size_int;
683 ],glib_size_type=int,
684 [GLIB_CHECK_COMPILE_WARNINGS([
689 unsigned long *size_long = &s;
690 return (int)*size_long;
692 ],glib_size_type=long)])
695 AC_MSG_RESULT(unsigned $glib_size_type)
697 # Check for some functions
698 AC_CHECK_FUNCS(lstat strerror strsignal memmove mkstemp vsnprintf stpcpy strcasecmp strncasecmp poll getcwd nanosleep vasprintf unsetenv getc_unlocked)
700 AC_FUNC_VSNPRINTF_C99
701 AC_FUNC_PRINTF_UNIX98
704 # Check whether to use trio printf
707 AC_ARG_ENABLE(included-printf, [ --enable-included-printf use included printf [default=auto]], enable_trio="$enableval")
709 if test "$enable_trio" != "no" ; then
710 if test "$ac_cv_func_vsnprintf_c99" != "yes" ; then
713 if test "$ac_cv_func_printf_unix98" != "yes" ; then
718 AM_CONDITIONAL(HAVE_GOOD_PRINTF, test "$enable_trio" != "yes")
719 if test "$enable_trio" != "yes" ; then
720 AC_DEFINE(HAVE_GOOD_PRINTF,1,[define to use system printf])
722 AC_DEFINE(HAVE_VASPRINTF,1)
723 AC_DEFINE(HAVE_C99_VSNPRINTF,1)
724 AC_DEFINE(HAVE_UNIX98_PRINTF,1)
727 # Check if bcopy can be used for overlapping copies, if memmove isn't found.
728 # The check is borrowed from the PERL Configure script.
729 if test "$ac_cv_func_memmove" != "yes"; then
730 AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
731 glib_cv_working_bcopy,[AC_TRY_RUN([
733 char buf[128], abc[128], *b;
735 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
736 for (align = 7; align >= 0; align--) {
737 for (len = 36; len; len--) {
738 b = buf+align; bcopy(abc, b, len);
739 for (off = 1; off <= len; off++) {
740 bcopy(b, b+off, len); bcopy(b+off, b, len);
741 if (bcmp(b, abc, len)) return(1);
746 }],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
747 if test "$glib_cv_working_bcopy" = "yes"; then
748 AC_DEFINE(HAVE_WORKING_BCOPY,1,[Have a working bcopy])
752 # Check for sys_errlist
753 AC_MSG_CHECKING(for sys_errlist)
755 extern char *sys_errlist[];
757 sys_errlist[sys_nerr-1][0] = 0;
758 ], glib_ok=yes, glib_ok=no)
759 AC_MSG_RESULT($glib_ok)
760 if test "$glib_ok" = "no"; then
761 AC_DEFINE(NO_SYS_ERRLIST,1,[global 'sys_errlist' not found])
764 # Check for sys_siglist
765 AC_MSG_CHECKING(for sys_siglist)
767 extern char *sys_siglist[];
768 exit (sys_siglist[0]);
769 ], glib_ok=yes, glib_ok=no)
770 AC_MSG_RESULT($glib_ok)
771 if test "$glib_ok" = "no"; then
772 AC_DEFINE(NO_SYS_SIGLIST,1,[global 'sys_siglist' not found])
775 # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
776 AC_MSG_CHECKING(for sys_siglist declaration)
777 AC_TRY_COMPILE([#include <signal.h>], [
778 strlen (sys_siglist[0]);
779 ], glib_ok=yes, glib_ok=no)
780 AC_MSG_RESULT($glib_ok)
781 if test "$glib_ok" = "no"; then
782 AC_DEFINE(NO_SYS_SIGLIST_DECL,1,[global 'sys_siglist' not declared])
785 # Check if <sys/select.h> needs to be included for fd_set
786 AC_MSG_CHECKING([for fd_set])
787 AC_TRY_COMPILE([#include <sys/types.h>],
788 [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
789 if test "$gtk_ok" = "yes"; then
790 AC_MSG_RESULT([yes, found in sys/types.h])
792 AC_EGREP_HEADER(fd_set, sys/select.h, gtk_ok=yes)
793 if test "$gtk_ok" = "yes"; then
794 # *** FIXME: give it a different name
795 AC_DEFINE(HAVE_SYS_SELECT_H,1,[found fd_set in sys/select.h])
796 AC_MSG_RESULT([yes, found in sys/select.h])
798 AC_DEFINE(NO_FD_SET,1,[didn't find fd_set])
803 dnl *** check for sane realloc() ***
804 AC_CACHE_CHECK([whether realloc (NULL,) will work],glib_cv_sane_realloc,[
805 AC_TRY_RUN([#include <stdlib.h>
807 return realloc (0, sizeof (int)) == 0;
809 [glib_cv_sane_realloc=yes],
810 [glib_cv_sane_realloc=no],
811 [glib_cv_sane_realloc=yes])
813 if test x$glib_cv_sane_realloc = xyes; then
814 AC_DEFINE(REALLOC_0_WORKS,1,[whether realloc (NULL,) works])
817 dnl Check for nl_langinfo and CODESET
819 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
820 AC_TRY_COMPILE([#include <langinfo.h>],
821 [char *codeset = nl_langinfo (CODESET);],
822 AC_DEFINE(HAVE_CODESET,1,[Have nl_langinfo (CODESET)])
825 AC_MSG_RESULT($have_codeset)
828 dnl ****************************************
829 dnl *** strlcpy/strlcat ***
830 dnl ****************************************
832 AC_CACHE_CHECK([for OpenBSD strlcpy/strlcat],glib_cv_have_strlcpy,[
833 AC_TRY_RUN([#include <stdlib.h>
837 (void) strlcpy (p, "hi", 10);
838 if (strlcat (p, "bye", 0) != 3)
841 }], glib_cv_have_strlcpy=yes,
842 glib_cv_have_strlcpy=no,
843 glib_cv_have_strlcpy=no)])
844 if test "$glib_cv_have_strlcpy" = "yes"; then
845 AC_DEFINE(HAVE_STRLCPY,1,[Have functions strlcpy and strlcat])
849 dnl **********************
850 dnl *** va_copy checks ***
851 dnl **********************
852 dnl we currently check for all three va_copy possibilities, so we get
853 dnl all results in config.log for bug reports.
854 AC_CACHE_CHECK([for an implementation of va_copy()],glib_cv_va_copy,[
855 AC_LINK_IFELSE([#include <stdarg.h>
856 void f (int i, ...) {
857 va_list args1, args2;
859 va_copy (args2, args1);
860 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
862 va_end (args1); va_end (args2);
868 [glib_cv_va_copy=yes],
869 [glib_cv_va_copy=no])
871 AC_CACHE_CHECK([for an implementation of __va_copy()],glib_cv___va_copy,[
872 AC_LINK_IFELSE([#include <stdarg.h>
873 void f (int i, ...) {
874 va_list args1, args2;
876 __va_copy (args2, args1);
877 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
879 va_end (args1); va_end (args2);
885 [glib_cv___va_copy=yes],
886 [glib_cv___va_copy=no])
889 if test "x$glib_cv_va_copy" = "xyes"; then
890 g_va_copy_func=va_copy
891 else if test "x$glib_cv___va_copy" = "xyes"; then
892 g_va_copy_func=__va_copy
896 if test -n "$g_va_copy_func"; then
897 AC_DEFINE_UNQUOTED(G_VA_COPY,$g_va_copy_func,[A 'va_copy' style function])
900 AC_CACHE_CHECK([whether va_lists can be copied by value],glib_cv_va_val_copy,[
901 AC_TRY_RUN([#include <stdarg.h>
902 void f (int i, ...) {
903 va_list args1, args2;
906 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
908 va_end (args1); va_end (args2);
914 [glib_cv_va_val_copy=yes],
915 [glib_cv_va_val_copy=no],
916 [glib_cv_va_val_copy=yes])
919 if test "x$glib_cv_va_val_copy" = "xno"; then
920 AC_DEFINE(G_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
923 dnl ***********************
924 dnl *** g_module checks ***
925 dnl ***********************
928 G_MODULE_PLUGIN_LIBS=
929 if test x"$glib_native_win32" = xyes; then
930 dnl No use for this on Win32
933 G_MODULE_LDFLAGS=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh`
935 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
936 G_MODULE_NEED_USCORE=0
937 G_MODULE_BROKEN_RTLD_GLOBAL=0
938 G_MODULE_HAVE_DLERROR=0
939 dnl *** force native WIN32 shared lib loader
940 if test -z "$G_MODULE_IMPL"; then
942 *-*-mingw*|*-*-cygwin*) G_MODULE_IMPL=G_MODULE_IMPL_WIN32 ;;
945 dnl *** dlopen() and dlsym() in system libraries
946 if test -z "$G_MODULE_IMPL"; then
947 AC_CHECK_FUNC(dlopen,
948 [AC_CHECK_FUNC(dlsym,
949 [G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
952 dnl *** load_image (BeOS)
953 if test -z "$G_MODULE_IMPL" && test "x$glib_native_beos" = "xyes"; then
954 AC_CHECK_LIB(root, load_image,
955 [G_MODULE_LIBS="-lbe -lroot -lglib"
956 G_MODULE_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
957 G_MODULE_PLUGIN_LIBS="-L\$(top_builddir_full)/gmodule/.libs -lgmodule"
958 G_MODULE_IMPL=G_MODULE_IMPL_BEOS],
961 dnl *** NSLinkModule (dyld) in system libraries (Darwin)
962 if test -z "$G_MODULE_IMPL"; then
963 AC_CHECK_FUNC(NSLinkModule,
964 [G_MODULE_IMPL=G_MODULE_IMPL_DYLD
965 G_MODULE_NEED_USCORE=1],
968 dnl *** dlopen() and dlsym() in libdl
969 if test -z "$G_MODULE_IMPL"; then
970 AC_CHECK_LIB(dl, dlopen,
971 [AC_CHECK_LIB(dl, dlsym,
973 G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
976 dnl *** shl_load() in libdld (HP-UX)
977 if test -z "$G_MODULE_IMPL"; then
978 AC_CHECK_LIB(dld, shl_load,
980 G_MODULE_IMPL=G_MODULE_IMPL_DLD],
983 dnl *** additional checks for G_MODULE_IMPL_DL
984 if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
986 LDFLAGS_orig="$LDFLAGS"
987 LIBS="$LIBS $G_MODULE_LIBS"
988 LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
989 dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness
990 AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
991 glib_cv_rtldglobal_broken,[
995 # define RTLD_GLOBAL 0
1002 void *handle, *global, *local;
1003 global = &pthread_create;
1004 handle = dlopen ("libpthread.so", RTLD_GLOBAL | RTLD_LAZY);
1005 if (!handle) return 0;
1006 local = dlsym (handle, "pthread_create");
1007 return global == local;
1009 [glib_cv_rtldglobal_broken=no],
1010 [glib_cv_rtldglobal_broken=yes],
1011 [glib_cv_rtldglobal_broken=no])
1012 rm -f plugin.c plugin.o plugin.lo
1014 if test "x$glib_cv_rtldglobal_broken" = "xyes"; then
1015 G_MODULE_BROKEN_RTLD_GLOBAL=1
1017 G_MODULE_BROKEN_RTLD_GLOBAL=0
1019 dnl *** check whether we need preceeding underscores
1020 AC_CACHE_CHECK([for preceeding underscore in symbols],
1022 AC_TRY_RUN([#include <dlfcn.h>
1023 int glib_underscore_test (void) { return 42; }
1025 void *f1 = (void*)0, *f2 = (void*)0, *handle;
1026 handle = dlopen ((void*)0, 0);
1028 f1 = dlsym (handle, "glib_underscore_test");
1029 f2 = dlsym (handle, "_glib_underscore_test");
1030 } return (!f2 || f1);
1032 [glib_cv_uscore=yes],
1033 [glib_cv_uscore=no],
1035 rm -f plugin.c plugin.$ac_objext plugin.lo
1037 if test "x$glib_cv_uscore" = "xyes"; then
1038 G_MODULE_NEED_USCORE=1
1040 G_MODULE_NEED_USCORE=0
1043 LDFLAGS="$LDFLAGS_orig"
1044 dnl *** check for having dlerror()
1045 AC_CHECK_FUNC(dlerror,
1046 [G_MODULE_HAVE_DLERROR=1],
1047 [G_MODULE_HAVE_DLERROR=0])
1050 dnl *** done, have we got an implementation?
1051 if test -z "$G_MODULE_IMPL"; then
1053 G_MODULE_SUPPORTED=false
1055 G_MODULE_SUPPORTED=true
1058 AC_MSG_CHECKING(for the suffix of shared libraries)
1060 hpux9* | hpux10* | hpux11*) # taken from ltconfig
1061 glib_gmodule_suffix='sl'
1064 glib_gmodule_suffix='dll'
1067 glib_gmodule_suffix='so'
1070 AC_MSG_RESULT(.$glib_gmodule_suffix)
1072 AC_SUBST(G_MODULE_SUPPORTED)
1073 AC_SUBST(G_MODULE_IMPL)
1074 AC_SUBST(G_MODULE_LIBS)
1075 AC_SUBST(G_MODULE_LIBS_EXTRA)
1076 AC_SUBST(G_MODULE_PLUGIN_LIBS)
1077 AC_SUBST(G_MODULE_LDFLAGS)
1078 AC_SUBST(G_MODULE_HAVE_DLERROR)
1079 AC_SUBST(G_MODULE_BROKEN_RTLD_GLOBAL)
1080 AC_SUBST(G_MODULE_NEED_USCORE)
1081 AC_SUBST(GLIB_DEBUG_FLAGS)
1083 dnl **********************
1084 dnl *** g_spawn checks ***
1085 dnl **********************
1087 AC_MSG_CHECKING(for gspawn implementation)
1090 GSPAWN=gspawn-win32.lo
1096 AC_MSG_RESULT($GSPAWN)
1099 dnl *************************
1100 dnl *** GIOChannel checks ***
1101 dnl *************************
1103 AC_MSG_CHECKING(for GIOChannel implementation)
1115 dnl ****************************************
1116 dnl *** platform dependent source checks ***
1117 dnl ****************************************
1119 AC_MSG_CHECKING(for platform-dependent source)
1121 *-*-cygwin*|*-*-mingw*)
1122 PLATFORMDEP=gwin32.lo
1128 AC_MSG_RESULT($PLATFORMDEP)
1129 AC_SUBST(PLATFORMDEP)
1131 AC_MSG_CHECKING([whether to compile timeloop])
1133 *-*-cygwin*|*-*-mingw*)
1140 AC_MSG_RESULT($enable_timeloop)
1141 AM_CONDITIONAL(ENABLE_TIMELOOP, test x$enable_timeloop = xyes)
1143 AC_MSG_CHECKING([if building for some Win32 platform])
1145 *-*-mingw*|*-*-cygwin*)
1152 AC_MSG_RESULT($platform_win32)
1153 AM_CONDITIONAL(PLATFORM_WIN32, test x$platform_win32 = xyes)
1155 dnl ***********************
1156 dnl *** g_thread checks ***
1157 dnl ***********************
1159 AC_ARG_WITH(threads, [ --with-threads=[none/posix/dce/solaris/win32] specify a thread implementation to use],
1160 if test "x$with_threads" = x; then
1163 want_threads=$with_threads
1166 if test "x$enable_threads" = "xno"; then
1170 dnl error and warning message
1171 dnl *************************
1173 THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
1174 computer. GLib will not have a default thread implementation."
1176 FLAG_DOES_NOT_WORK="I can't find the MACRO to enable thread safety on your
1177 platform (normally it's "_REENTRANT"). I'll not use any flag on
1178 compilation now, but then your programs might not work.
1179 Please provide information on how it is done on your system."
1181 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
1184 LIBS_NOT_FOUND_2=". Please choose another thread implementation or
1185 provide information on your thread implementation.
1186 You can also run 'configure --disable-threads'
1187 to compile without thread support."
1189 FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
1190 functions will not be MT-safe during their first call because
1191 there is no working 'getpwuid_r' on your system."
1193 FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
1194 because there is no 'localtime_r' on your system."
1196 POSIX_NO_YIELD="I can not find a yield functions for your platform. A rather
1197 crude surrogate will be used. If you happen to know a
1198 yield function for your system, please inform the GLib
1201 POSIX_NO_PRIORITIES="I can not find the minimal and maximal priorities for
1202 threads on your system. Thus threads can only have the default
1203 priority. If you happen to know these main/max
1204 priorities, please inform the GLib developers."
1206 AIX_COMPILE_INFO="AIX's C compiler needs to be called by a different name, when
1207 linking threaded applications. As GLib cannot do that
1208 automatically, you will get an linkg error everytime you are
1209 not using the right compiler. In that case you have to relink
1210 with the right compiler. Ususally just '_r' is appended
1211 to the compiler name."
1213 dnl determination of thread implementation
1214 dnl ***************************************
1216 # have_threads=no means no thread support
1217 # have_threads=none means no default thread implementation
1220 if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
1223 AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
1227 if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
1228 || test "x$want_threads" = xdce; then
1229 # -D_POSIX4_DRAFT_SOURCE -D_POSIX4A_DRAFT10_SOURCE is for DG/UX
1230 # -U_OSF_SOURCE is for Digital UNIX 4.0d
1231 GTHREAD_COMPILE_IMPL_DEFINES="-D_POSIX4_DRAFT_SOURCE -D_POSIX4A_DRAFT10_SOURCE -U_OSF_SOURCE"
1232 glib_save_CPPFLAGS="$CPPFLAGS"
1233 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1234 if test "x$have_threads" = xno; then
1235 AC_TRY_COMPILE([#include <pthread.h>],
1236 [pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;],
1239 if test "x$have_threads" = xno; then
1240 AC_TRY_COMPILE([#include <pthread.h>],
1242 pthread_mutex_init (&m, pthread_mutexattr_default);],
1245 CPPFLAGS="$glib_save_CPPFLAGS"
1247 if test "x$want_threads" = xyes || test "x$want_threads" = xwin32; then
1254 if test "x$want_threads" = xnone; then
1258 AC_MSG_CHECKING(for thread implementation)
1260 if test "x$have_threads" = xno && test "x$want_threads" != xno; then
1261 AC_MSG_RESULT(none available)
1262 AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
1264 AC_MSG_RESULT($have_threads)
1268 dnl determination of G_THREAD_CFLAGS
1269 dnl ********************************
1272 G_THREAD_LIBS_EXTRA=
1275 if test x"$have_threads" != xno; then
1277 if test x"$have_threads" = xposix; then
1278 # First we test for posix, whether -pthread or -pthreads do the trick as
1279 # both CPPFLAG and LIBS.
1280 # One of them does for most gcc versions and some other platforms/compilers
1281 # too and could be considered as the canonical way to go.
1282 for flag in pthread pthreads; do
1283 glib_save_CFLAGS="$CFLAGS"
1284 CFLAGS="$CFLAGS -$flag"
1285 AC_TRY_RUN([#include <pthread.h>
1287 void* func(void* data) {return check_me = 42;}
1291 pthread_create (&t, 0, func, 0);
1292 pthread_join (t, &ret);
1293 exit (check_me != 42 || ret != 42);
1295 [G_THREAD_CFLAGS=-$flag
1296 G_THREAD_LIBS=-$flag])
1297 CFLAGS="$glib_save_CFLAGS"
1301 if test x"$G_THREAD_CFLAGS" = x; then
1303 # The canonical -pthread[s] does not work. Try something different.
1307 if test x"$GCC" = xyes; then
1308 # GCC 3.0 and above needs -pthread.
1309 # Should be coverd by the case above.
1310 # GCC 2.x and below needs -mthreads
1311 G_THREAD_CFLAGS="-mthreads"
1312 G_THREAD_LIBS=$G_THREAD_CFLAGS
1314 # We are probably using the aix compiler. Normaly a
1315 # program would have to be compiled with the _r variant
1316 # of the corresponding compiler, but we as GLib cannot
1317 # do that: but the good news is that for compiling the
1318 # only difference is the added -D_THREAD_SAFE compile
1319 # option. This is according to the "C for AIX User's
1321 G_THREAD_CFLAGS="-D_THREAD_SAFE"
1325 G_THREAD_CFLAGS="-D_REENTRANT -D_POSIX4A_DRAFT10_SOURCE"
1328 # So we are using dce threads. posix threads are already
1330 G_THREAD_CFLAGS="-threads"
1331 G_THREAD_LIBS=$G_THREAD_CFLAGS
1334 if test x"$GCC" = xyes; then
1335 # We are using solaris threads. posix threads are
1336 # already catched above.
1337 G_THREAD_CFLAGS="-threads"
1339 G_THREAD_CFLAGS="-mt"
1341 G_THREAD_LIBS=$G_THREAD_CFLAGS
1343 *-sysv5uw7*) # UnixWare 7
1344 # We are not using gcc with -pthread. Catched above.
1345 G_THREAD_CFLAGS="-Kthread"
1346 G_THREAD_LIBS=$G_THREAD_CFLAGS
1349 G_THREAD_CFLAGS="-D_REENTRANT" # good default guess otherwise
1355 # if we are not finding the localtime_r function, then we probably are
1356 # not using the proper multithread flag
1358 glib_save_CPPFLAGS="$CPPFLAGS"
1359 CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
1361 # First we test, whether localtime_r is declared in time.h
1362 # directly. Then we test whether a macro localtime_r exists, in
1363 # which case localtime_r in the test program is replaced and thus
1364 # if we still find localtime_r in the output, it is not defined as
1367 AC_EGREP_CPP([[^a-zA-Z1-9_]localtime_r[^a-zA-Z1-9_]], [#include <time.h>], ,
1368 [AC_EGREP_CPP([[^a-zA-Z1-9_]localtime_r[^a-zA-Z1-9_]], [#include <time.h>
1370 AC_MSG_WARN($FLAG_DOES_NOT_WORK))])
1372 CPPFLAGS="$glib_save_CPPFLAGS"
1374 AC_MSG_CHECKING(thread related cflags)
1375 AC_MSG_RESULT($G_THREAD_CFLAGS)
1376 CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
1379 dnl determination of G_THREAD_LIBS
1380 dnl ******************************
1382 mutex_has_default=no
1383 case $have_threads in
1385 glib_save_CPPFLAGS="$CPPFLAGS"
1386 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1387 if test x"$G_THREAD_LIBS" = x; then
1390 # We are not using gcc (would have set G_THREAD_LIBS) and thus
1391 # probably using the aix compiler.
1392 AC_MSG_WARN($AIX_COMPILE_INFO)
1396 glib_save_LIBS="$LIBS"
1397 for thread_lib in "" pthread pthread32 pthreads thread dce; do
1398 if test x"$thread_lib" = x; then
1402 add_thread_lib="-l$thread_lib"
1403 IN=" in -l$thread_lib"
1405 if test x"$have_threads" = xposix; then
1408 defattr=pthread_attr_default
1411 LIBS="$glib_save_LIBS $add_thread_lib"
1413 AC_MSG_CHECKING(for pthread_create/pthread_join$IN)
1414 AC_TRY_RUN([#include <pthread.h>
1416 void* func(void* data) {check_me = 42;}
1420 pthread_create (&t, $defattr, func, 0);
1421 pthread_join (t, &ret);
1422 exit (check_me != 42);
1425 G_THREAD_LIBS="$add_thread_lib"
1427 [AC_MSG_RESULT(no)])
1429 if test "x$G_THREAD_LIBS" = xerror; then
1430 AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
1432 LIBS="$glib_save_LIBS"
1437 glib_save_LIBS="$LIBS"
1438 for thread_lib in "" rt rte; do
1439 if test x"$thread_lib" = x; then
1443 add_thread_lib="-l$thread_lib"
1444 IN=" in -l$thread_lib"
1446 LIBS="$glib_save_LIBS $add_thread_lib"
1448 AC_MSG_CHECKING(for sched_get_priority_min$IN)
1454 return sched_get_priority_min(SCHED_OTHER)==-1
1458 G_THREAD_LIBS="$G_THREAD_LIBS $add_thread_lib"
1459 posix_priority_min="sched_get_priority_min(SCHED_OTHER)"
1460 posix_priority_max="sched_get_priority_max(SCHED_OTHER)"
1462 [AC_MSG_RESULT(no)])
1464 LIBS="$glib_save_LIBS"
1465 mutex_has_default=yes
1466 mutex_default_type='pthread_mutex_t'
1467 mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
1468 mutex_header_file='pthread.h'
1469 if test "x$have_threads" = "xposix"; then
1470 g_threads_impl="POSIX"
1472 g_threads_impl="DCE"
1473 have_threads="posix"
1475 AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
1476 CPPFLAGS="$glib_save_CPPFLAGS"
1479 mutex_has_default=yes
1480 mutex_default_type='mutex_t'
1481 mutex_default_init="DEFAULTMUTEX"
1482 mutex_header_file='thread.h'
1483 g_threads_impl="SOLARIS"
1486 g_threads_impl="WIN32"
1489 g_threads_impl="NONE"
1492 g_threads_impl="NONE"
1497 if test "x$G_THREAD_LIBS" = xerror; then
1498 AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
1503 G_THREAD_LIBS="-lbe -lroot -lglib "
1504 G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
1510 AC_MSG_CHECKING(thread related libraries)
1511 AC_MSG_RESULT($G_THREAD_LIBS)
1513 dnl check for mt safe function variants and some posix functions
1514 dnl ************************************************************
1516 if test x"$have_threads" != xno; then
1517 glib_save_LIBS="$LIBS"
1518 # we are not doing the following for now, as this might require glib
1519 # to always be linked with the thread libs on some platforms.
1520 # LIBS="$LIBS $G_THREAD_LIBS"
1521 AC_CHECK_FUNCS(localtime_r)
1522 if test "$ac_cv_header_pwd_h" = "yes"; then
1523 AC_CACHE_CHECK([for posix getpwuid_r],
1524 ac_cv_func_posix_getpwuid_r,
1530 struct passwd pwd, *pwptr = &pwd;
1533 error = getpwuid_r (0, &pwd, buffer,
1534 sizeof (buffer), &pwptr);
1535 return (error < 0 && errno == ENOSYS)
1538 [ac_cv_func_posix_getpwuid_r=yes],
1539 [ac_cv_func_posix_getpwuid_r=no])])
1540 if test "$ac_cv_func_posix_getpwuid_r" = yes; then
1541 AC_DEFINE(HAVE_POSIX_GETPWUID_R,1,
1542 [Have POSIX function getpwuid_r])
1544 AC_CACHE_CHECK([for nonposix getpwuid_r],
1545 ac_cv_func_nonposix_getpwuid_r,
1546 [AC_TRY_LINK([#include <pwd.h>],
1547 [char buffer[10000];
1549 getpwuid_r (0, &pwd, buffer,
1551 [ac_cv_func_nonposix_getpwuid_r=yes],
1552 [ac_cv_func_nonposix_getpwuid_r=no])])
1553 if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then
1554 AC_DEFINE(HAVE_NONPOSIX_GETPWUID_R,1,
1555 [Have non-POSIX function getpwuid_r])
1559 LIBS="$LIBS $G_THREAD_LIBS"
1560 if test x"$have_threads" = xposix; then
1561 glib_save_CPPFLAGS="$CPPFLAGS"
1562 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1563 dnl we might grow sizeof(pthread_t) later on, so use a dummy name here
1564 GLIB_SIZEOF([#include <pthread.h>], pthread_t, system_thread)
1565 # This is not AC_CHECK_FUNC to also work with function
1566 # name mangling in header files.
1567 AC_MSG_CHECKING(for pthread_attr_setstacksize)
1568 AC_TRY_LINK([#include <pthread.h>],
1569 [pthread_attr_t t; pthread_attr_setstacksize(&t,0)],
1571 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1,
1572 [Have function pthread_attr_setstacksize])],
1573 [AC_MSG_RESULT(no)])
1574 AC_MSG_CHECKING(for minimal/maximal thread priority)
1575 if test x"$posix_priority_min" = x; then
1576 AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
1578 posix_priority_min=PX_PRIO_MIN
1579 posix_priority_max=PX_PRIO_MAX])
1581 if test x"$posix_priority_min" = x; then
1583 AC_EGREP_CPP(PTHREAD_PRIO_MIN,[#include <pthread.h>
1584 PTHREAD_PRIO_MIN],,[
1585 posix_priority_min=PTHREAD_PRIO_MIN
1586 posix_priority_max=PTHREAD_PRIO_MAX])
1588 if test x"$posix_priority_min" = x; then
1589 AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
1591 posix_priority_min=PRI_OTHER_MIN
1592 posix_priority_max=PRI_OTHER_MAX])
1594 if test x"$posix_priority_min" = x; then
1595 AC_MSG_RESULT(none found)
1596 AC_MSG_WARN($POSIX_NO_PRIORITIES)
1597 posix_priority_min=-1
1598 posix_priority_max=-1
1600 AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
1601 AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min,[Minimum POSIX RT priority])
1602 AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max,[Maximum POSIX RT priority])
1604 posix_yield_func=none
1605 AC_MSG_CHECKING(for posix yield function)
1606 for yield_func in sched_yield pthread_yield_np pthread_yield \
1608 AC_TRY_LINK([#include <pthread.h>],
1610 [posix_yield_func="$yield_func"
1613 if test x"$posix_yield_func" = xnone; then
1614 AC_MSG_RESULT(none found)
1615 AC_MSG_WARN($POSIX_NO_YIELD)
1616 posix_yield_func="g_usleep(1000)"
1618 AC_MSG_RESULT($posix_yield_func)
1619 posix_yield_func="$posix_yield_func()"
1621 AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func,[The POSIX RT yield function])
1622 CPPFLAGS="$glib_save_CPPFLAGS"
1624 AC_MSG_CHECKING(whether to use the PID niceness surrogate for thread priorities)
1626 #include <pthread.h>
1627 #include <sys/types.h>
1629 pid_t other_pid = 0;
1631 void* func(void* data) {other_pid = getpid();}
1635 pthread_create (&t, $defattr, func, NULL);
1636 pthread_join (t, &ret);
1637 exit (getpid()==other_pid ||
1638 $posix_priority_min != $posix_priority_max);
1641 AC_DEFINE(G_THREAD_USE_PID_SURROGATE, 1, [whether to use the PID niceness surrogate for thread priorities])
1643 [AC_MSG_RESULT(no)])
1644 elif test x"$have_threads" = xwin32; then
1645 # It's a pointer to a private struct
1646 GLIB_SIZEOF(,struct _GThreadData *, system_thread)
1647 elif test x"$have_threads" = xsolaris; then
1648 GLIB_SIZEOF([#include <thread.h>], thread_t, system_thread)
1651 LIBS="$glib_save_LIBS"
1653 # now spit out all the warnings.
1654 if test "$ac_cv_func_posix_getpwuid_r" != "yes" &&
1655 test "$ac_cv_func_nonposix_getpwuid_r" != "yes"; then
1656 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
1658 if test "$ac_cv_func_localtime_r" != "yes"; then
1659 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
1663 if test x"$glib_cv_sizeof_system_thread" = x; then
1664 # use a pointer as a fallback.
1665 GLIB_SIZEOF(,void *, system_thread)
1668 AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c",
1669 [Source file containing theread implementation])
1670 AC_SUBST(G_THREAD_CFLAGS)
1671 AC_SUBST(G_THREAD_LIBS)
1672 AC_SUBST(G_THREAD_LIBS_EXTRA)
1674 dnl **********************************************
1675 dnl *** GDefaultMutex setup and initialization ***
1676 dnl **********************************************
1678 dnl if mutex_has_default = yes, we also got
1679 dnl mutex_default_type, mutex_default_init and mutex_header_file
1680 if test $mutex_has_default = yes ; then
1681 glib_save_CPPFLAGS="$CPPFLAGS"
1682 glib_save_LIBS="$LIBS"
1683 LIBS="$LIBS $G_THREAD_LIBS"
1684 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1685 GLIB_SIZEOF([#include <$mutex_header_file>],
1686 $mutex_default_type,
1688 GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
1689 $mutex_default_type,
1691 $glib_cv_sizeof_gmutex,
1692 $mutex_default_init)
1693 if test x"$glib_cv_byte_contents_gmutex" = xno; then
1694 mutex_has_default=no
1696 CPPFLAGS="$glib_save_CPPFLAGS"
1697 LIBS="$glib_save_LIBS"
1700 dnl ****************************************
1701 dnl *** GLib POLL* compatibility defines ***
1702 dnl ****************************************
1704 glib_poll_includes=["
1705 #include <sys/types.h>
1706 #include <sys/poll.h>
1709 if test $ac_cv_header_sys_types_h = yes &&
1710 test $ac_cv_header_sys_poll_h = yes ; then
1712 GLIB_CHECK_VALUE(POLLIN, $glib_poll_includes, glib_failed=true)
1713 GLIB_CHECK_VALUE(POLLOUT, $glib_poll_includes, glib_failed=true)
1714 GLIB_CHECK_VALUE(POLLPRI, $glib_poll_includes, glib_failed=true)
1715 GLIB_CHECK_VALUE(POLLERR, $glib_poll_includes, glib_failed=true)
1716 GLIB_CHECK_VALUE(POLLHUP, $glib_poll_includes, glib_failed=true)
1717 GLIB_CHECK_VALUE(POLLNVAL, $glib_poll_includes, glib_failed=true)
1718 if $glib_failed ; then
1719 AC_MSG_ERROR([Could not determine values for POLL* constants])
1722 glib_cv_value_POLLIN=1
1723 glib_cv_value_POLLOUT=4
1724 glib_cv_value_POLLPRI=2
1725 glib_cv_value_POLLERR=8
1726 glib_cv_value_POLLHUP=16
1727 glib_cv_value_POLLNVAL=32
1730 dnl **********************
1731 dnl *** Win32 API libs ***
1732 dnl **********************
1736 G_LIBS_EXTRA="-luser32 -lkernel32"
1739 G_LIBS_EXTRA="-lwsock32"
1745 AC_SUBST(G_LIBS_EXTRA)
1747 dnl If the system doesn't define EILSEQ, we should define EILSEQ ourselves
1748 dnl since we need it for g_iconv()
1750 AC_MSG_CHECKING([for EILSEQ])
1756 ], have_eilseq=yes, have_eilseq=no);
1757 AC_MSG_RESULT($have_eilseq)
1759 dnl ******************************************************************
1760 dnl *** Look for glib-genmarshal in PATH if we are cross-compiling ***
1761 dnl ******************************************************************
1763 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
1765 if test $cross_compiling = yes; then
1766 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no)
1767 if test x$GLIB_GENMARSHAL = xno; then
1768 AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH)
1772 dnl **************************
1773 dnl *** Checks for gtk-doc ***
1774 dnl **************************
1776 AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs])
1778 if test "x$with_html_dir" = "x" ; then
1779 HTML_DIR='${datadir}/gtk-doc/html'
1781 HTML_DIR=$with_html_dir
1786 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1788 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1790 gtk_doc_min_version=0.10
1792 gtk_doc_version=`gtkdoc-mkdb --version`
1793 AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
1795 IFS="${IFS= }"; gtk_save_IFS="$IFS"; IFS="."
1796 set $gtk_doc_version
1797 for min in $gtk_doc_min_version ; do
1799 if test -z $min ; then break; fi
1800 if test -z $cur ; then GTKDOC=false; break; fi
1801 if test $cur -gt $min ; then break ; fi
1802 if test $cur -lt $min ; then GTKDOC=false; break ; fi
1813 AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
1814 AC_SUBST(HAVE_GTK_DOC)
1816 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1817 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1819 dnl Let people disable the gtk-doc stuff.
1820 AC_ARG_ENABLE(gtk-doc, [ --enable-gtk-doc use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=no)
1822 if test x$enable_gtk_doc = xyes ; then
1823 if test x$GTKDOC = xtrue ; then
1830 dnl NOTE: We need to use a separate automake conditional for this
1831 dnl to make this work with the tarballs.
1832 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1834 dnl ******************************
1835 dnl *** output the whole stuff ***
1836 dnl ******************************
1838 AC_OUTPUT_COMMANDS([
1840 ## Generate `glibconfig.h' in two cases
1841 ## 1. `config.status' is run either explicitly, or via configure.
1842 ## Esp. not when it is run in `Makefile' to generate makefiles and
1844 ## 2. CONFIG_OTHER is set explicitly
1846 ## Case 1 is difficult. We know that `automake' sets one of
1847 ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
1848 ## only when AM_CONFIG_HEADER is set, however.
1850 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1851 # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1852 CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
1854 case "$CONFIG_OTHER" in
1856 echo creating glibconfig.h
1857 outfile=glibconfig.h-tmp
1858 cat > $outfile <<\_______EOF
1861 * This is a generated file. Please modify 'configure.in'
1864 #ifndef __G_LIBCONFIG_H__
1865 #define __G_LIBCONFIG_H__
1867 #include <glib/gmacros.h>
1871 if test x$glib_limits_h = xyes; then
1872 echo '#include <limits.h>' >> $outfile
1874 if test x$glib_float_h = xyes; then
1875 echo '#include <float.h>' >> $outfile
1877 if test x$glib_values_h = xyes; then
1878 echo '#include <values.h>' >> $outfile
1880 if test "$glib_header_alloca_h" = "yes"; then
1881 echo '#define GLIB_HAVE_ALLOCA_H' >> $outfile
1883 if test x$glib_sys_poll_h = xyes; then
1884 echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
1887 cat >> $outfile <<_______EOF
1891 #define G_MINFLOAT $glib_mf
1892 #define G_MAXFLOAT $glib_Mf
1893 #define G_MINDOUBLE $glib_md
1894 #define G_MAXDOUBLE $glib_Md
1895 #define G_MINSHORT $glib_ms
1896 #define G_MAXSHORT $glib_Ms
1897 #define G_MAXUSHORT $glib_Mus
1898 #define G_MININT $glib_mi
1899 #define G_MAXINT $glib_Mi
1900 #define G_MAXUINT $glib_Mui
1901 #define G_MINLONG $glib_ml
1902 #define G_MAXLONG $glib_Ml
1903 #define G_MAXULONG $glib_Mul
1905 #define G_MININT64 ((gint64) 0x8000000000000000)
1906 #define G_MAXINT64 ((gint64) 0x7fffffffffffffff)
1907 #define G_MAXUINT64 ((guint64) 0xffffffffffffffff)
1912 ### this should always be true in a modern C/C++ compiler
1913 cat >>$outfile <<_______EOF
1914 typedef signed char gint8;
1915 typedef unsigned char guint8;
1919 if test -n "$gint16"; then
1920 cat >>$outfile <<_______EOF
1921 typedef signed $gint16 gint16;
1922 typedef unsigned $gint16 guint16;
1923 #define G_GINT16_FORMAT $gint16_format
1924 #define G_GUINT16_FORMAT $guint16_format
1929 if test -n "$gint32"; then
1930 cat >>$outfile <<_______EOF
1931 typedef signed $gint32 gint32;
1932 typedef unsigned $gint32 guint32;
1933 #define G_GINT32_FORMAT $gint32_format
1934 #define G_GUINT32_FORMAT $guint32_format
1938 cat >>$outfile <<_______EOF
1939 #define G_HAVE_GINT64 1 /* deprecated, always true */
1941 ${glib_extension}typedef signed $gint64 gint64;
1942 ${glib_extension}typedef unsigned $gint64 guint64;
1944 #define G_GINT64_CONSTANT(val) $gint64_constant
1947 if test x$gint64_format != x ; then
1948 cat >>$outfile <<_______EOF
1949 #define G_GINT64_FORMAT $gint64_format
1950 #define G_GUINT64_FORMAT $guint64_format
1953 cat >>$outfile <<_______EOF
1954 #undef G_GINT64_FORMAT
1955 #undef G_GUINT64_FORMAT
1959 cat >>$outfile <<_______EOF
1961 #define GLIB_SIZEOF_VOID_P $glib_void_p
1962 #define GLIB_SIZEOF_LONG $glib_long
1963 #define GLIB_SIZEOF_SIZE_T $glib_size_t
1967 echo "typedef signed $glib_size_type_define gssize;" >> $outfile
1968 echo "typedef unsigned $glib_size_type_define gsize;" >> $outfile
1970 if test -z "$glib_unknown_void_p"; then
1971 cat >>$outfile <<_______EOF
1973 #define GPOINTER_TO_INT(p) ((gint) ${glib_gpi_cast} (p))
1974 #define GPOINTER_TO_UINT(p) ((guint) ${glib_gpui_cast} (p))
1976 #define GINT_TO_POINTER(i) ((gpointer) ${glib_gpi_cast} (i))
1977 #define GUINT_TO_POINTER(u) ((gpointer) ${glib_gpui_cast} (u))
1980 echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
1985 cat >>$outfile <<_______EOF
1994 #define G_HAVE_INLINE 1
1995 #else /* !__cplusplus */
1997 #endif /* !__cplusplus */
2001 if test x$g_have_iso_c_varargs = xyes ; then
2002 cat >>$outfile <<_______EOF
2004 # define G_HAVE_ISO_VARARGS 1
2008 if test x$g_have_iso_cxx_varargs = xyes ; then
2009 cat >>$outfile <<_______EOF
2011 # define G_HAVE_ISO_VARARGS 1
2015 if test x$g_have_gnuc_varargs = xyes ; then
2016 cat >>$outfile <<_______EOF
2018 /* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
2019 * is passed ISO vararg support is turned off, and there is no work
2020 * around to turn it on, so we unconditionally turn it off.
2022 #if __GNUC__ == 2 && __GNUC_MINOR__ == 95
2023 # undef G_HAVE_ISO_VARARGS
2026 #define G_HAVE_GNUC_VARARGS 1
2030 case x$g_stack_grows in
2031 xyes) echo "#define G_HAVE_GROWING_STACK 1" >>$outfile ;;
2032 *) echo "#define G_HAVE_GROWING_STACK 0" >>$outfile ;;
2037 if test x$g_have_eilseq = xno; then
2038 cat >>$outfile <<_______EOF
2040 /* On some systems, like SunOS and NetBSD, EILSEQ is not defined.
2041 * The correspondence between this and the corresponding definition
2042 * in libiconv is essential.
2044 # define EILSEQ ENOENT
2051 if test x$g_mutex_has_default = xyes; then
2052 cat >>$outfile <<_______EOF
2053 $g_enable_threads_def G_THREADS_ENABLED
2054 #define G_THREADS_IMPL_$g_threads_impl_def
2055 typedef struct _GStaticMutex GStaticMutex;
2056 struct _GStaticMutex
2058 struct _GMutex *runtime_mutex;
2060 char pad[$g_mutex_sizeof];
2061 double dummy_double;
2062 void *dummy_pointer;
2066 #define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
2067 #define g_static_mutex_get_mutex(mutex) \
2068 (g_thread_use_default_impl ? ((GMutex*) &((mutex)->static_mutex)) : \
2069 g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
2072 cat >>$outfile <<_______EOF
2073 $g_enable_threads_def G_THREADS_ENABLED
2074 #define G_THREADS_IMPL_$g_threads_impl_def
2075 typedef struct _GMutex* GStaticMutex;
2076 #define G_STATIC_MUTEX_INIT NULL
2077 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
2081 cat >>$outfile <<_______EOF
2082 /* This represents a system thread as used by the implementation. An
2083 * alien implementaion, as loaded by g_thread_init can only count on
2084 * "sizeof (gpointer)" bytes to store their info. We however need more
2085 * for some of our native implementations. */
2086 typedef union _GSystemThread GSystemThread;
2087 union _GSystemThread
2089 char data[$g_system_thread_sizeof];
2090 double dummy_double;
2091 void *dummy_pointer;
2097 g_bit_sizes="16 32 64"
2098 for bits in $g_bit_sizes; do
2099 cat >>$outfile <<_______EOF
2100 #define GINT${bits}_TO_${g_bs_native}(val) ((gint${bits}) (val))
2101 #define GUINT${bits}_TO_${g_bs_native}(val) ((guint${bits}) (val))
2102 #define GINT${bits}_TO_${g_bs_alien}(val) ((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
2103 #define GUINT${bits}_TO_${g_bs_alien}(val) (GUINT${bits}_SWAP_LE_BE (val))
2107 cat >>$outfile <<_______EOF
2108 #define GLONG_TO_LE(val) ((glong) GINT${glongbits}_TO_LE (val))
2109 #define GULONG_TO_LE(val) ((gulong) GUINT${glongbits}_TO_LE (val))
2110 #define GLONG_TO_BE(val) ((glong) GINT${glongbits}_TO_BE (val))
2111 #define GULONG_TO_BE(val) ((gulong) GUINT${glongbits}_TO_BE (val))
2112 #define GINT_TO_LE(val) ((gint) GINT${gintbits}_TO_LE (val))
2113 #define GUINT_TO_LE(val) ((guint) GUINT${gintbits}_TO_LE (val))
2114 #define GINT_TO_BE(val) ((gint) GINT${gintbits}_TO_BE (val))
2115 #define GUINT_TO_BE(val) ((guint) GUINT${gintbits}_TO_BE (val))
2116 #define G_BYTE_ORDER $g_byte_order
2118 #define GLIB_SYSDEF_POLLIN =$g_pollin
2119 #define GLIB_SYSDEF_POLLOUT =$g_pollout
2120 #define GLIB_SYSDEF_POLLPRI =$g_pollpri
2121 #define GLIB_SYSDEF_POLLHUP =$g_pollhup
2122 #define GLIB_SYSDEF_POLLERR =$g_pollerr
2123 #define GLIB_SYSDEF_POLLNVAL =$g_pollnval
2125 #define G_MODULE_SUFFIX "$g_module_suffix"
2129 #endif /* GLIBCONFIG_H */
2133 if cmp -s $outfile glibconfig.h; then
2134 echo glibconfig.h is unchanged
2137 mv $outfile glibconfig.h
2142 # Note that if two cases are the same, case goes with the first one.
2143 # Note also that this is inside an AC_OUTPUT_COMMAND. We do not depend
2144 # on variable expansion in case labels. Look at the generated config.status
2147 if test "x${ac_cv_working_alloca_h+set}" = xset ; then
2148 glib_header_alloca_h="$ac_cv_working_alloca_h"
2150 glib_header_alloca_h="$ac_cv_header_alloca_h"
2154 x$ac_cv_header_float_h)
2156 glib_mf=FLT_MIN glib_Mf=FLT_MAX
2157 glib_md=DBL_MIN glib_Md=DBL_MAX
2159 x$ac_cv_header_values_h)
2161 glib_mf=MINFLOAT glib_Mf=MAXFLOAT
2162 glib_md=MINDOUBLE glib_Md=MAXDOUBLE
2167 x$ac_cv_header_limits_h)
2169 glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
2170 glib_mi=INT_MIN glib_Mi=INT_MAX glib_Mui=UINT_MAX
2171 glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
2173 x$ac_cv_header_values_h)
2175 glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
2176 glib_mi=MININT glib_Mi=MAXINT glib_Mui="(((guint)G_MAXINT)*2+1)"
2177 glib_ml=MINLONG glib_Ml=MAXLONG glib_Mul="(((gulong)G_MAXLONG)*2+1)"
2181 if test x$ac_cv_header_sys_poll_h = xyes ; then
2186 $ac_cv_sizeof_short)
2188 gint16_format='"hi"'
2189 guint16_format='"hu"'
2194 guint16_format='"u"'
2198 $ac_cv_sizeof_short)
2200 gint32_format='"hi"'
2201 guint32_format='"hu"'
2206 guint32_format='"u"'
2210 gint32_format='"li"'
2211 guint32_format='"lu"'
2218 guint64_format='"u"'
2220 gint64_constant='(val)'
2224 gint64_format='"li"'
2225 guint64_format='"lu"'
2227 gint64_constant='(val##L)'
2229 $ac_cv_sizeof_long_long)
2231 if test -n "$glib_cv_long_long_format"; then
2232 gint64_format='"'$glib_cv_long_long_format'i"'
2233 guint64_format='"'$glib_cv_long_long_format'u"'
2235 glib_extension='G_GNUC_EXTENSION '
2236 gint64_constant='(G_GNUC_EXTENSION (val##LL))'
2238 $ac_cv_sizeof___int64)
2240 if test -n "$glib_cv_long_long_format"; then
2241 gint64_format='"'$glib_cv_long_long_format'i"'
2242 guint64_format='"'$glib_cv_long_long_format'u"'
2245 gint64_constant='(val##i64)'
2248 glib_size_t=$ac_cv_sizeof_size_t
2249 glib_size_type_define=$glib_size_type
2250 glib_void_p=$ac_cv_sizeof_long
2251 glib_long=$ac_cv_sizeof_void_p
2253 gintbits=`expr $ac_cv_sizeof_int \* 8`
2254 glongbits=`expr $ac_cv_sizeof_long \* 8`
2257 case $ac_cv_sizeof_void_p in
2258 $ac_cv_sizeof_int) glib_gpi_cast='' glib_gpui_cast='' ;;
2259 $ac_cv_sizeof_long) glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
2260 *) glib_unknown_void_p=yes ;;
2265 x$ac_cv_func_atexit)
2267 #ifdef NeXT /* @#%@! NeXTStep */
2268 # define g_ATEXIT(proc) (!atexit (proc))
2270 # define g_ATEXIT(proc) (atexit (proc))
2273 x$ac_cv_func_on_exit)
2275 #define g_ATEXIT(proc) (on_exit ((void (*)(int, void*))(proc), NULL))"
2280 x$ac_cv_func_memmove)
2282 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
2284 x$glib_cv_working_bcopy)
2286 /* memmove isn't available, but bcopy can copy overlapping memory regions */
2287 #define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
2291 /* memmove isn't found and bcopy can't copy overlapping memory regions,
2292 * so we have to roll our own copy routine. */
2293 void g_memmove (void* dest, const void * src, unsigned long len);"
2298 #define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
2299 #define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
2300 #define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
2304 x$glib_cv_va_copy) glib_vacopy='#define G_VA_COPY va_copy' ;;
2305 x$glib_cv___va_copy) glib_vacopy='#define G_VA_COPY __va_copy' ;;
2309 if test x$glib_cv_va_val_copy = xno; then
2310 glib_vacopy="\$glib_vacopy
2311 #define G_VA_COPY_AS_ARRAY 1"
2314 if test x$glib_cv_hasinline = xyes; then
2315 glib_inline='#define G_HAVE_INLINE 1'
2317 if test x$glib_cv_has__inline = xyes; then
2318 glib_inline="\$glib_inline
2319 #define G_HAVE___INLINE 1"
2321 if test x$glib_cv_has__inline__ = xyes; then
2322 glib_inline="\$glib_inline
2323 #define G_HAVE___INLINE__ 1"
2326 g_have_gnuc_varargs=$g_have_gnuc_varargs
2327 g_have_iso_c_varargs=$g_have_iso_c_varargs
2328 g_have_iso_cxx_varargs=$g_have_iso_cxx_varargs
2331 x$ac_cv_c_bigendian)
2332 g_byte_order=G_BIG_ENDIAN
2337 g_byte_order=G_LITTLE_ENDIAN
2343 g_pollin=$glib_cv_value_POLLIN
2344 g_pollout=$glib_cv_value_POLLOUT
2345 g_pollpri=$glib_cv_value_POLLPRI
2346 g_pollhup=$glib_cv_value_POLLHUP
2347 g_pollerr=$glib_cv_value_POLLERR
2348 g_pollnval=$glib_cv_value_POLLNVAL
2350 g_stack_grows=$glib_cv_stack_grows
2352 g_have_eilseq=$have_eilseq
2354 case x$have_threads in
2355 xno) g_enable_threads_def="#undef";;
2356 *) g_enable_threads_def="#define";;
2359 g_threads_impl_def=$g_threads_impl
2361 g_mutex_has_default="$mutex_has_default"
2362 g_mutex_sizeof="$glib_cv_sizeof_gmutex"
2363 g_system_thread_sizeof="$glib_cv_sizeof_system_thread"
2364 g_mutex_contents="$glib_cv_byte_contents_gmutex"
2366 g_module_suffix="$glib_gmodule_suffix"
2370 glib_os="#define G_OS_BEOS"
2373 glib_os="#define G_OS_UNIX
2374 #define G_PLATFORM_WIN32
2375 #define G_WITH_CYGWIN"
2378 glib_os="#define G_OS_WIN32
2379 #define G_PLATFORM_WIN32"
2382 glib_os="#define G_OS_UNIX"
2389 glib-2.0-uninstalled.pc
2391 gmodule-2.0-uninstalled.pc
2393 gthread-2.0-uninstalled.pc
2395 gobject-2.0-uninstalled.pc
2401 build/win32/Makefile
2402 build/win32/dirent/Makefile
2404 glib/libcharset/Makefile
2406 gmodule/gmoduleconf.h
2409 gobject/glib-mkenums
2413 docs/reference/Makefile
2414 docs/reference/glib/Makefile
2415 docs/reference/glib/version.xml
2416 docs/reference/gobject/Makefile
2417 docs/reference/gobject/version.xml