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 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(ansi, [ --enable-ansi turn on strict ansi [default=no]],
110 AC_ARG_ENABLE(threads, [ --enable-threads turn on basic thread support [default=yes]
111 ([=no] will override --with-threads)],,enable_threads=yes)
113 if test "x$enable_threads" != "xyes"; then
117 AC_MSG_CHECKING(whether to enable memory checking)
118 if test "x$enable_mem_check" = "xyes"; then
119 AC_DEFINE(ENABLE_MEM_CHECK, 1)
120 AC_SUBST(ENABLE_MEM_CHECK)
126 AC_MSG_CHECKING(whether to enable memory profiling)
127 if test "x$enable_mem_profile" = "xyes"; then
128 AC_DEFINE(ENABLE_MEM_PROFILE, 1)
129 AC_SUBST(ENABLE_MEM_PROFILE)
135 if test "x$enable_debug" = "xyes"; then
136 test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
137 GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
139 if test "x$enable_debug" = "xno"; then
140 GLIB_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
144 AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}")
146 if test "x$enable_msg_prefix" = "xyes"; then
147 AC_DEFINE_UNQUOTED(G_ENABLE_MSG_PREFIX, 1)
150 # Checks for programs.
156 if test "x$GCC" = "xyes"; then
158 *[\ \ ]-Wall[\ \ ]*) ;;
159 *) CFLAGS="$CFLAGS -Wall" ;;
162 if test "x$enable_ansi" = "xyes"; then
164 *[\ \ ]-ansi[\ \ ]*) ;;
165 *) CFLAGS="$CFLAGS -ansi" ;;
169 *[\ \ ]-pedantic[\ \ ]*) ;;
170 *) CFLAGS="$CFLAGS -pedantic" ;;
176 dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
177 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
180 AC_TRY_RUN([#include <math.h>
181 int main (void) { return (log(1) != log(1.)); }],
182 AC_MSG_RESULT(none needed),
183 glib_save_CFLAGS=$CFLAGS
184 CFLAGS="$CFLAGS -std1"
185 AC_TRY_RUN([#include <math.h>
186 int main (void) { return (log(1) != log(1.)); }],
187 AC_MSG_RESULT(-std1),
189 CFLAGS=$glib_save_CFLAGS
191 [No ANSI prototypes found in library. (-std1 didn't work.)])
196 dnl NeXTStep cc seems to need this
197 AC_MSG_CHECKING([for extra flags for POSIX compliance])
198 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
199 AC_MSG_RESULT(none needed),
200 glib_save_CFLAGS=$CFLAGS
201 CFLAGS="$CFLAGS -posix"
202 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
203 AC_MSG_RESULT(-posix),
205 CFLAGS=$glib_save_CFLAGS
206 AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
208 # Checks for header files.
211 # Checks for library functions.
214 AC_CHECK_FUNCS(atexit on_exit)
216 AC_CHECK_SIZEOF(char)
217 AC_CHECK_SIZEOF(short)
218 AC_CHECK_SIZEOF(long)
220 AC_CHECK_SIZEOF(void *)
221 AC_CHECK_SIZEOF(long long)
223 if test x$ac_cv_sizeof_long_long = x8; then
224 # long long is a 64 bit integer.
225 AC_MSG_CHECKING(for format to printf and scanf a gint64)
226 AC_CACHE_VAL(glib_cv_long_long_format,[
227 AC_TRY_RUN([#include <stdio.h>
230 long long b, a = -0x3AFAFAFAFAFAFAFALL;
232 sprintf (buffer, "%llu", a);
233 sscanf (buffer, "%llu", &b);
237 glib_cv_long_long_format=ll,
238 glib_cv_long_long_format=q)])
239 AC_MSG_RESULT(%${glib_cv_long_long_format}i)
242 dnl long doubles were not used, and a portability problem
246 dnl AC_C_INLINE is useless to us since it bails out too early, we need to
247 dnl truely know which ones of `inline', `__inline' and `__inline__' are
248 dnl actually supported.
249 AC_MSG_CHECKING(for __inline)
250 AC_CACHE_VAL(glib_cv_has__inline,[
252 __inline int foo () { return 0; }
253 int main () { return foo (); }
255 glib_cv_has__inline=yes
257 glib_cv_has__inline=no
260 AC_MSG_RESULT($glib_cv_has__inline)
261 case x$glib_cv_has__inline in
262 xyes) AC_DEFINE(G_HAVE___INLINE)
264 AC_MSG_CHECKING(for __inline__)
265 AC_CACHE_VAL(glib_cv_has__inline__,[
267 __inline__ int foo () { return 0; }
268 int main () { return foo (); }
270 glib_cv_has__inline__=yes
272 glib_cv_has__inline__=no
275 AC_MSG_RESULT($glib_cv_has__inline__)
276 case x$glib_cv_has__inline__ in
277 xyes) AC_DEFINE(G_HAVE___INLINE__)
279 AC_MSG_CHECKING(for inline)
280 AC_CACHE_VAL(glib_cv_hasinline,[
282 inline int foo () { return 0; }
283 int main () { return foo (); }
285 glib_cv_hasinline=yes
290 AC_MSG_RESULT($glib_cv_hasinline)
291 case x$glib_cv_hasinline in
292 xyes) AC_DEFINE(G_HAVE_INLINE)
295 # check for bytesex stuff
298 # xhexk for header files
299 AC_CHECK_HEADERS(float.h, AC_DEFINE(HAVE_FLOAT_H))
300 AC_CHECK_HEADERS(limits.h, AC_DEFINE(HAVE_LIMITS_H))
301 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
302 AC_CHECK_HEADERS(sys/param.h, AC_DEFINE(HAVE_SYS_PARAM_H))
303 AC_CHECK_HEADERS(sys/poll.h, AC_DEFINE(HAVE_SYS_POLL_H))
304 AC_CHECK_HEADERS(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H))
305 AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
306 AC_CHECK_HEADERS(sys/times.h, AC_DEFINE(HAVE_SYS_TIMES_H))
307 AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
308 AC_CHECK_HEADERS(values.h, AC_DEFINE(HAVE_VALUES_H))
309 AC_CHECK_HEADERS(stdint.h, AC_DEFINE(HAVE_VALUES_H))
311 # check additional type sizes
319 if test "x$ac_cv_header_stdint_h" = "xyes"; then
320 size_includes=["$size_includes
324 if test "x$ac_cv_header_unistd_h" = "xyes"; then
325 size_includes=["$size_includes
329 GLIB_SIZEOF([$size_includes], size_t, size_t)
330 GLIB_SIZEOF([$size_includes], ptrdiff_t, ptrdiff_t)
331 GLIB_SIZEOF([$size_includes], intmax_t, intmax_t)
333 # Check for some functions
334 AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll)
336 # Check if bcopy can be used for overlapping copies, if memmove isn't found.
337 # The check is borrowed from the PERL Configure script.
338 if test "$ac_cv_func_memmove" != "yes"; then
339 AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
340 glib_cv_working_bcopy,[AC_TRY_RUN([
342 char buf[128], abc[128], *b;
344 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
345 for (align = 7; align >= 0; align--) {
346 for (len = 36; len; len--) {
347 b = buf+align; bcopy(abc, b, len);
348 for (off = 1; off <= len; off++) {
349 bcopy(b, b+off, len); bcopy(b+off, b, len);
350 if (bcmp(b, abc, len)) return(1);
355 }],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
356 if test "$glib_cv_working_bcopy" == "yes"; then
357 AC_DEFINE(HAVE_WORKING_BCOPY)
361 # Check for sys_errlist
362 AC_MSG_CHECKING(for sys_errlist)
364 extern char *sys_errlist[];
366 sys_errlist[sys_nerr-1][0] = 0;
367 ], glib_ok=yes, glib_ok=no)
368 AC_MSG_RESULT($glib_ok)
369 if test $glib_ok = no; then
370 AC_DEFINE(NO_SYS_ERRLIST)
373 # Check for sys_siglist
374 AC_MSG_CHECKING(for sys_siglist)
376 extern char *sys_siglist[];
377 strlen (sys_siglist[0]);
378 ], glib_ok=yes, glib_ok=no)
379 AC_MSG_RESULT($glib_ok)
380 if test $glib_ok = no; then
381 AC_DEFINE(NO_SYS_SIGLIST)
384 # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
385 AC_MSG_CHECKING(for sys_siglist declaration)
386 AC_TRY_COMPILE([#include <signal.h>], [
387 strlen (sys_siglist[0]);
388 ], glib_ok=yes, glib_ok=no)
389 AC_MSG_RESULT($glib_ok)
390 if test $glib_ok = no; then
391 AC_DEFINE(NO_SYS_SIGLIST_DECL)
394 # Check if <sys/select.h> needs to be included for fd_set
395 AC_MSG_CHECKING([for fd_set])
396 AC_TRY_COMPILE([#include <sys/types.h>],
397 [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
398 if test $gtk_ok = yes; then
399 AC_MSG_RESULT([yes, found in sys/types.h])
401 AC_HEADER_EGREP(fd_set, sys/select.h, gtk_ok=yes)
402 if test $gtk_ok = yes; then
403 AC_DEFINE(HAVE_SYS_SELECT_H)
404 AC_MSG_RESULT([yes, found in sys/select.h])
411 dnl *** check for sane realloc() ***
412 AC_MSG_CHECKING(whether realloc (NULL,) will work)
413 AC_CACHE_VAL(glib_cv_sane_realloc,[
417 return realloc (0, sizeof (int)) == 0;
419 glib_cv_sane_realloc=yes
420 AC_DEFINE(REALLOC_0_WORKS)
422 glib_cv_sane_realloc=no
425 AC_MSG_RESULT($glib_cv_sane_realloc)
428 dnl **********************
429 dnl *** va_copy checks ***
430 dnl **********************
431 dnl we currently check for all three va_copy possibilities, so we get
432 dnl all results in config.log for bug reports.
433 AC_MSG_CHECKING(for an implementation of va_copy())
434 AC_CACHE_VAL(glib_cv_va_copy,[
437 void f (int i, ...) {
438 va_list args1, args2;
440 va_copy (args2, args1);
441 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
443 va_end (args1); va_end (args2);
454 AC_MSG_RESULT($glib_cv_va_copy)
455 AC_MSG_CHECKING(for an implementation of __va_copy())
456 AC_CACHE_VAL(glib_cv___va_copy,[
459 void f (int i, ...) {
460 va_list args1, args2;
462 __va_copy (args2, args1);
463 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
465 va_end (args1); va_end (args2);
471 glib_cv___va_copy=yes
476 AC_MSG_RESULT($glib_cv___va_copy)
477 AC_MSG_CHECKING(whether va_lists can be copied by value)
478 AC_CACHE_VAL(glib_cv_va_val_copy,[
481 void f (int i, ...) {
482 va_list args1, args2;
485 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
487 va_end (args1); va_end (args2);
493 glib_cv_va_val_copy=yes
495 glib_cv_va_val_copy=no
498 if test "x$glib_cv_va_copy" = "xyes"; then
499 AC_DEFINE(G_VA_COPY, va_copy)
500 else if test "x$glib_cv___va_copy" = "xyes"; then
501 AC_DEFINE(G_VA_COPY, __va_copy)
504 if test "x$glib_cv_va_val_copy" = "xno"; then
505 AC_DEFINE(G_VA_COPY_AS_ARRAY)
507 AC_MSG_RESULT($glib_cv_va_val_copy)
510 dnl ***********************
511 dnl *** g_module checks ***
512 dnl ***********************
515 G_MODULE_PLUGIN_LIBS=
517 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
518 G_MODULE_NEED_USCORE=0
519 G_MODULE_HAVE_DLERROR=0
520 dnl *** dlopen() and dlsym() in system libraries
521 if test -z "$G_MODULE_IMPL"; then
522 AC_CHECK_FUNC(dlopen,
524 G_MODULE_IMPL=G_MODULE_IMPL_DL
528 dnl *** load_image (BeOS)
529 if test -z "$G_MODULE_IMPL" -a "x$glib_native_beos" = "xyes"; then
530 AC_CHECK_LIB(root, load_image,
531 G_MODULE_LIBS="-lbe -lroot -lglib"
532 G_MODULE_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
533 G_MODULE_PLUGIN_LIBS="-L\$(top_builddir_full)/gmodule/.libs -lgmodule"
534 G_MODULE_IMPL=G_MODULE_IMPL_BEOS
537 dnl *** dlopen() and dlsym() in libdl
538 if test -z "$G_MODULE_IMPL"; then
539 AC_CHECK_LIB(dl, dlopen,
540 AC_CHECK_LIB(dl, dlsym,
542 G_MODULE_IMPL=G_MODULE_IMPL_DL
546 dnl *** shl_load() in libdld (HP-UX)
547 if test -z "$G_MODULE_IMPL"; then
548 AC_MSG_CHECKING(how to export all symbols)
549 SAVED_LDFLAGS=$LDFLAGS
550 LDFLAGS="$LDFLAGS -Wl,-E"
551 AC_TRY_LINK(,[ return 0; ],
552 [ G_MODULE_LDFLAGS="-Wl,-E" ],[
553 LDFLAGS="$SAVED_LDFLAGS -bexpall"
554 AC_TRY_LINK(,[ return 0; ],
555 G_MODULE_LDFLAGS="-bexpall",
556 G_MODULE_LDFLAGS="none"
559 LDFLAGS=$SAVED_LDFLAGS
560 AC_MSG_RESULT($G_MODULE_LDFLAGS)
561 if test "x$G_MODULE_LDFLAGS" = "xnone"; then
564 AC_CHECK_LIB(dld, shl_load,
566 G_MODULE_IMPL=G_MODULE_IMPL_DLD
569 dnl *** additional checks for G_MODULE_IMPL_DL
570 if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
573 G_MODULE_LDFLAGS='-rdynamic'
577 LDFLAGS_orig="$LDFLAGS"
578 LIBS="$LIBS $G_MODULE_LIBS"
579 LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
580 dnl *** check whether we need preceeding underscores
581 AC_MSG_CHECKING(for preceeding underscore in symbols)
582 AC_CACHE_VAL(glib_cv_uscore,[
585 int glib_underscore_test (void) { return 42; }
587 void *f1 = (void*)0, *f2 = (void*)0, *handle;
588 handle = dlopen ((void*)0, 0);
590 f1 = dlsym (handle, "glib_underscore_test");
591 f2 = dlsym (handle, "_glib_underscore_test");
592 } return (!f2 || f1);
597 rm -f plugin.c plugin.o plugin.lo
599 AC_MSG_RESULT($glib_cv_uscore)
600 if test "x$glib_cv_uscore" = "xyes"; then
601 G_MODULE_NEED_USCORE=1
603 G_MODULE_NEED_USCORE=0
606 LDFLAGS="$LDFLAGS_orig"
607 dnl *** check for having dlerror()
608 AC_CHECK_FUNC(dlerror,
609 G_MODULE_HAVE_DLERROR=1,
610 G_MODULE_HAVE_DLERROR=0)
613 dnl *** done, have e got an implementation?
614 if test -z "$G_MODULE_IMPL"; then
617 AC_SUBST(G_MODULE_IMPL)
618 AC_SUBST(G_MODULE_LIBS)
619 AC_SUBST(G_MODULE_LIBS_EXTRA)
620 AC_SUBST(G_MODULE_PLUGIN_LIBS)
621 AC_SUBST(G_MODULE_LDFLAGS)
622 AC_SUBST(G_MODULE_HAVE_DLERROR)
623 AC_SUBST(G_MODULE_NEED_USCORE)
624 AC_SUBST(GLIB_DEBUG_FLAGS)
627 dnl ***********************
628 dnl *** g_thread checks ***
629 dnl ***********************
631 AC_ARG_WITH(threads, [ --with-threads=[none/posix/dce/solaris] specify a thread implementation to use],
632 if test "x$with_threads" = x; then
635 want_threads=$with_threads
638 if test "x$enable_threads" = "xno"; then
641 if test "x$want_threads" = "xnone"; then
645 dnl error and warning message
646 dnl *************************
648 THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
649 computer. GLib will not have a default thread implementation."
651 FLAG_DOES_NOT_WORK="I can't find the MACRO to enable thread safety on your
652 platform (normaly it's "_REENTRANT"). I'll not use any flag on
653 compilation now, but then your programs might not work.
654 Please provide information on how it is done on your system."
656 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
659 LIBS_NOT_FOUND_2=". Please choose another thread implementation or
660 provide information on your thread implementation.
661 You can also run 'configure --disable-threads'
662 to compile without thread support."
664 FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
665 functions will not be MT-safe during their first call because
666 there is no working 'getpwuid_r' on your system."
668 FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
669 because there is no 'localtime_r' on your system."
671 POSIX_NO_YIELD="I can not find a yield functions for your platform. A rather
672 crude surrogate will be used. If you happen to know a
673 yield function for your system, please inform the GLib
676 POSIX_NO_PRIORITIES="I can not find the minimal and maximal priorities for
677 threads on your system. Thus threads can only have the default
678 priority. If you happen to know these main/max
679 priorities, please inform the GLib developers."
682 dnl determination of thread implementation
683 dnl ***************************************
686 if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
689 AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
693 if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
694 || test "x$want_threads" = xdce; then
695 # -D_POSIX4A_DRAFT10_SOURCE is for DG/UX
696 # -U_OSF_SOURCE is for Digital UNIX 4.0d
697 GTHREAD_COMPILE_IMPL_DEFINES="-D_POSIX4A_DRAFT10_SOURCE -U_OSF_SOURCE"
698 glib_save_CPPFLAGS="$CPPFLAGS"
699 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
700 if test "x$have_threads" = xnone; then
701 AC_EGREP_HEADER([(^|[^a-zA-Z_])pthread_attr_init[^a-zA-Z_]],
705 if test "x$have_threads" = xnone; then
706 AC_EGREP_HEADER([(^|[^a-zA-Z_])pthread_attr_create[^a-zA-Z_]],
710 CPPFLAGS="$glib_save_CPPFLAGS"
713 AC_MSG_CHECKING(for thread implementation)
715 if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
716 AC_MSG_RESULT(none available)
717 AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
719 AC_MSG_RESULT($have_threads)
723 dnl determination of G_THREAD_LIBS
724 dnl ******************************
731 case $have_threads in
734 glib_save_LIBS="$LIBS"
735 for thread_lib in "" pthread pthreads c_r thread dce; do
736 # This is not AC_CHECK_LIB to also work with function
737 # name mangling in header files.
738 if test x"$thread_lib" = x; then
742 add_thread_lib="-l$thread_lib"
743 IN=" in -l$thread_lib"
745 if test x"$have_threads" = xposix; then
748 defattr=pthread_attr_default
751 LIBS="$glib_save_LIBS $add_thread_lib"
753 AC_MSG_CHECKING(for pthread_join$IN)
754 AC_TRY_RUN([#include <pthread.h>
755 void* func(void* data) {}
758 exit(pthread_create (&t, $defattr, func,
762 G_THREAD_LIBS="$add_thread_lib"
766 LIBS="$glib_save_LIBS"
767 mutex_has_default=yes
768 mutex_default_type='pthread_mutex_t'
769 mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
770 mutex_header_file='pthread.h'
771 if test "x$have_threads" = "xposix"; then
772 g_threads_impl="POSIX"
777 AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
781 AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
782 mutex_has_default=yes
783 mutex_default_type='mutex_t'
784 mutex_default_init="DEFAULTMUTEX"
785 mutex_header_file='thread.h'
786 g_threads_impl="SOLARIS"
789 g_threads_impl="NONE"
792 g_threads_impl="NONE"
797 if test "x$G_THREAD_LIBS" = xerror; then
798 AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
803 G_THREAD_LIBS="-lbe -lroot -lglib "
804 G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
811 AC_MSG_CHECKING(thread related libraries)
812 AC_MSG_RESULT($G_THREAD_LIBS)
814 dnl determination of G_THREAD_CFLAGS
815 dnl ********************************
817 if test x"$enable_threads" = xyes; then
819 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
823 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
824 if test x"$GCC" = xyes; then
825 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
829 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
831 # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
836 # if we are not finding the ctime_r function, then we probably are
837 # not using the proper multithread flag
838 old_CPPFLAGS=$CPPFLAGS
839 CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
840 # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
841 AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
843 AC_MSG_WARN($FLAG_DOES_NOT_WORK))
844 CPPFLAGS=$old_CPPFLAGS
846 AC_MSG_CHECKING(thread related cflags)
848 AC_MSG_RESULT($G_THREAD_CFLAGS)
853 dnl check for mt safe function variants and some posix functions
854 dnl ************************************************************
856 if test x"$enable_threads" = xyes; then
857 glib_save_LIBS="$LIBS"
858 glib_save_CFLAGS="$CFLAGS"
859 # we are not doing the following for now, as this might require glib
860 # to always be linked with the thread libs on some platforms.
861 # LIBS="$LIBS $G_THREAD_LIBS"
862 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
863 AC_CHECK_FUNCS(localtime_r)
864 if test "$ac_cv_header_pwd_h" = "yes"; then
865 AC_MSG_CHECKING([for getpwuid_r])
866 AC_CACHE_VAL(ac_cv_func_getpwuid_r,
867 [AC_TRY_RUN([#include <errno.h>
868 int main () { char buffer[10000], *pointer;
869 char getpwuid_r (long, void*, void*,
872 getpwuid_r (0, &buffer, &buffer,
873 sizeof (buffer), &pointer);
874 return errno == ENOSYS;}],
875 [ac_cv_func_getpwuid_r=yes],
876 [ac_cv_func_getpwuid_r=no])])
877 if test "$ac_cv_func_getpwuid_r" = yes; then
879 AC_DEFINE(HAVE_GETPWUID_R)
883 if test "$ac_cv_func_getpwuid_r" = "yes"; then
884 AC_MSG_CHECKING(whether getpwuid_r is posix like)
885 # The signature for the POSIX version is:
886 # int getpwuid_r(uid_t, struct passwd *, char *, size_t, struct passwd **)
887 AC_TRY_COMPILE([#include <pwd.h>
888 #include <sys/types.h>
889 #include <stdlib.h>],
890 [getpwuid_r((uid_t)0, NULL, NULL, (size_t)0, NULL);],
891 [AC_DEFINE(HAVE_GETPWUID_R_POSIX)
896 LIBS="$LIBS $G_THREAD_LIBS"
897 if test x"$have_threads" = xposix; then
898 glib_save_CPPFLAGS="$CPPFLAGS"
899 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
900 GLIB_SIZEOF([#include <pthread.h>],
903 # This is not AC_CHECK_FUNC to also work with function
904 # name mangling in header files.
905 AC_MSG_CHECKING(for pthread_attr_setstacksize)
906 AC_TRY_LINK([#include <pthread.h>],
907 [pthread_attr_t t; pthread_attr_setstacksize(&t,0)],
909 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE)],
911 # If sched_get_priority_min(SCHED_OTHER) returns something
912 # negative, we ignore it. This happens on Solaris.
913 AC_MSG_CHECKING(for minimal/maximal thread priority)
914 AC_TRY_RUN([#include <pthread.h>
916 { return sched_get_priority_min(SCHED_OTHER) < 0;}],
917 [posix_priority_min="sched_get_priority_min(SCHED_OTHER)"
918 posix_priority_max="sched_get_priority_max(SCHED_OTHER)"],
919 [posix_priority_min=none])
920 if test x"$posix_priority_min" = xnone; then
921 AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
923 posix_priority_min=PX_PRIO_MIN
924 posix_priority_max=PX_PRIO_MAX])
926 if test x"$posix_priority_min" = xnone; then
927 AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
929 posix_priority_min=PRI_OTHER_MIN
930 posix_priority_max=PRI_OTHER_MAX])
932 if test x"$posix_priority_min" = xnone; then
936 posix_priority_max=127
940 if test x"$posix_priority_min" = xnone; then
941 AC_MSG_RESULT(none found)
942 AC_MSG_WARN($POSIX_NO_PRIORITIES)
943 posix_priority_min=-1
944 posix_priority_max=-1
946 AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
947 AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min)
948 AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max)
950 posix_yield_func=none
951 AC_MSG_CHECKING(for posix yield function)
952 for yield_func in pthread_yield_np pthread_yield sched_yield \
954 AC_TRY_LINK([#include <pthread.h>],
956 [posix_yield_func="$yield_func"
959 if test x"$posix_yield_func" = xnone; then
960 AC_MSG_RESULT(none found)
961 AC_MSG_WARN($POSIX_NO_YIELD)
962 posix_yield_func="g_thread_sleep(1000)"
964 AC_MSG_RESULT($posix_yield_func)
965 posix_yield_func="$posix_yield_func()"
967 AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func)
968 CPPFLAGS="$glib_save_CPPFLAGS"
969 else # solaris threads
970 GLIB_SIZEOF([#include <thread.h>],
975 LIBS="$glib_save_LIBS"
976 CFLAGS="$glib_save_CFLAGS"
978 # now spit out all the warnings.
979 if test "$ac_cv_func_getpwuid_r" != "yes"; then
980 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
982 if test "$ac_cv_func_localtime_r" != "yes"; then
983 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
986 # If no thread implementation exists, we will provide enough
987 # space for a pointer
988 GLIB_SIZEOF(, void*, system_thread)
991 AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c")
992 AC_SUBST(G_THREAD_CFLAGS)
993 AC_SUBST(G_THREAD_LIBS)
994 AC_SUBST(G_THREAD_LIBS_EXTRA)
996 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
998 dnl **********************************************
999 dnl *** GDefaultMutex setup and initialization ***
1000 dnl **********************************************
1002 dnl if mutex_has_default = yes, we also got
1003 dnl mutex_default_type, mutex_default_init and mutex_header_file
1004 GLIB_IF_VAR_EQ(mutex_has_default, yes,
1005 glib_save_CPPFLAGS="$CPPFLAGS"
1006 glib_save_LIBS="$LIBS"
1007 LIBS="$LIBS $G_THREAD_LIBS"
1008 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1009 GLIB_SIZEOF([#include <$mutex_header_file>],
1010 $mutex_default_type,
1013 GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
1014 $mutex_default_type,
1016 $glib_cv_sizeof_gmutex,
1017 $mutex_default_init)
1018 if test x"$glib_cv_byte_contents_gmutex" = xno; then
1019 mutex_has_default=no
1021 CPPFLAGS="$glib_save_CPPFLAGS"
1022 LIBS="$glib_save_LIBS"
1027 dnl ****************************************
1028 dnl *** GLib POLL* compatibility defines ***
1029 dnl ****************************************
1031 [#include <sys/types.h>
1032 #include <sys/poll.h>],
1033 POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
1034 glibconfig-sysdefs.h,
1038 dnl ******************************
1039 dnl *** output the whole stuff ***
1040 dnl ******************************
1042 AC_OUTPUT_COMMANDS([
1044 ## Generate `glibconfig.h' in two cases
1045 ## 1. `config.status' is run either explicitly, or via configure.
1046 ## Esp. not when it is run in `Makefile' to generate makefiles and
1048 ## 2. CONFIG_OTHER is set explicitly
1050 ## Case 1 is difficult. We know that `automake' sets one of
1051 ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
1052 ## only when AM_CONFIG_HEADER is set, however.
1054 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1055 # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1056 CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
1058 case "$CONFIG_OTHER" in
1060 echo creating glibconfig.h
1061 outfile=glibconfig.h-tmp
1062 cat > $outfile <<\_______EOF
1065 * This is a generated file. Please modify `configure.in'
1068 #ifndef GLIBCONFIG_H
1069 #define GLIBCONFIG_H
1073 #endif /* __cplusplus */
1077 if test x$glib_limits_h = xyes; then
1078 echo '#include <limits.h>' >> $outfile
1080 if test x$glib_float_h = xyes; then
1081 echo '#include <float.h>' >> $outfile
1083 if test x$glib_values_h = xyes; then
1084 echo '#include <values.h>' >> $outfile
1086 if test x$g_mutex_header_file != x; then
1087 echo '#include <'"$g_mutex_header_file"'>' >> $outfile
1089 if test x$glib_sys_poll_h = xyes; then
1090 echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
1093 cat >> $outfile <<_______EOF
1095 #define G_MINFLOAT $glib_mf
1096 #define G_MAXFLOAT $glib_Mf
1097 #define G_MINDOUBLE $glib_md
1098 #define G_MAXDOUBLE $glib_Md
1099 #define G_MINSHORT $glib_ms
1100 #define G_MAXSHORT $glib_Ms
1101 #define G_MAXUSHORT $glib_Mus
1102 #define G_MININT $glib_mi
1103 #define G_MAXINT $glib_Mi
1104 #define G_MAXUINT $glib_Mui
1105 #define G_MINLONG $glib_ml
1106 #define G_MAXLONG $glib_Ml
1107 #define G_MAXULONG $glib_Mul
1112 ### this should always be true in a modern C/C++ compiler
1113 cat >>$outfile <<_______EOF
1114 typedef signed char gint8;
1115 typedef unsigned char guint8;
1119 if test -n "$gint16"; then
1120 cat >>$outfile <<_______EOF
1121 typedef signed $gint16 gint16;
1122 typedef unsigned $gint16 guint16;
1123 #define G_GINT16_FORMAT $gint16_format
1124 #define G_GUINT16_FORMAT $guint16_format
1129 if test -n "$gint32"; then
1130 cat >>$outfile <<_______EOF
1131 typedef signed $gint32 gint32;
1132 typedef unsigned $gint32 guint32;
1133 #define G_GINT32_FORMAT $gint32_format
1134 #define G_GUINT32_FORMAT $guint32_format
1139 if test -n "$gint64"; then
1140 cat >>$outfile <<_______EOF
1141 ${glib_warning_guard}#define G_HAVE_GINT64 1
1143 ${glib_extension}typedef signed $gint64 gint64;
1144 ${glib_extension}typedef unsigned $gint64 guint64;
1146 #define G_GINT64_FORMAT $gint64_format
1147 #define G_GUINT64_FORMAT $guint64_format
1148 #define G_GINT64_CONSTANT(val) $gint64_constant
1153 if test -z "$glib_unknown_void_p"; then
1154 cat >>$outfile <<_______EOF
1156 #define GPOINTER_TO_INT(p) ((gint) ${glib_gpi_cast} (p))
1157 #define GPOINTER_TO_UINT(p) ((guint) ${glib_gpui_cast} (p))
1159 #define GINT_TO_POINTER(i) ((gpointer) ${glib_gpi_cast} (i))
1160 #define GUINT_TO_POINTER(u) ((gpointer) ${glib_gpui_cast} (u))
1163 echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
1168 cat >>$outfile <<_______EOF
1177 #define G_HAVE_INLINE 1
1178 #else /* !__cplusplus */
1180 #endif /* !__cplusplus */
1184 if test x$g_mutex_has_default = xyes; then
1185 cat >>$outfile <<_______EOF
1186 $g_enable_threads_def G_THREADS_ENABLED
1187 #define G_THREADS_IMPL_$g_threads_impl_def
1188 typedef struct _GStaticMutex GStaticMutex;
1189 struct _GStaticMutex
1191 struct _GMutex *runtime_mutex;
1193 char pad[$g_mutex_sizeof];
1194 double dummy_double;
1195 void *dummy_pointer;
1199 #define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
1200 #define g_static_mutex_get_mutex(mutex) \
1201 (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
1202 g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
1205 cat >>$outfile <<_______EOF
1206 $g_enable_threads_def G_THREADS_ENABLED
1207 #define G_THREADS_IMPL_$g_threads_impl_def
1208 typedef struct _GMutex* GStaticMutex;
1209 #define G_STATIC_MUTEX_INIT NULL
1210 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
1214 cat >>$outfile <<_______EOF
1215 /* This represents a system thread as used by the implementation. An
1216 * alien implementaion, as loaded by g_thread_init can only count on
1217 * "sizeof (gpointer)" bytes to store their info. We however need more
1218 * for some of our native implementations. */
1219 typedef union _GSystemThread GSystemThread;
1220 union _GSystemThread
1222 char data[$g_system_thread_sizeof];
1223 double dummy_double;
1224 void *dummy_pointer;
1231 if test -n "$gint64"; then
1232 g_bit_sizes="$g_bit_sizes 64"
1234 for bits in $g_bit_sizes; do
1235 cat >>$outfile <<_______EOF
1236 #define GINT${bits}_TO_${g_bs_native}(val) ((gint${bits}) (val))
1237 #define GUINT${bits}_TO_${g_bs_native}(val) ((guint${bits}) (val))
1238 #define GINT${bits}_TO_${g_bs_alien}(val) ((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
1239 #define GUINT${bits}_TO_${g_bs_alien}(val) (GUINT${bits}_SWAP_LE_BE (val))
1243 cat >>$outfile <<_______EOF
1244 #define GLONG_TO_LE(val) ((glong) GINT${glongbits}_TO_LE (val))
1245 #define GULONG_TO_LE(val) ((gulong) GUINT${glongbits}_TO_LE (val))
1246 #define GLONG_TO_BE(val) ((glong) GINT${glongbits}_TO_BE (val))
1247 #define GULONG_TO_BE(val) ((gulong) GUINT${glongbits}_TO_BE (val))
1248 #define GINT_TO_LE(val) ((gint) GINT${gintbits}_TO_LE (val))
1249 #define GUINT_TO_LE(val) ((guint) GUINT${gintbits}_TO_LE (val))
1250 #define GINT_TO_BE(val) ((gint) GINT${gintbits}_TO_BE (val))
1251 #define GUINT_TO_BE(val) ((guint) GUINT${gintbits}_TO_BE (val))
1252 #define G_BYTE_ORDER $g_byte_order
1256 if test -r glibconfig-sysdefs.h; then
1257 cat glibconfig-sysdefs.h >>$outfile
1260 cat >>$outfile <<_______EOF
1264 #endif /* __cplusplus */
1266 #endif /* GLIBCONFIG_H */
1270 if cmp -s $outfile glibconfig.h; then
1271 echo glibconfig.h is unchanged
1274 mv $outfile glibconfig.h
1279 # Note that if two cases are the same, case goes with the first one.
1280 # Note also that this is inside an AC_OUTPUT_COMMAND. We do not depend
1281 # on variable expansion in case labels. Look at the generated config.status
1285 x$ac_cv_header_float_h)
1287 glib_mf=FLT_MIN glib_Mf=FLT_MAX
1288 glib_md=DBL_MIN glib_Md=DBL_MAX
1290 x$ac_cv_header_values_h)
1292 glib_mf=MINFLOAT glib_Mf=MAXFLOAT
1293 glib_md=MINDOUBLE glib_Md=MAXDOUBLE
1298 x$ac_cv_header_limits_h)
1300 glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
1301 glib_mi=INT_MIN glib_Mi=INT_MAX glib_Mui=UINT_MAX
1302 glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
1304 x$ac_cv_header_values_h)
1306 glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
1307 glib_mi=MININT glib_Mi=MAXINT glib_Mui="(((guint)G_MAXINT)*2+1)"
1308 glib_ml=MINLONG glib_Ml=MAXLONG glib_Mul="(((gulong)G_MAXLONG)*2+1)"
1312 if test x$ac_cv_header_sys_poll_h = xyes ; then
1317 $ac_cv_sizeof_short)
1319 gint16_format='"hi"'
1320 guint16_format='"hu"'
1325 guint16_format='"u"'
1329 $ac_cv_sizeof_short)
1331 gint32_format='"hi"'
1332 guint32_format='"hu"'
1337 guint32_format='"u"'
1341 gint32_format='"li"'
1342 guint32_format='"lu"'
1349 guint64_format='"u"'
1352 gint64_constant='(val)'
1356 gint64_format='"li"'
1357 guint64_format='"lu"'
1360 gint64_constant='(val##L)'
1362 $ac_cv_sizeof_long_long)
1364 gint64_format='"'$glib_cv_long_long_format'i"'
1365 guint64_format='"'$glib_cv_long_long_format'u"'
1366 glib_extension='G_GNUC_EXTENSION '
1367 glib_warning_guard="
1368 #if defined (__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8))
1369 # define G_GNUC_EXTENSION __extension__
1371 # define G_GNUC_EXTENSION
1375 gint64_constant='(G_GNUC_EXTENSION (val##LL))'
1379 gintbits=`expr $ac_cv_sizeof_int \* 8`
1380 glongbits=`expr $ac_cv_sizeof_long \* 8`
1383 case $ac_cv_sizeof_void_p in
1384 $ac_cv_sizeof_int) glib_gpi_cast='' glib_gpui_cast='' ;;
1385 $ac_cv_sizeof_long) glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
1386 *) glib_unknown_void_p=yes ;;
1391 x$ac_cv_func_atexit)
1393 #ifdef NeXT /* @#%@! NeXTStep */
1394 # define g_ATEXIT(proc) (!atexit (proc))
1396 # define g_ATEXIT(proc) (atexit (proc))
1399 x$ac_cv_func_on_exit)
1401 #define g_ATEXIT(proc) (on_exit ((void (*)(int, void*))(proc), NULL))"
1406 x$ac_cv_func_memmove)
1408 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
1410 x$glib_cv_working_bcopy)
1412 /* memmove isn't available, but bcopy can copy overlapping memory regions */
1413 #define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
1417 /* memmove isn't found and bcopy can't copy overlapping memory regions,
1418 * so we have to roll our own copy routine. */
1419 void g_memmove (void* dest, const void * src, unsigned long len);"
1424 #define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
1425 #define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
1426 #define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
1430 x$glib_cv_va_copy) glib_vacopy='#define G_VA_COPY va_copy' ;;
1431 x$glib_cv___va_copy) glib_vacopy='#define G_VA_COPY __va_copy' ;;
1435 if test x$glib_cv_va_val_copy = xno; then
1436 glib_vacopy="\$glib_vacopy
1437 #define G_VA_COPY_AS_ARRAY 1"
1440 if test x$glib_cv_hasinline = xyes; then
1441 glib_inline='#define G_HAVE_INLINE 1'
1443 if test x$glib_cv_has__inline = xyes; then
1444 glib_inline="\$glib_inline
1445 #define G_HAVE___INLINE 1"
1447 if test x$glib_cv_has__inline__ = xyes; then
1448 glib_inline="\$glib_inline
1449 #define G_HAVE___INLINE__ 1"
1453 x$ac_cv_c_bigendian)
1454 g_byte_order=G_BIG_ENDIAN
1459 g_byte_order=G_LITTLE_ENDIAN
1465 case x$enable_threads in
1466 xyes) g_enable_threads_def="#define";;
1467 *) g_enable_threads_def="#undef ";;
1470 g_threads_impl_def=$g_threads_impl
1472 g_mutex_has_default="$mutex_has_default"
1473 g_mutex_sizeof="$glib_cv_sizeof_gmutex"
1474 g_system_thread_sizeof="$glib_cv_sizeof_system_thread"
1475 g_mutex_contents="$glib_cv_byte_contents_gmutex"
1479 glib_os="#define G_OS_BEOS"
1482 glib_os="#define G_OS_UNIX
1483 #define G_WITH_CYGWIN"
1486 glib_os="#define G_OS_UNIX"
1495 gmodule/gmoduleconf.h
1501 ],[case "$CONFIG_FILES" in
1502 *glib-config*)chmod +x glib-config;;
1505 echo " *** IMPORTANT *** "
1507 echo "This is a development version of GLib. You should be using a stable"
1508 echo "version, which is available at ftp://ftp.gtk.org/pub/gtk/v1.2/. The"
1509 echo "version you just configured is meant for developers of GLib only:"
1511 echo " * You should not base stable software on this version of GLib."
1512 echo " * GNOME developers should use a stable version of GLib."
1514 echo "Distributions should *NOT* ship a development package of this GLib."
1515 echo "Do not ship the headers and do not ship the glib-config script. These"
1516 echo "things will conflict with the stable 1.2 series. Package only enough"
1517 echo "to satisfy the requirements of some other package. Package only the"
1518 echo "library itself. Doing otherwise will do no favors to the community."
1520 echo "If you install this version of GLib, we strongly recommend that you"
1521 echo "install it in a different prefix than GLib 1.2. Use --prefix as an"
1522 echo "argument to configure to do this. Otherwise, you will not be able to"
1523 echo "do development with GLib 1.2 any longer."
1525 echo " *** You should be using GLib 1.2 instead. ***"