1 dnl ***********************************
2 dnl *** include special GLib macros ***
3 dnl ***********************************
4 builtin(include, acglib.m4)dnl
6 # require autoconf 2.13
9 # Process this file with autoconf to produce a configure script.
12 # Save this value here, since automake will set cflags later
13 cflags_set=${CFLAGS+set}
15 # we rewrite this file
16 rm -f glibconfig-sysdefs.h
18 dnl we need 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 AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
22 # The following version number definitions apply to GLib, GModule, GObject and GThread
23 # as a whole, so if changes occoured in any of them, they are all
24 # treated with the same interface and binary age.
27 # GLIB_MICRO_VERSION += 1;
28 # GLIB_INTERFACE_AGE += 1;
29 # GLIB_BINARY_AGE += 1;
30 # if any functions have been added, set GLIB_INTERFACE_AGE to 0.
31 # if backwards compatibility has been broken,
32 # set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
39 GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
43 AC_SUBST(GLIB_MAJOR_VERSION)
44 AC_SUBST(GLIB_MINOR_VERSION)
45 AC_SUBST(GLIB_MICRO_VERSION)
46 AC_SUBST(GLIB_VERSION)
47 AC_SUBST(GLIB_INTERFACE_AGE)
48 AC_SUBST(GLIB_BINARY_AGE)
51 LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
52 LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
53 LT_REVISION=$GLIB_INTERFACE_AGE
54 LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`
63 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
65 # Specify a configuration file
66 AM_CONFIG_HEADER(config.h)
68 AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION)
69 AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION)
70 AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION)
71 AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE)
72 AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE)
74 dnl Initialize libtool
77 dnl Initialize maintainer mode
82 AC_MSG_CHECKING(for the BeOS)
85 glib_native_beos="yes"
91 AC_MSG_RESULT([$glib_native_beos])
93 dnl figure debugging default, prior to $ac_help setup
95 AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
96 if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then
103 dnl declare --enable-* args and collect ac_help strings
104 AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
105 AC_ARG_ENABLE(msg-prefix, [ --enable-msg-prefix turn on program name and PID prefixing of messages and warnings],,enable_msg_prefix=no)
106 AC_ARG_ENABLE(mem_check, [ --enable-mem-check turn on malloc/free sanity checking [default=no]],,enable_mem_check=no)
107 AC_ARG_ENABLE(mem_profile, [ --enable-mem-profile turn on malloc profiling atexit [default=no]],,enable_mem_profile=no)
108 AC_ARG_ENABLE(gc_friendly, [ --enable-gc-friendly turn on garbage collector friendliness [default=no]],,enable_gc_friendly=no)
109 AC_ARG_ENABLE(ansi, [ --enable-ansi turn on strict ansi [default=no]],
111 AC_ARG_ENABLE(threads, [ --enable-threads turn on basic thread support [default=yes]
112 ([=no] will override --with-threads)],,enable_threads=yes)
114 if test "x$enable_threads" != "xyes"; then
118 AC_MSG_CHECKING(whether to enable memory checking)
119 if test "x$enable_mem_check" = "xyes"; then
120 AC_DEFINE(ENABLE_MEM_CHECK, 1)
121 AC_SUBST(ENABLE_MEM_CHECK)
127 AC_MSG_CHECKING(whether to enable memory profiling)
128 if test "x$enable_mem_profile" = "xyes"; then
129 AC_DEFINE(ENABLE_MEM_PROFILE, 1)
130 AC_SUBST(ENABLE_MEM_PROFILE)
136 AC_MSG_CHECKING(whether to enable garbage collector friendliness)
137 if test "x$enable_gc_friendly" = "xyes"; then
138 AC_DEFINE(ENABLE_GC_FRIENDLY, 1)
139 AC_SUBST(ENABLE_GC_FRIENDLY)
145 if test "x$enable_debug" = "xyes"; then
146 test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
147 GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
149 if test "x$enable_debug" = "xno"; then
150 GLIB_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
154 AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}")
156 if test "x$enable_msg_prefix" = "xyes"; then
157 AC_DEFINE_UNQUOTED(G_ENABLE_MSG_PREFIX, 1)
160 # Checks for programs.
166 if test "x$GCC" = "xyes"; then
168 *[\ \ ]-Wall[\ \ ]*) ;;
169 *) CFLAGS="$CFLAGS -Wall" ;;
172 if test "x$enable_ansi" = "xyes"; then
174 *[\ \ ]-ansi[\ \ ]*) ;;
175 *) CFLAGS="$CFLAGS -ansi" ;;
179 *[\ \ ]-pedantic[\ \ ]*) ;;
180 *) CFLAGS="$CFLAGS -pedantic" ;;
186 dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
187 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
190 AC_TRY_RUN([#include <math.h>
191 int main (void) { return (log(1) != log(1.)); }],
192 AC_MSG_RESULT(none needed),
193 glib_save_CFLAGS=$CFLAGS
194 CFLAGS="$CFLAGS -std1"
195 AC_TRY_RUN([#include <math.h>
196 int main (void) { return (log(1) != log(1.)); }],
197 AC_MSG_RESULT(-std1),
199 CFLAGS=$glib_save_CFLAGS
201 [No ANSI prototypes found in library. (-std1 didn't work.)])
206 dnl NeXTStep cc seems to need this
207 AC_MSG_CHECKING([for extra flags for POSIX compliance])
208 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
209 AC_MSG_RESULT(none needed),
210 glib_save_CFLAGS=$CFLAGS
211 CFLAGS="$CFLAGS -posix"
212 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
213 AC_MSG_RESULT(-posix),
215 CFLAGS=$glib_save_CFLAGS
216 AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
218 # Checks for header files.
221 # Checks for library functions.
224 AC_CHECK_FUNCS(atexit on_exit)
226 AC_CHECK_SIZEOF(char)
227 AC_CHECK_SIZEOF(short)
228 AC_CHECK_SIZEOF(long)
230 AC_CHECK_SIZEOF(void *)
231 AC_CHECK_SIZEOF(long long)
233 if test x$ac_cv_sizeof_long_long = x8; then
234 # long long is a 64 bit integer.
235 AC_MSG_CHECKING(for format to printf and scanf a gint64)
236 AC_CACHE_VAL(glib_cv_long_long_format,[
237 AC_TRY_RUN([#include <stdio.h>
240 long long b, a = -0x3AFAFAFAFAFAFAFALL;
242 sprintf (buffer, "%llu", a);
243 sscanf (buffer, "%llu", &b);
247 glib_cv_long_long_format=ll,
248 glib_cv_long_long_format=q)])
249 AC_MSG_RESULT(%${glib_cv_long_long_format}i)
252 dnl long doubles were not used, and a portability problem
256 dnl AC_C_INLINE is useless to us since it bails out too early, we need to
257 dnl truely know which ones of `inline', `__inline' and `__inline__' are
258 dnl actually supported.
259 AC_MSG_CHECKING(for __inline)
260 AC_CACHE_VAL(glib_cv_has__inline,[
262 __inline int foo () { return 0; }
263 int main () { return foo (); }
265 glib_cv_has__inline=yes
267 glib_cv_has__inline=no
270 AC_MSG_RESULT($glib_cv_has__inline)
271 case x$glib_cv_has__inline in
272 xyes) AC_DEFINE(G_HAVE___INLINE)
274 AC_MSG_CHECKING(for __inline__)
275 AC_CACHE_VAL(glib_cv_has__inline__,[
277 __inline__ int foo () { return 0; }
278 int main () { return foo (); }
280 glib_cv_has__inline__=yes
282 glib_cv_has__inline__=no
285 AC_MSG_RESULT($glib_cv_has__inline__)
286 case x$glib_cv_has__inline__ in
287 xyes) AC_DEFINE(G_HAVE___INLINE__)
289 AC_MSG_CHECKING(for inline)
290 AC_CACHE_VAL(glib_cv_hasinline,[
292 inline int foo () { return 0; }
293 int main () { return foo (); }
295 glib_cv_hasinline=yes
300 AC_MSG_RESULT($glib_cv_hasinline)
301 case x$glib_cv_hasinline in
302 xyes) AC_DEFINE(G_HAVE_INLINE)
305 # check for bytesex stuff
308 # check for header files
309 AC_CHECK_HEADERS(float.h, AC_DEFINE(HAVE_FLOAT_H))
310 AC_CHECK_HEADERS(limits.h, AC_DEFINE(HAVE_LIMITS_H))
311 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
312 AC_CHECK_HEADERS(sys/param.h, AC_DEFINE(HAVE_SYS_PARAM_H))
313 AC_CHECK_HEADERS(sys/poll.h, AC_DEFINE(HAVE_SYS_POLL_H))
314 AC_CHECK_HEADERS(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H))
315 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
316 AC_CHECK_HEADERS(sys/times.h, AC_DEFINE(HAVE_SYS_TIMES_H))
317 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
318 AC_CHECK_HEADERS(values.h, AC_DEFINE(HAVE_VALUES_H))
319 AC_CHECK_HEADERS(stdint.h, AC_DEFINE(HAVE_VALUES_H))
321 AC_MSG_CHECKING(whether make is GNU Make)
324 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
325 STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
332 AC_SUBST(STRIP_DUMMY)
333 AC_SUBST(STRIP_BEGIN)
336 # check additional type sizes
344 if test "x$ac_cv_header_stdint_h" = "xyes"; then
345 size_includes=["$size_includes
349 if test "x$ac_cv_header_unistd_h" = "xyes"; then
350 size_includes=["$size_includes
354 GLIB_SIZEOF([$size_includes], size_t, size_t)
355 GLIB_SIZEOF([$size_includes], ptrdiff_t, ptrdiff_t)
356 GLIB_SIZEOF([$size_includes], intmax_t, intmax_t)
358 # Check for some functions
359 AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll)
361 # Check if bcopy can be used for overlapping copies, if memmove isn't found.
362 # The check is borrowed from the PERL Configure script.
363 if test "$ac_cv_func_memmove" != "yes"; then
364 AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
365 glib_cv_working_bcopy,[AC_TRY_RUN([
367 char buf[128], abc[128], *b;
369 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
370 for (align = 7; align >= 0; align--) {
371 for (len = 36; len; len--) {
372 b = buf+align; bcopy(abc, b, len);
373 for (off = 1; off <= len; off++) {
374 bcopy(b, b+off, len); bcopy(b+off, b, len);
375 if (bcmp(b, abc, len)) return(1);
380 }],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
381 if test "$glib_cv_working_bcopy" == "yes"; then
382 AC_DEFINE(HAVE_WORKING_BCOPY)
386 # Check for sys_errlist
387 AC_MSG_CHECKING(for sys_errlist)
389 extern char *sys_errlist[];
391 sys_errlist[sys_nerr-1][0] = 0;
392 ], glib_ok=yes, glib_ok=no)
393 AC_MSG_RESULT($glib_ok)
394 if test $glib_ok = no; then
395 AC_DEFINE(NO_SYS_ERRLIST)
398 # Check for sys_siglist
399 AC_MSG_CHECKING(for sys_siglist)
401 extern char *sys_siglist[];
402 strlen (sys_siglist[0]);
403 ], glib_ok=yes, glib_ok=no)
404 AC_MSG_RESULT($glib_ok)
405 if test $glib_ok = no; then
406 AC_DEFINE(NO_SYS_SIGLIST)
409 # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
410 AC_MSG_CHECKING(for sys_siglist declaration)
411 AC_TRY_COMPILE([#include <signal.h>], [
412 strlen (sys_siglist[0]);
413 ], glib_ok=yes, glib_ok=no)
414 AC_MSG_RESULT($glib_ok)
415 if test $glib_ok = no; then
416 AC_DEFINE(NO_SYS_SIGLIST_DECL)
419 # Check if <sys/select.h> needs to be included for fd_set
420 AC_MSG_CHECKING([for fd_set])
421 AC_TRY_COMPILE([#include <sys/types.h>],
422 [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
423 if test $gtk_ok = yes; then
424 AC_MSG_RESULT([yes, found in sys/types.h])
426 AC_HEADER_EGREP(fd_set, sys/select.h, gtk_ok=yes)
427 if test $gtk_ok = yes; then
428 AC_DEFINE(HAVE_SYS_SELECT_H)
429 AC_MSG_RESULT([yes, found in sys/select.h])
436 dnl *** check for sane realloc() ***
437 AC_MSG_CHECKING(whether realloc (NULL,) will work)
438 AC_CACHE_VAL(glib_cv_sane_realloc,[
442 return realloc (0, sizeof (int)) == 0;
444 glib_cv_sane_realloc=yes
445 AC_DEFINE(REALLOC_0_WORKS)
447 glib_cv_sane_realloc=no
450 AC_MSG_RESULT($glib_cv_sane_realloc)
452 dnl Check for nl_langinfo and CODESET
454 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
455 AC_TRY_COMPILE([#include <langinfo.h>],
456 [char *codeset = nl_langinfo (CODESET);],
457 AC_DEFINE(HAVE_CODESET)
461 AC_MSG_RESULT($have_codeset)
464 dnl **********************
465 dnl *** va_copy checks ***
466 dnl **********************
467 dnl we currently check for all three va_copy possibilities, so we get
468 dnl all results in config.log for bug reports.
469 AC_MSG_CHECKING(for an implementation of va_copy())
470 AC_CACHE_VAL(glib_cv_va_copy,[
473 void f (int i, ...) {
474 va_list args1, args2;
476 va_copy (args2, args1);
477 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
479 va_end (args1); va_end (args2);
490 AC_MSG_RESULT($glib_cv_va_copy)
491 AC_MSG_CHECKING(for an implementation of __va_copy())
492 AC_CACHE_VAL(glib_cv___va_copy,[
495 void f (int i, ...) {
496 va_list args1, args2;
498 __va_copy (args2, args1);
499 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
501 va_end (args1); va_end (args2);
507 glib_cv___va_copy=yes
512 AC_MSG_RESULT($glib_cv___va_copy)
513 AC_MSG_CHECKING(whether va_lists can be copied by value)
514 AC_CACHE_VAL(glib_cv_va_val_copy,[
517 void f (int i, ...) {
518 va_list args1, args2;
521 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
523 va_end (args1); va_end (args2);
529 glib_cv_va_val_copy=yes
531 glib_cv_va_val_copy=no
534 if test "x$glib_cv_va_copy" = "xyes"; then
535 AC_DEFINE(G_VA_COPY, va_copy)
536 else if test "x$glib_cv___va_copy" = "xyes"; then
537 AC_DEFINE(G_VA_COPY, __va_copy)
540 if test "x$glib_cv_va_val_copy" = "xno"; then
541 AC_DEFINE(G_VA_COPY_AS_ARRAY)
543 AC_MSG_RESULT($glib_cv_va_val_copy)
546 dnl ***********************
547 dnl *** g_module checks ***
548 dnl ***********************
551 G_MODULE_PLUGIN_LIBS=
553 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
554 G_MODULE_NEED_USCORE=0
555 G_MODULE_HAVE_DLERROR=0
556 dnl *** dlopen() and dlsym() in system libraries
557 if test -z "$G_MODULE_IMPL"; then
558 AC_CHECK_FUNC(dlopen,
560 G_MODULE_IMPL=G_MODULE_IMPL_DL
564 dnl *** load_image (BeOS)
565 if test -z "$G_MODULE_IMPL" -a "x$glib_native_beos" = "xyes"; then
566 AC_CHECK_LIB(root, load_image,
567 G_MODULE_LIBS="-lbe -lroot -lglib"
568 G_MODULE_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
569 G_MODULE_PLUGIN_LIBS="-L\$(top_builddir_full)/gmodule/.libs -lgmodule"
570 G_MODULE_IMPL=G_MODULE_IMPL_BEOS
573 dnl *** dlopen() and dlsym() in libdl
574 if test -z "$G_MODULE_IMPL"; then
575 AC_CHECK_LIB(dl, dlopen,
576 AC_CHECK_LIB(dl, dlsym,
578 G_MODULE_IMPL=G_MODULE_IMPL_DL
582 dnl *** shl_load() in libdld (HP-UX)
583 if test -z "$G_MODULE_IMPL"; then
584 AC_MSG_CHECKING(how to export all symbols)
585 SAVED_LDFLAGS=$LDFLAGS
586 LDFLAGS="$LDFLAGS -Wl,-E"
587 AC_TRY_LINK(,[ return 0; ],
588 [ G_MODULE_LDFLAGS="-Wl,-E" ],[
589 LDFLAGS="$SAVED_LDFLAGS -bexpall"
590 AC_TRY_LINK(,[ return 0; ],
591 G_MODULE_LDFLAGS="-bexpall",
592 G_MODULE_LDFLAGS="none"
595 LDFLAGS=$SAVED_LDFLAGS
596 AC_MSG_RESULT($G_MODULE_LDFLAGS)
597 if test "x$G_MODULE_LDFLAGS" = "xnone"; then
600 AC_CHECK_LIB(dld, shl_load,
602 G_MODULE_IMPL=G_MODULE_IMPL_DLD
605 dnl *** additional checks for G_MODULE_IMPL_DL
606 if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
609 G_MODULE_LDFLAGS='-rdynamic'
613 LDFLAGS_orig="$LDFLAGS"
614 LIBS="$LIBS $G_MODULE_LIBS"
615 LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
616 dnl *** check whether we need preceeding underscores
617 AC_MSG_CHECKING(for preceeding underscore in symbols)
618 AC_CACHE_VAL(glib_cv_uscore,[
621 int glib_underscore_test (void) { return 42; }
623 void *f1 = (void*)0, *f2 = (void*)0, *handle;
624 handle = dlopen ((void*)0, 0);
626 f1 = dlsym (handle, "glib_underscore_test");
627 f2 = dlsym (handle, "_glib_underscore_test");
628 } return (!f2 || f1);
633 rm -f plugin.c plugin.o plugin.lo
635 AC_MSG_RESULT($glib_cv_uscore)
636 if test "x$glib_cv_uscore" = "xyes"; then
637 G_MODULE_NEED_USCORE=1
639 G_MODULE_NEED_USCORE=0
642 LDFLAGS="$LDFLAGS_orig"
643 dnl *** check for having dlerror()
644 AC_CHECK_FUNC(dlerror,
645 G_MODULE_HAVE_DLERROR=1,
646 G_MODULE_HAVE_DLERROR=0)
649 dnl *** done, have e got an implementation?
650 if test -z "$G_MODULE_IMPL"; then
653 AC_SUBST(G_MODULE_IMPL)
654 AC_SUBST(G_MODULE_LIBS)
655 AC_SUBST(G_MODULE_LIBS_EXTRA)
656 AC_SUBST(G_MODULE_PLUGIN_LIBS)
657 AC_SUBST(G_MODULE_LDFLAGS)
658 AC_SUBST(G_MODULE_HAVE_DLERROR)
659 AC_SUBST(G_MODULE_NEED_USCORE)
660 AC_SUBST(GLIB_DEBUG_FLAGS)
663 dnl ***********************
664 dnl *** g_thread checks ***
665 dnl ***********************
667 AC_ARG_WITH(threads, [ --with-threads=[none/posix/dce/solaris] specify a thread implementation to use],
668 if test "x$with_threads" = x; then
671 want_threads=$with_threads
674 if test "x$enable_threads" = "xno"; then
677 if test "x$want_threads" = "xnone"; then
681 dnl error and warning message
682 dnl *************************
684 THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
685 computer. GLib will not have a default thread implementation."
687 FLAG_DOES_NOT_WORK="I can't find the MACRO to enable thread safety on your
688 platform (normaly it's "_REENTRANT"). I'll not use any flag on
689 compilation now, but then your programs might not work.
690 Please provide information on how it is done on your system."
692 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
695 LIBS_NOT_FOUND_2=". Please choose another thread implementation or
696 provide information on your thread implementation.
697 You can also run 'configure --disable-threads'
698 to compile without thread support."
700 FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
701 functions will not be MT-safe during their first call because
702 there is no working 'getpwuid_r' on your system."
704 FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
705 because there is no 'localtime_r' on your system."
707 POSIX_NO_YIELD="I can not find a yield functions for your platform. A rather
708 crude surrogate will be used. If you happen to know a
709 yield function for your system, please inform the GLib
712 POSIX_NO_PRIORITIES="I can not find the minimal and maximal priorities for
713 threads on your system. Thus threads can only have the default
714 priority. If you happen to know these main/max
715 priorities, please inform the GLib developers."
718 dnl determination of thread implementation
719 dnl ***************************************
722 if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
725 AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
729 if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
730 || test "x$want_threads" = xdce; then
731 # -D_POSIX4A_DRAFT10_SOURCE is for DG/UX
732 # -U_OSF_SOURCE is for Digital UNIX 4.0d
733 GTHREAD_COMPILE_IMPL_DEFINES="-D_POSIX4A_DRAFT10_SOURCE -U_OSF_SOURCE"
734 glib_save_CPPFLAGS="$CPPFLAGS"
735 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
736 if test "x$have_threads" = xnone; then
737 AC_EGREP_HEADER([(^|[^a-zA-Z_])pthread_attr_init[^a-zA-Z_]],
741 if test "x$have_threads" = xnone; then
742 AC_EGREP_HEADER([(^|[^a-zA-Z_])pthread_attr_create[^a-zA-Z_]],
746 CPPFLAGS="$glib_save_CPPFLAGS"
749 AC_MSG_CHECKING(for thread implementation)
751 if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
752 AC_MSG_RESULT(none available)
753 AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
755 AC_MSG_RESULT($have_threads)
759 dnl determination of G_THREAD_LIBS
760 dnl ******************************
767 case $have_threads in
770 glib_save_LIBS="$LIBS"
771 for thread_lib in "" pthread pthreads c_r thread dce; do
772 if test x"$thread_lib" = x; then
776 add_thread_lib="-l$thread_lib"
777 IN=" in -l$thread_lib"
779 if test x"$have_threads" = xposix; then
782 defattr=pthread_attr_default
785 LIBS="$glib_save_LIBS $add_thread_lib"
787 AC_MSG_CHECKING(for pthread_create/pthread_join$IN)
788 AC_TRY_RUN([#include <pthread.h>
790 void* func(void* data) {check_me = 42;}
794 pthread_create (&t, $defattr, func, NULL);
795 pthread_join (t, &ret);
796 exit (check_me != 42);
799 G_THREAD_LIBS="$add_thread_lib"
803 for thread_lib in "" rt; do
804 if test x"$thread_lib" = x; then
808 add_thread_lib="-l$thread_lib"
809 IN=" in -l$thread_lib"
811 LIBS="$glib_save_LIBS $add_thread_lib"
813 AC_MSG_CHECKING(for sched_get_priority_min$IN)
814 AC_TRY_RUN([#include <sched.h>
818 return sched_get_priority_min(SCHED_OTHER)==-1
822 G_THREAD_LIBS="$G_THREAD_LIBS $add_thread_lib"
823 posix_priority_min="sched_get_priority_min(SCHED_OTHER)"
824 posix_priority_max="sched_get_priority_max(SCHED_OTHER)"
828 LIBS="$glib_save_LIBS"
829 mutex_has_default=yes
830 mutex_default_type='pthread_mutex_t'
831 mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
832 mutex_header_file='pthread.h'
833 if test "x$have_threads" = "xposix"; then
834 g_threads_impl="POSIX"
839 AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
843 AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
844 mutex_has_default=yes
845 mutex_default_type='mutex_t'
846 mutex_default_init="DEFAULTMUTEX"
847 mutex_header_file='thread.h'
848 g_threads_impl="SOLARIS"
851 g_threads_impl="NONE"
854 g_threads_impl="NONE"
859 if test "x$G_THREAD_LIBS" = xerror; then
860 AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
865 G_THREAD_LIBS="-lbe -lroot -lglib "
866 G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
872 AC_MSG_CHECKING(thread related libraries)
873 AC_MSG_RESULT($G_THREAD_LIBS)
875 dnl determination of G_THREAD_CFLAGS
876 dnl ********************************
878 if test x"$enable_threads" = xyes; then
880 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
884 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
885 if test x"$GCC" = xyes; then
886 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
890 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
892 # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
897 # if we are not finding the ctime_r function, then we probably are
898 # not using the proper multithread flag
899 old_CPPFLAGS=$CPPFLAGS
900 CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
901 # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
902 AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
904 AC_MSG_WARN($FLAG_DOES_NOT_WORK))
905 CPPFLAGS=$old_CPPFLAGS
907 AC_MSG_CHECKING(thread related cflags)
909 AC_MSG_RESULT($G_THREAD_CFLAGS)
914 dnl check for mt safe function variants and some posix functions
915 dnl ************************************************************
917 if test x"$enable_threads" = xyes; then
918 glib_save_LIBS="$LIBS"
919 glib_save_CFLAGS="$CFLAGS"
920 # we are not doing the following for now, as this might require glib
921 # to always be linked with the thread libs on some platforms.
922 # LIBS="$LIBS $G_THREAD_LIBS"
923 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
924 AC_CHECK_FUNCS(localtime_r)
925 if test "$ac_cv_header_pwd_h" = "yes"; then
926 AC_MSG_CHECKING([for getpwuid_r])
927 AC_CACHE_VAL(ac_cv_func_getpwuid_r,
928 [AC_TRY_RUN([#include <errno.h>
929 int main () { char buffer[10000], *pointer;
930 char getpwuid_r (long, void*, void*,
933 getpwuid_r (0, &buffer, &buffer,
934 sizeof (buffer), &pointer);
935 return errno == ENOSYS;}],
936 [ac_cv_func_getpwuid_r=yes],
937 [ac_cv_func_getpwuid_r=no])])
938 if test "$ac_cv_func_getpwuid_r" = yes; then
940 AC_DEFINE(HAVE_GETPWUID_R)
944 if test "$ac_cv_func_getpwuid_r" = "yes"; then
945 AC_MSG_CHECKING(whether getpwuid_r is posix like)
946 # The signature for the POSIX version is:
947 # int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **)
948 AC_TRY_COMPILE([#include <pwd.h>
949 #include <sys/types.h>
950 #include <stdlib.h>],
951 [getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);],
952 [AC_DEFINE(HAVE_GETPWUID_R_POSIX)
957 LIBS="$LIBS $G_THREAD_LIBS"
958 if test x"$have_threads" = xposix; then
959 glib_save_CPPFLAGS="$CPPFLAGS"
960 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
961 GLIB_SIZEOF([#include <pthread.h>],
964 # This is not AC_CHECK_FUNC to also work with function
965 # name mangling in header files.
966 AC_MSG_CHECKING(for pthread_attr_setstacksize)
967 AC_TRY_LINK([#include <pthread.h>],
968 [pthread_attr_t t; pthread_attr_setstacksize(&t,0)],
970 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE)],
972 AC_MSG_CHECKING(for minimal/maximal thread priority)
973 if test x"$posix_priority_min" = xnone; then
974 AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
976 posix_priority_min=PX_PRIO_MIN
977 posix_priority_max=PX_PRIO_MAX])
979 if test x"$posix_priority_min" = xnone; then
980 AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
982 posix_priority_min=PRI_OTHER_MIN
983 posix_priority_max=PRI_OTHER_MAX])
985 if test x"$posix_priority_min" = x; then
986 AC_MSG_RESULT(none found)
987 AC_MSG_WARN($POSIX_NO_PRIORITIES)
988 posix_priority_min=-1
989 posix_priority_max=-1
991 AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
992 AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min)
993 AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max)
995 posix_yield_func=none
996 AC_MSG_CHECKING(for posix yield function)
997 for yield_func in sched_yield pthread_yield_np pthread_yield \
999 AC_TRY_LINK([#include <pthread.h>],
1001 [posix_yield_func="$yield_func"
1004 if test x"$posix_yield_func" = xnone; then
1005 AC_MSG_RESULT(none found)
1006 AC_MSG_WARN($POSIX_NO_YIELD)
1007 posix_yield_func="g_usleep(1000)"
1009 AC_MSG_RESULT($posix_yield_func)
1010 posix_yield_func="$posix_yield_func()"
1012 AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func)
1013 CPPFLAGS="$glib_save_CPPFLAGS"
1014 else # solaris threads
1015 GLIB_SIZEOF([#include <thread.h>],
1020 LIBS="$glib_save_LIBS"
1021 CFLAGS="$glib_save_CFLAGS"
1023 # now spit out all the warnings.
1024 if test "$ac_cv_func_getpwuid_r" != "yes"; then
1025 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
1027 if test "$ac_cv_func_localtime_r" != "yes"; then
1028 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
1031 # If no thread implementation exists, we will provide enough
1032 # space for a pointer
1033 GLIB_SIZEOF(, void*, system_thread)
1036 AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c")
1037 AC_SUBST(G_THREAD_CFLAGS)
1038 AC_SUBST(G_THREAD_LIBS)
1039 AC_SUBST(G_THREAD_LIBS_EXTRA)
1041 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
1043 dnl **********************************************
1044 dnl *** GDefaultMutex setup and initialization ***
1045 dnl **********************************************
1047 dnl if mutex_has_default = yes, we also got
1048 dnl mutex_default_type, mutex_default_init and mutex_header_file
1049 GLIB_IF_VAR_EQ(mutex_has_default, yes,
1050 glib_save_CPPFLAGS="$CPPFLAGS"
1051 glib_save_LIBS="$LIBS"
1052 LIBS="$LIBS $G_THREAD_LIBS"
1053 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1054 GLIB_SIZEOF([#include <$mutex_header_file>],
1055 $mutex_default_type,
1058 GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
1059 $mutex_default_type,
1061 $glib_cv_sizeof_gmutex,
1062 $mutex_default_init)
1063 if test x"$glib_cv_byte_contents_gmutex" = xno; then
1064 mutex_has_default=no
1066 CPPFLAGS="$glib_save_CPPFLAGS"
1067 LIBS="$glib_save_LIBS"
1072 dnl ****************************************
1073 dnl *** GLib POLL* compatibility defines ***
1074 dnl ****************************************
1076 [#include <sys/types.h>
1077 #include <sys/poll.h>],
1078 POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
1079 glibconfig-sysdefs.h,
1083 dnl ******************************
1084 dnl *** output the whole stuff ***
1085 dnl ******************************
1087 AC_OUTPUT_COMMANDS([
1089 ## Generate `glibconfig.h' in two cases
1090 ## 1. `config.status' is run either explicitly, or via configure.
1091 ## Esp. not when it is run in `Makefile' to generate makefiles and
1093 ## 2. CONFIG_OTHER is set explicitly
1095 ## Case 1 is difficult. We know that `automake' sets one of
1096 ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
1097 ## only when AM_CONFIG_HEADER is set, however.
1099 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1100 # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1101 CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
1103 case "$CONFIG_OTHER" in
1105 echo creating glibconfig.h
1106 outfile=glibconfig.h-tmp
1107 cat > $outfile <<\_______EOF
1110 * This is a generated file. Please modify `configure.in'
1113 #ifndef GLIBCONFIG_H
1114 #define GLIBCONFIG_H
1118 #endif /* __cplusplus */
1122 if test x$glib_limits_h = xyes; then
1123 echo '#include <limits.h>' >> $outfile
1125 if test x$glib_float_h = xyes; then
1126 echo '#include <float.h>' >> $outfile
1128 if test x$glib_values_h = xyes; then
1129 echo '#include <values.h>' >> $outfile
1131 if test x$g_mutex_header_file != x; then
1132 echo '#include <'"$g_mutex_header_file"'>' >> $outfile
1134 if test x$glib_sys_poll_h = xyes; then
1135 echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
1138 cat >> $outfile <<_______EOF
1140 #define G_MINFLOAT $glib_mf
1141 #define G_MAXFLOAT $glib_Mf
1142 #define G_MINDOUBLE $glib_md
1143 #define G_MAXDOUBLE $glib_Md
1144 #define G_MINSHORT $glib_ms
1145 #define G_MAXSHORT $glib_Ms
1146 #define G_MAXUSHORT $glib_Mus
1147 #define G_MININT $glib_mi
1148 #define G_MAXINT $glib_Mi
1149 #define G_MAXUINT $glib_Mui
1150 #define G_MINLONG $glib_ml
1151 #define G_MAXLONG $glib_Ml
1152 #define G_MAXULONG $glib_Mul
1157 ### this should always be true in a modern C/C++ compiler
1158 cat >>$outfile <<_______EOF
1159 typedef signed char gint8;
1160 typedef unsigned char guint8;
1164 if test -n "$gint16"; then
1165 cat >>$outfile <<_______EOF
1166 typedef signed $gint16 gint16;
1167 typedef unsigned $gint16 guint16;
1168 #define G_GINT16_FORMAT $gint16_format
1169 #define G_GUINT16_FORMAT $guint16_format
1174 if test -n "$gint32"; then
1175 cat >>$outfile <<_______EOF
1176 typedef signed $gint32 gint32;
1177 typedef unsigned $gint32 guint32;
1178 #define G_GINT32_FORMAT $gint32_format
1179 #define G_GUINT32_FORMAT $guint32_format
1184 if test -n "$gint64"; then
1185 cat >>$outfile <<_______EOF
1186 #define G_HAVE_GINT64 1
1188 ${glib_extension}typedef signed $gint64 gint64;
1189 ${glib_extension}typedef unsigned $gint64 guint64;
1191 #define G_GINT64_FORMAT $gint64_format
1192 #define G_GUINT64_FORMAT $guint64_format
1193 #define G_GINT64_CONSTANT(val) $gint64_constant
1198 if test -z "$glib_unknown_void_p"; then
1199 cat >>$outfile <<_______EOF
1201 #define GPOINTER_TO_INT(p) ((gint) ${glib_gpi_cast} (p))
1202 #define GPOINTER_TO_UINT(p) ((guint) ${glib_gpui_cast} (p))
1204 #define GINT_TO_POINTER(i) ((gpointer) ${glib_gpi_cast} (i))
1205 #define GUINT_TO_POINTER(u) ((gpointer) ${glib_gpui_cast} (u))
1208 echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
1213 cat >>$outfile <<_______EOF
1222 #define G_HAVE_INLINE 1
1223 #else /* !__cplusplus */
1225 #endif /* !__cplusplus */
1229 if test x$g_mutex_has_default = xyes; then
1230 cat >>$outfile <<_______EOF
1231 $g_enable_threads_def G_THREADS_ENABLED
1232 #define G_THREADS_IMPL_$g_threads_impl_def
1233 typedef struct _GStaticMutex GStaticMutex;
1234 struct _GStaticMutex
1236 struct _GMutex *runtime_mutex;
1238 char pad[$g_mutex_sizeof];
1239 double dummy_double;
1240 void *dummy_pointer;
1244 #define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
1245 #define g_static_mutex_get_mutex(mutex) \
1246 (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
1247 g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
1250 cat >>$outfile <<_______EOF
1251 $g_enable_threads_def G_THREADS_ENABLED
1252 #define G_THREADS_IMPL_$g_threads_impl_def
1253 typedef struct _GMutex* GStaticMutex;
1254 #define G_STATIC_MUTEX_INIT NULL
1255 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
1259 cat >>$outfile <<_______EOF
1260 /* This represents a system thread as used by the implementation. An
1261 * alien implementaion, as loaded by g_thread_init can only count on
1262 * "sizeof (gpointer)" bytes to store their info. We however need more
1263 * for some of our native implementations. */
1264 typedef union _GSystemThread GSystemThread;
1265 union _GSystemThread
1267 char data[$g_system_thread_sizeof];
1268 double dummy_double;
1269 void *dummy_pointer;
1276 if test -n "$gint64"; then
1277 g_bit_sizes="$g_bit_sizes 64"
1279 for bits in $g_bit_sizes; do
1280 cat >>$outfile <<_______EOF
1281 #define GINT${bits}_TO_${g_bs_native}(val) ((gint${bits}) (val))
1282 #define GUINT${bits}_TO_${g_bs_native}(val) ((guint${bits}) (val))
1283 #define GINT${bits}_TO_${g_bs_alien}(val) ((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
1284 #define GUINT${bits}_TO_${g_bs_alien}(val) (GUINT${bits}_SWAP_LE_BE (val))
1288 cat >>$outfile <<_______EOF
1289 #define GLONG_TO_LE(val) ((glong) GINT${glongbits}_TO_LE (val))
1290 #define GULONG_TO_LE(val) ((gulong) GUINT${glongbits}_TO_LE (val))
1291 #define GLONG_TO_BE(val) ((glong) GINT${glongbits}_TO_BE (val))
1292 #define GULONG_TO_BE(val) ((gulong) GUINT${glongbits}_TO_BE (val))
1293 #define GINT_TO_LE(val) ((gint) GINT${gintbits}_TO_LE (val))
1294 #define GUINT_TO_LE(val) ((guint) GUINT${gintbits}_TO_LE (val))
1295 #define GINT_TO_BE(val) ((gint) GINT${gintbits}_TO_BE (val))
1296 #define GUINT_TO_BE(val) ((guint) GUINT${gintbits}_TO_BE (val))
1297 #define G_BYTE_ORDER $g_byte_order
1301 if test -r glibconfig-sysdefs.h; then
1302 cat glibconfig-sysdefs.h >>$outfile
1305 cat >>$outfile <<_______EOF
1309 #endif /* __cplusplus */
1311 #endif /* GLIBCONFIG_H */
1315 if cmp -s $outfile glibconfig.h; then
1316 echo glibconfig.h is unchanged
1319 mv $outfile glibconfig.h
1324 # Note that if two cases are the same, case goes with the first one.
1325 # Note also that this is inside an AC_OUTPUT_COMMAND. We do not depend
1326 # on variable expansion in case labels. Look at the generated config.status
1330 x$ac_cv_header_float_h)
1332 glib_mf=FLT_MIN glib_Mf=FLT_MAX
1333 glib_md=DBL_MIN glib_Md=DBL_MAX
1335 x$ac_cv_header_values_h)
1337 glib_mf=MINFLOAT glib_Mf=MAXFLOAT
1338 glib_md=MINDOUBLE glib_Md=MAXDOUBLE
1343 x$ac_cv_header_limits_h)
1345 glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
1346 glib_mi=INT_MIN glib_Mi=INT_MAX glib_Mui=UINT_MAX
1347 glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
1349 x$ac_cv_header_values_h)
1351 glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
1352 glib_mi=MININT glib_Mi=MAXINT glib_Mui="(((guint)G_MAXINT)*2+1)"
1353 glib_ml=MINLONG glib_Ml=MAXLONG glib_Mul="(((gulong)G_MAXLONG)*2+1)"
1357 if test x$ac_cv_header_sys_poll_h = xyes ; then
1362 $ac_cv_sizeof_short)
1364 gint16_format='"hi"'
1365 guint16_format='"hu"'
1370 guint16_format='"u"'
1374 $ac_cv_sizeof_short)
1376 gint32_format='"hi"'
1377 guint32_format='"hu"'
1382 guint32_format='"u"'
1386 gint32_format='"li"'
1387 guint32_format='"lu"'
1394 guint64_format='"u"'
1396 gint64_constant='(val)'
1400 gint64_format='"li"'
1401 guint64_format='"lu"'
1403 gint64_constant='(val##L)'
1405 $ac_cv_sizeof_long_long)
1407 gint64_format='"'$glib_cv_long_long_format'i"'
1408 guint64_format='"'$glib_cv_long_long_format'u"'
1409 glib_extension='G_GNUC_EXTENSION '
1410 gint64_constant='(G_GNUC_EXTENSION (val##LL))'
1414 gintbits=`expr $ac_cv_sizeof_int \* 8`
1415 glongbits=`expr $ac_cv_sizeof_long \* 8`
1418 case $ac_cv_sizeof_void_p in
1419 $ac_cv_sizeof_int) glib_gpi_cast='' glib_gpui_cast='' ;;
1420 $ac_cv_sizeof_long) glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
1421 *) glib_unknown_void_p=yes ;;
1426 x$ac_cv_func_atexit)
1428 #ifdef NeXT /* @#%@! NeXTStep */
1429 # define g_ATEXIT(proc) (!atexit (proc))
1431 # define g_ATEXIT(proc) (atexit (proc))
1434 x$ac_cv_func_on_exit)
1436 #define g_ATEXIT(proc) (on_exit ((void (*)(int, void*))(proc), NULL))"
1441 x$ac_cv_func_memmove)
1443 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
1445 x$glib_cv_working_bcopy)
1447 /* memmove isn't available, but bcopy can copy overlapping memory regions */
1448 #define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
1452 /* memmove isn't found and bcopy can't copy overlapping memory regions,
1453 * so we have to roll our own copy routine. */
1454 void g_memmove (void* dest, const void * src, unsigned long len);"
1459 #define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
1460 #define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
1461 #define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
1465 x$glib_cv_va_copy) glib_vacopy='#define G_VA_COPY va_copy' ;;
1466 x$glib_cv___va_copy) glib_vacopy='#define G_VA_COPY __va_copy' ;;
1470 if test x$glib_cv_va_val_copy = xno; then
1471 glib_vacopy="\$glib_vacopy
1472 #define G_VA_COPY_AS_ARRAY 1"
1475 if test x$glib_cv_hasinline = xyes; then
1476 glib_inline='#define G_HAVE_INLINE 1'
1478 if test x$glib_cv_has__inline = xyes; then
1479 glib_inline="\$glib_inline
1480 #define G_HAVE___INLINE 1"
1482 if test x$glib_cv_has__inline__ = xyes; then
1483 glib_inline="\$glib_inline
1484 #define G_HAVE___INLINE__ 1"
1488 x$ac_cv_c_bigendian)
1489 g_byte_order=G_BIG_ENDIAN
1494 g_byte_order=G_LITTLE_ENDIAN
1500 case x$enable_threads in
1501 xyes) g_enable_threads_def="#define";;
1502 *) g_enable_threads_def="#undef ";;
1505 g_threads_impl_def=$g_threads_impl
1507 g_mutex_has_default="$mutex_has_default"
1508 g_mutex_sizeof="$glib_cv_sizeof_gmutex"
1509 g_system_thread_sizeof="$glib_cv_sizeof_system_thread"
1510 g_mutex_contents="$glib_cv_byte_contents_gmutex"
1514 glib_os="#define G_OS_BEOS"
1517 glib_os="#define G_OS_UNIX
1518 #define G_WITH_CYGWIN"
1521 glib_os="#define G_OS_UNIX"
1530 gmodule/gmoduleconf.h
1537 ],[case "$CONFIG_FILES" in
1538 *glib-config*)chmod +x glib-config;;
1541 echo " *** IMPORTANT *** "
1543 echo "This is a development version of GLib. You should be using a stable"
1544 echo "version, which is available at ftp://ftp.gtk.org/pub/gtk/v1.2/. The"
1545 echo "version you just configured is meant for developers of GLib only:"
1547 echo " * You should not base stable software on this version of GLib."
1548 echo " * GNOME developers should use a stable version of GLib."
1550 echo "Distributions should *NOT* ship a development package of this GLib."
1551 echo "Do not ship the headers and do not ship the glib-config script. These"
1552 echo "things will conflict with the stable 1.2 series. Package only enough"
1553 echo "to satisfy the requirements of some other package. Package only the"
1554 echo "library itself. Doing otherwise will do no favors to the community."
1556 echo "If you install this version of GLib, we strongly recommend that you"
1557 echo "install it in a different prefix than GLib 1.2. Use --prefix as an"
1558 echo "argument to configure to do this. Otherwise, you will not be able to"
1559 echo "do development with GLib 1.2 any longer."
1561 echo " *** You should be using GLib 1.2 instead. ***"