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 dnl for bytesex stuff
298 dnl header file checks
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))
310 # Check for some functions
311 AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf strcasecmp strncasecmp poll)
313 # Check if bcopy can be used for overlapping copies, if memmove isn't found.
314 # The check is borrowed from the PERL Configure script.
315 if test "$ac_cv_func_memmove" != "yes"; then
316 AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
317 glib_cv_working_bcopy,[AC_TRY_RUN([
319 char buf[128], abc[128], *b;
321 bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
322 for (align = 7; align >= 0; align--) {
323 for (len = 36; len; len--) {
324 b = buf+align; bcopy(abc, b, len);
325 for (off = 1; off <= len; off++) {
326 bcopy(b, b+off, len); bcopy(b+off, b, len);
327 if (bcmp(b, abc, len)) return(1);
332 }],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
333 if test "$glib_cv_working_bcopy" == "yes"; then
334 AC_DEFINE(HAVE_WORKING_BCOPY)
338 # Check for sys_errlist
339 AC_MSG_CHECKING(for sys_errlist)
341 extern char *sys_errlist[];
343 sys_errlist[sys_nerr-1][0] = 0;
344 ], glib_ok=yes, glib_ok=no)
345 AC_MSG_RESULT($glib_ok)
346 if test $glib_ok = no; then
347 AC_DEFINE(NO_SYS_ERRLIST)
350 # Check for sys_siglist
351 AC_MSG_CHECKING(for sys_siglist)
353 extern char *sys_siglist[];
354 strlen (sys_siglist[0]);
355 ], glib_ok=yes, glib_ok=no)
356 AC_MSG_RESULT($glib_ok)
357 if test $glib_ok = no; then
358 AC_DEFINE(NO_SYS_SIGLIST)
361 # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
362 AC_MSG_CHECKING(for sys_siglist declaration)
363 AC_TRY_COMPILE([#include <signal.h>], [
364 strlen (sys_siglist[0]);
365 ], glib_ok=yes, glib_ok=no)
366 AC_MSG_RESULT($glib_ok)
367 if test $glib_ok = no; then
368 AC_DEFINE(NO_SYS_SIGLIST_DECL)
371 # Check if <sys/select.h> needs to be included for fd_set
372 AC_MSG_CHECKING([for fd_set])
373 AC_TRY_COMPILE([#include <sys/types.h>],
374 [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
375 if test $gtk_ok = yes; then
376 AC_MSG_RESULT([yes, found in sys/types.h])
378 AC_HEADER_EGREP(fd_set, sys/select.h, gtk_ok=yes)
379 if test $gtk_ok = yes; then
380 AC_DEFINE(HAVE_SYS_SELECT_H)
381 AC_MSG_RESULT([yes, found in sys/select.h])
388 dnl *** check for sane realloc() ***
389 AC_MSG_CHECKING(whether realloc (NULL,) will work)
390 AC_CACHE_VAL(glib_cv_sane_realloc,[
394 return realloc (0, sizeof (int)) == 0;
396 glib_cv_sane_realloc=yes
397 AC_DEFINE(REALLOC_0_WORKS)
399 glib_cv_sane_realloc=no
402 AC_MSG_RESULT($glib_cv_sane_realloc)
405 dnl **********************
406 dnl *** va_copy checks ***
407 dnl **********************
408 dnl we currently check for all three va_copy possibilities, so we get
409 dnl all results in config.log for bug reports.
410 AC_MSG_CHECKING(for an implementation of va_copy())
411 AC_CACHE_VAL(glib_cv_va_copy,[
414 void f (int i, ...) {
415 va_list args1, args2;
417 va_copy (args2, args1);
418 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
420 va_end (args1); va_end (args2);
431 AC_MSG_RESULT($glib_cv_va_copy)
432 AC_MSG_CHECKING(for an implementation of __va_copy())
433 AC_CACHE_VAL(glib_cv___va_copy,[
436 void f (int i, ...) {
437 va_list args1, args2;
439 __va_copy (args2, args1);
440 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
442 va_end (args1); va_end (args2);
448 glib_cv___va_copy=yes
453 AC_MSG_RESULT($glib_cv___va_copy)
454 AC_MSG_CHECKING(whether va_lists can be copied by value)
455 AC_CACHE_VAL(glib_cv_va_val_copy,[
458 void f (int i, ...) {
459 va_list args1, args2;
462 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
464 va_end (args1); va_end (args2);
470 glib_cv_va_val_copy=yes
472 glib_cv_va_val_copy=no
475 if test "x$glib_cv_va_copy" = "xyes"; then
476 AC_DEFINE(G_VA_COPY, va_copy)
477 else if test "x$glib_cv___va_copy" = "xyes"; then
478 AC_DEFINE(G_VA_COPY, __va_copy)
481 if test "x$glib_cv_va_val_copy" = "xno"; then
482 AC_DEFINE(G_VA_COPY_AS_ARRAY)
484 AC_MSG_RESULT($glib_cv_va_val_copy)
487 dnl ***********************
488 dnl *** g_module checks ***
489 dnl ***********************
492 G_MODULE_PLUGIN_LIBS=
494 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
495 G_MODULE_NEED_USCORE=0
496 G_MODULE_HAVE_DLERROR=0
497 dnl *** dlopen() and dlsym() in system libraries
498 if test -z "$G_MODULE_IMPL"; then
499 AC_CHECK_FUNC(dlopen,
501 G_MODULE_IMPL=G_MODULE_IMPL_DL
505 dnl *** load_image (BeOS)
506 if test -z "$G_MODULE_IMPL" -a "x$glib_native_beos" = "xyes"; then
507 AC_CHECK_LIB(root, load_image,
508 G_MODULE_LIBS="-lbe -lroot -lglib"
509 G_MODULE_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
510 G_MODULE_PLUGIN_LIBS="-L\$(top_builddir_full)/gmodule/.libs -lgmodule"
511 G_MODULE_IMPL=G_MODULE_IMPL_BEOS
514 dnl *** dlopen() and dlsym() in libdl
515 if test -z "$G_MODULE_IMPL"; then
516 AC_CHECK_LIB(dl, dlopen,
517 AC_CHECK_LIB(dl, dlsym,
519 G_MODULE_IMPL=G_MODULE_IMPL_DL
523 dnl *** shl_load() in libdld (HP-UX)
524 if test -z "$G_MODULE_IMPL"; then
525 AC_MSG_CHECKING(how to export all symbols)
526 SAVED_LDFLAGS=$LDFLAGS
527 LDFLAGS="$LDFLAGS -Wl,-E"
528 AC_TRY_LINK(,[ return 0; ],
529 [ G_MODULE_LDFLAGS="-Wl,-E" ],[
530 LDFLAGS="$SAVED_LDFLAGS -bexpall"
531 AC_TRY_LINK(,[ return 0; ],
532 G_MODULE_LDFLAGS="-bexpall",
533 G_MODULE_LDFLAGS="none"
536 LDFLAGS=$SAVED_LDFLAGS
537 AC_MSG_RESULT($G_MODULE_LDFLAGS)
538 if test "x$G_MODULE_LDFLAGS" = "xnone"; then
541 AC_CHECK_LIB(dld, shl_load,
543 G_MODULE_IMPL=G_MODULE_IMPL_DLD
546 dnl *** additional checks for G_MODULE_IMPL_DL
547 if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
550 G_MODULE_LDFLAGS='-rdynamic'
554 LDFLAGS_orig="$LDFLAGS"
555 LIBS="$LIBS $G_MODULE_LIBS"
556 LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
557 dnl *** check whether we need preceeding underscores
558 AC_MSG_CHECKING(for preceeding underscore in symbols)
559 AC_CACHE_VAL(glib_cv_uscore,[
562 int glib_underscore_test (void) { return 42; }
564 void *f1 = (void*)0, *f2 = (void*)0, *handle;
565 handle = dlopen ((void*)0, 0);
567 f1 = dlsym (handle, "glib_underscore_test");
568 f2 = dlsym (handle, "_glib_underscore_test");
569 } return (!f2 || f1);
574 rm -f plugin.c plugin.o plugin.lo
576 AC_MSG_RESULT($glib_cv_uscore)
577 if test "x$glib_cv_uscore" = "xyes"; then
578 G_MODULE_NEED_USCORE=1
580 G_MODULE_NEED_USCORE=0
583 LDFLAGS="$LDFLAGS_orig"
584 dnl *** check for having dlerror()
585 AC_CHECK_FUNC(dlerror,
586 G_MODULE_HAVE_DLERROR=1,
587 G_MODULE_HAVE_DLERROR=0)
590 dnl *** done, have e got an implementation?
591 if test -z "$G_MODULE_IMPL"; then
594 AC_SUBST(G_MODULE_IMPL)
595 AC_SUBST(G_MODULE_LIBS)
596 AC_SUBST(G_MODULE_LIBS_EXTRA)
597 AC_SUBST(G_MODULE_PLUGIN_LIBS)
598 AC_SUBST(G_MODULE_LDFLAGS)
599 AC_SUBST(G_MODULE_HAVE_DLERROR)
600 AC_SUBST(G_MODULE_NEED_USCORE)
601 AC_SUBST(GLIB_DEBUG_FLAGS)
604 dnl ***********************
605 dnl *** g_thread checks ***
606 dnl ***********************
608 AC_ARG_WITH(threads, [ --with-threads=[none/posix/dce/solaris] specify a thread implementation to use],
609 if test "x$with_threads" = x; then
612 want_threads=$with_threads
615 if test "x$enable_threads" = "xno"; then
618 if test "x$want_threads" = "xnone"; then
622 dnl error and warning message
623 dnl *************************
625 THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
626 computer. GLib will not have a default thread implementation."
628 FLAG_DOES_NOT_WORK="I can't find the MACRO, that enables thread safety on your
629 platform (normaly it's "_REENTRANT"). I'll not use any flag on
630 compilation now, but then your programs might not work.
631 Please provide information on how it is done on your system."
633 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
636 LIBS_NOT_FOUND_2=". Please choose another thread implementation or
637 provide information on your thread implementation.
638 You can also run 'configure --disable-threads'
639 to compile without thread support."
641 FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
642 functions will not be MT-safe during their first call because
643 there is no working 'getpwuid_r' on your system."
645 FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
646 because there is no 'localtime_r' on your system."
648 dnl determination of thread implementation
649 dnl ***************************************
652 if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
655 AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
659 if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
660 || test "x$want_threads" = xdce; then
661 # -D_POSIX4A_DRAFT10_SOURCE is for DG/UX
662 # -U_OSF_SOURCE if for Digital UNIX 4.0d
663 GTHREAD_COMPILE_IMPL_DEFINES="-D_POSIX4A_DRAFT10_SOURCE -U_OSF_SOURCE"
664 glib_save_CPPFLAGS="$CPPFLAGS"
665 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
666 if test "x$have_threads" = xnone; then
667 AC_EGREP_HEADER([[^a-zA-Z_]pthread_attr_init[^a-zA-Z_]],
671 if test "x$have_threads" = xnone; then
672 AC_EGREP_HEADER([[^a-zA-Z_]pthread_attr_create[^a-zA-Z_]],
676 CPPFLAGS="$glib_save_CPPFLAGS"
679 AC_MSG_CHECKING(for thread implementation)
681 if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
682 AC_MSG_RESULT(none available)
683 AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
685 AC_MSG_RESULT($have_threads)
689 dnl determination of G_THREAD_LIBS
690 dnl ******************************
697 case $have_threads in
700 glib_save_LIBS="$LIBS"
701 for thread_lib in "" pthread pthreads c_r thread dce; do
702 # This is not AC_CHECK_LIB to also work with function
703 # name mangling in header files.
704 if test x"$thread_lib" = x; then
708 add_thread_lib="-l$thread_lib"
709 IN=" in -l$thread_lib"
712 LIBS="$glib_save_LIBS $add_thread_lib"
714 AC_MSG_CHECKING(for pthread_join$IN)
715 AC_TRY_LINK([#include <pthread.h>],
716 [pthread_join(NULL,NULL)],
718 G_THREAD_LIBS="$add_thread_lib"
722 LIBS="$glib_save_LIBS"
723 mutex_has_default=yes
724 mutex_default_type='pthread_mutex_t'
725 mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
726 mutex_header_file='pthread.h'
727 if test "x$have_threads" = "xposix"; then
728 g_threads_impl="POSIX"
733 AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
737 AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
738 mutex_has_default=yes
739 mutex_default_type='mutex_t'
740 mutex_default_init="DEFAULTMUTEX"
741 mutex_header_file='thread.h'
742 g_threads_impl="SOLARIS"
745 g_threads_impl="NONE"
748 g_threads_impl="NONE"
753 if test "x$G_THREAD_LIBS" = xerror; then
754 AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
759 G_THREAD_LIBS="-lbe -lroot -lglib "
760 G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
767 AC_MSG_CHECKING(thread related libraries)
768 AC_MSG_RESULT($G_THREAD_LIBS)
770 dnl determination of G_THREAD_CFLAGS
771 dnl ********************************
773 if test x"$enable_threads" = xyes; then
775 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
779 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
780 if test x"$GCC" = xyes; then
781 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
785 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
787 # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
792 # if we are not finding the ctime_r function, then we probably are
793 # not using the proper multithread flag
794 old_CPPFLAGS=$CPPFLAGS
795 CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
796 # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
797 AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
799 AC_MSG_WARN($FLAG_DOES_NOT_WORK))
800 CPPFLAGS=$old_CPPFLAGS
802 AC_MSG_CHECKING(thread related cflags)
804 AC_MSG_RESULT($G_THREAD_CFLAGS)
809 dnl check for mt safe function variants and some posix functions
810 dnl ************************************************************
812 if test x"$enable_threads" = xyes; then
813 glib_save_LIBS="$LIBS"
814 glib_save_CFLAGS="$CFLAGS"
815 # we are not doing the following for now, as this might require glib
816 # to always be linked with the thread libs on some platforms.
817 # LIBS="$LIBS $G_THREAD_LIBS"
818 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
819 AC_CHECK_FUNCS(localtime_r)
820 if test "$ac_cv_header_pwd_h" = "yes"; then
821 AC_MSG_CHECKING([for getpwuid_r])
822 AC_CACHE_VAL(ac_cv_func_getpwuid_r,
823 [AC_TRY_RUN([#include <errno.h>
824 int main () { char buffer[10000], *pointer;
825 char getpwuid_r (long, void*, void*,
828 getpwuid_r (0, &buffer, &buffer,
829 sizeof (buffer), &pointer);
830 return errno == ENOSYS;}],
831 [ac_cv_func_getpwuid_r=yes],
832 [ac_cv_func_getpwuid_r=no])])
833 if test "$ac_cv_func_getpwuid_r" = yes; then
835 AC_DEFINE(HAVE_GETPWUID_R)
839 if test "$ac_cv_func_getpwuid_r" = "yes"; then
840 AC_MSG_CHECKING(whether getpwuid_r is posix like)
841 # getpwuid_r(0, NULL, NULL, 0) is the signature on
842 # solaris, if that is not found, the prog below won't
843 # compile, then the posix signature is assumed as
845 AC_TRY_COMPILE([#include <pwd.h>],
846 [getpwuid_r(0, NULL, NULL, 0);],
849 AC_DEFINE(HAVE_GETPWUID_R_POSIX)])
852 LIBS="$LIBS $G_THREAD_LIBS"
853 if test x"$have_threads" = xposix; then
854 GLIB_SIZEOF([#include <pthread.h>],
857 # This is not AC_CHECK_FUNC to also work with function
858 # name mangling in header files.
859 AC_MSG_CHECKING(for pthread_attr_setstacksize)
860 AC_TRY_LINK([#include <pthread.h>],
861 [pthread_attr_setstacksize(NULL,0)],
863 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE)],
865 # If sched_get_priority_min(SCHED_OTHER) returns something
866 # negative, we ignore it. This happens on Solaris.
867 AC_MSG_CHECKING(for minimal/maximal thread priority)
868 AC_TRY_RUN([#include <pthread.h>
870 { return sched_get_priority_min(SCHED_OTHER) < 0;}],
871 [posix_priority_min="sched_get_priority_min(SCHED_OTHER)"
872 posix_priority_max="sched_get_priority_max(SCHED_OTHER)"],
873 [posix_priority_min=none])
874 if test x"$posix_priority_min" = xnone; then
875 AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
877 posix_priority_min=PX_PRIO_MIN
878 posix_priority_max=PX_PRIO_MAX])
880 if test x"$posix_priority_min" = xnone; then
881 AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
883 posix_priority_min=PRI_OTHER_MIN
884 posix_priority_max=PRI_OTHER_MAX])
886 if test x"$posix_priority_min" = xnone; then
890 posix_priority_max=127
894 if test x"$posix_priority_min" = xnone; then
895 AC_MSG_RESULT(none found)
896 AC_MSG_WARN($POSIX_NO_PRIORITIES)
900 AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
902 AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min)
903 AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max)
904 posix_yield_func=none
905 AC_MSG_CHECKING(for posix yield function)
906 for yield_func in pthread_yield_np pthread_yield sched_yield \
908 AC_TRY_LINK([#include <pthread.h>],
910 [posix_yield_func="$yield_func"
913 if test x"$posix_yield_func" = xnone; then
914 AC_MSG_RESULT(none found)
915 AC_MSG_WARN($POSIX_NO_YIELD)
916 posix_yield_func="g_thread_sleep(1000)"
918 AC_MSG_RESULT($posix_yield_func)
919 posix_yield_func="$posix_yield_func()"
921 AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func)
923 LIBS="$glib_save_LIBS"
924 CFLAGS="$glib_save_CFLAGS"
926 # now spit out all the warnings.
927 if test "$ac_cv_func_getpwuid_r" != "yes"; then
928 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
930 if test "$ac_cv_func_localtime_r" != "yes"; then
931 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
935 AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c")
936 AC_SUBST(G_THREAD_CFLAGS)
937 AC_SUBST(G_THREAD_LIBS)
938 AC_SUBST(G_THREAD_LIBS_EXTRA)
940 CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
942 dnl **********************************************
943 dnl *** GDefaultMutex setup and initialization ***
944 dnl **********************************************
946 dnl if mutex_has_default = yes, we also got
947 dnl mutex_default_type, mutex_default_init and mutex_header_file
948 GLIB_IF_VAR_EQ(mutex_has_default, yes,
949 GLIB_SIZEOF([#include <$mutex_header_file>],
953 GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
956 $glib_cv_sizeof_gmutex,
958 if test x"$have_threads" = xposix; then
959 GLIB_BYTE_CONTENTS([#define __USE_GNU
960 #include <$mutex_header_file>],
963 $glib_cv_sizeof_gmutex,
964 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
970 dnl ****************************************
971 dnl *** GLib POLL* compatibility defines ***
972 dnl ****************************************
974 [#include <sys/types.h>
975 #include <sys/poll.h>],
976 POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
977 glibconfig-sysdefs.h,
981 dnl ******************************
982 dnl *** output the whole stuff ***
983 dnl ******************************
987 ## Generate `glibconfig.h' in two cases
988 ## 1. `config.status' is run either explicitly, or via configure.
989 ## Esp. not when it is run in `Makefile' to generate makefiles and
991 ## 2. CONFIG_OTHER is set explicitly
993 ## Case 1 is difficult. We know that `automake' sets one of
994 ## CONFIG_FILES or CONFIG_HEADERS to empty. This heuristic works
995 ## only when AM_CONFIG_HEADER is set, however.
997 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
998 # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
999 CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
1001 case "$CONFIG_OTHER" in
1003 echo creating glibconfig.h
1004 outfile=glibconfig.h-tmp
1005 cat > $outfile <<\_______EOF
1008 * This is a generated file. Please modify `configure.in'
1011 #ifndef GLIBCONFIG_H
1012 #define GLIBCONFIG_H
1016 #endif /* __cplusplus */
1020 if test x$glib_limits_h = xyes; then
1021 echo '#include <limits.h>' >> $outfile
1023 if test x$glib_float_h = xyes; then
1024 echo '#include <float.h>' >> $outfile
1026 if test x$glib_values_h = xyes; then
1027 echo '#include <values.h>' >> $outfile
1029 if test x$g_mutex_header_file != x; then
1030 echo '#include <'"$g_mutex_header_file"'>' >> $outfile
1032 if test x$glib_sys_poll_h = xyes; then
1033 echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
1036 cat >> $outfile <<_______EOF
1038 #define G_MINFLOAT $glib_mf
1039 #define G_MAXFLOAT $glib_Mf
1040 #define G_MINDOUBLE $glib_md
1041 #define G_MAXDOUBLE $glib_Md
1042 #define G_MINSHORT $glib_ms
1043 #define G_MAXSHORT $glib_Ms
1044 #define G_MAXUSHORT $glib_Mus
1045 #define G_MININT $glib_mi
1046 #define G_MAXINT $glib_Mi
1047 #define G_MAXUINT $glib_Mui
1048 #define G_MINLONG $glib_ml
1049 #define G_MAXLONG $glib_Ml
1050 #define G_MAXULONG $glib_Mul
1055 ### this should always be true in a modern C/C++ compiler
1056 cat >>$outfile <<_______EOF
1057 typedef signed char gint8;
1058 typedef unsigned char guint8;
1062 if test -n "$gint16"; then
1063 cat >>$outfile <<_______EOF
1064 typedef signed $gint16 gint16;
1065 typedef unsigned $gint16 guint16;
1066 #define G_GINT16_FORMAT $gint16_format
1067 #define G_GUINT16_FORMAT $guint16_format
1072 if test -n "$gint32"; then
1073 cat >>$outfile <<_______EOF
1074 typedef signed $gint32 gint32;
1075 typedef unsigned $gint32 guint32;
1076 #define G_GINT32_FORMAT $gint32_format
1077 #define G_GUINT32_FORMAT $guint32_format
1082 if test -n "$gint64"; then
1083 cat >>$outfile <<_______EOF
1084 ${glib_warning_guard}#define G_HAVE_GINT64 1
1086 ${glib_extension}typedef signed $gint64 gint64;
1087 ${glib_extension}typedef unsigned $gint64 guint64;
1089 #define G_GINT64_FORMAT $gint64_format
1090 #define G_GUINT64_FORMAT $guint64_format
1091 #define G_GINT64_CONSTANT(val) $gint64_constant
1096 if test -z "$glib_unknown_void_p"; then
1097 cat >>$outfile <<_______EOF
1099 #define GPOINTER_TO_INT(p) ((gint) ${glib_gpi_cast} (p))
1100 #define GPOINTER_TO_UINT(p) ((guint) ${glib_gpui_cast} (p))
1102 #define GINT_TO_POINTER(i) ((gpointer) ${glib_gpi_cast} (i))
1103 #define GUINT_TO_POINTER(u) ((gpointer) ${glib_gpui_cast} (u))
1106 echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
1111 cat >>$outfile <<_______EOF
1120 #define G_HAVE_INLINE 1
1121 #else /* !__cplusplus */
1123 #endif /* !__cplusplus */
1127 if test x$g_mutex_has_default = xyes; then
1128 cat >>$outfile <<_______EOF
1129 $g_enable_threads_def G_THREADS_ENABLED
1130 #define G_THREADS_IMPL_$g_threads_impl_def
1131 typedef struct _GStaticMutex GStaticMutex;
1132 struct _GStaticMutex
1134 struct _GMutex *runtime_mutex;
1136 char pad[$g_mutex_sizeof];
1137 double dummy_double;
1138 void *dummy_pointer;
1142 #define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
1143 #define g_static_mutex_get_mutex(mutex) \
1144 (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
1145 g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
1148 cat >>$outfile <<_______EOF
1149 $g_enable_threads_def G_THREADS_ENABLED
1150 #define G_THREADS_IMPL_$g_threads_impl_def
1151 typedef struct _GMutex* GStaticMutex;
1152 #define G_STATIC_MUTEX_INIT NULL
1153 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
1156 if test x$g_recmutex_contents != xno -a \
1157 x$g_recmutex_contents != x; then
1158 # the definition of GStaticRecMutex is not done via
1159 # typedef GStaticMutex GStaticRecMutex to avoid silent
1160 # compilation, when a GStaticRecMutex is used where a
1161 # GStaticMutex should have been used and vice versa,
1162 # because that micht fail on other platforms.
1163 cat >>$outfile <<_______EOF
1164 typedef struct _GStaticRecMutex GStaticRecMutex;
1165 struct _GStaticRecMutex
1167 struct _GMutex *runtime_mutex;
1169 char pad[$g_mutex_sizeof];
1170 double dummy_double;
1171 void *dummy_pointer;
1175 #define G_STATIC_REC_MUTEX_INIT { NULL, { { $g_recmutex_contents} } }
1176 #define g_static_rec_mutex_lock(mutex) g_static_mutex_lock (mutex)
1177 #define g_static_rec_mutex_trylock(mutex) g_static_mutex_trylock (mutex)
1178 #define g_static_rec_mutex_unlock(mutex) g_static_mutex_unlock (mutex)
1179 #define g_static_rec_mutex_get_mutex(mutex) (mutex)
1185 if test -n "$gint64"; then
1186 g_bit_sizes="$g_bit_sizes 64"
1188 for bits in $g_bit_sizes; do
1189 cat >>$outfile <<_______EOF
1190 #define GINT${bits}_TO_${g_bs_native}(val) ((gint${bits}) (val))
1191 #define GUINT${bits}_TO_${g_bs_native}(val) ((guint${bits}) (val))
1192 #define GINT${bits}_TO_${g_bs_alien}(val) ((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
1193 #define GUINT${bits}_TO_${g_bs_alien}(val) (GUINT${bits}_SWAP_LE_BE (val))
1197 cat >>$outfile <<_______EOF
1198 #define GLONG_TO_LE(val) ((glong) GINT${glongbits}_TO_LE (val))
1199 #define GULONG_TO_LE(val) ((gulong) GUINT${glongbits}_TO_LE (val))
1200 #define GLONG_TO_BE(val) ((glong) GINT${glongbits}_TO_BE (val))
1201 #define GULONG_TO_BE(val) ((gulong) GUINT${glongbits}_TO_BE (val))
1202 #define GINT_TO_LE(val) ((gint) GINT${gintbits}_TO_LE (val))
1203 #define GUINT_TO_LE(val) ((guint) GUINT${gintbits}_TO_LE (val))
1204 #define GINT_TO_BE(val) ((gint) GINT${gintbits}_TO_BE (val))
1205 #define GUINT_TO_BE(val) ((guint) GUINT${gintbits}_TO_BE (val))
1206 #define G_BYTE_ORDER $g_byte_order
1210 if test -r glibconfig-sysdefs.h; then
1211 cat glibconfig-sysdefs.h >>$outfile
1214 cat >>$outfile <<_______EOF
1218 #endif /* __cplusplus */
1220 #endif /* GLIBCONFIG_H */
1224 if cmp -s $outfile glibconfig.h; then
1225 echo glibconfig.h is unchanged
1228 mv $outfile glibconfig.h
1233 # Note that if two cases are the same, case goes with the first one.
1234 # Note also that this is inside an AC_OUTPUT_COMMAND. We do not depend
1235 # on variable expansion in case labels. Look at the generated config.status
1239 x$ac_cv_header_float_h)
1241 glib_mf=FLT_MIN glib_Mf=FLT_MAX
1242 glib_md=DBL_MIN glib_Md=DBL_MAX
1244 x$ac_cv_header_values_h)
1246 glib_mf=MINFLOAT glib_Mf=MAXFLOAT
1247 glib_md=MINDOUBLE glib_Md=MAXDOUBLE
1252 x$ac_cv_header_limits_h)
1254 glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
1255 glib_mi=INT_MIN glib_Mi=INT_MAX glib_Mui=UINT_MAX
1256 glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
1258 x$ac_cv_header_values_h)
1260 glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
1261 glib_mi=MININT glib_Mi=MAXINT glib_Mui="(((guint)G_MAXINT)*2+1)"
1262 glib_ml=MINLONG glib_Ml=MAXLONG glib_Mul="(((gulong)G_MAXLONG)*2+1)"
1266 if test x$ac_cv_header_sys_poll_h = xyes ; then
1271 $ac_cv_sizeof_short)
1273 gint16_format='"hi"'
1274 guint16_format='"hu"'
1279 guint16_format='"u"'
1283 $ac_cv_sizeof_short)
1285 gint32_format='"hi"'
1286 guint32_format='"hu"'
1291 guint32_format='"u"'
1295 gint32_format='"li"'
1296 guint32_format='"lu"'
1303 guint64_format='"u"'
1306 gint64_constant='(val)'
1310 gint64_format='"li"'
1311 guint64_format='"lu"'
1314 gint64_constant='(val##L)'
1316 $ac_cv_sizeof_long_long)
1318 gint64_format='"'$glib_cv_long_long_format'i"'
1319 guint64_format='"'$glib_cv_long_long_format'u"'
1320 glib_extension='G_GNUC_EXTENSION '
1321 glib_warning_guard="
1322 #if defined (__GNUC__) && __GNUC__ >= 2 && __GNUC_MINOR__ >= 8
1323 # define G_GNUC_EXTENSION __extension__
1325 # define G_GNUC_EXTENSION
1329 gint64_constant='(G_GNUC_EXTENSION (val##LL))'
1333 gintbits=`expr $ac_cv_sizeof_int \* 8`
1334 glongbits=`expr $ac_cv_sizeof_long \* 8`
1337 case $ac_cv_sizeof_void_p in
1338 $ac_cv_sizeof_int) glib_gpi_cast='' glib_gpui_cast='' ;;
1339 $ac_cv_sizeof_long) glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
1340 *) glib_unknown_void_p=yes ;;
1345 x$ac_cv_func_atexit)
1347 #ifdef NeXT /* @#%@! NeXTStep */
1348 # define g_ATEXIT(proc) (!atexit (proc))
1350 # define g_ATEXIT(proc) (atexit (proc))
1353 x$ac_cv_func_on_exit)
1355 #define g_ATEXIT(proc) (on_exit ((void (*)(int, void*))(proc), NULL))"
1360 x$ac_cv_func_memmove)
1362 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
1364 x$glib_cv_working_bcopy)
1366 /* memmove isn't available, but bcopy can copy overlapping memory regions */
1367 #define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
1371 /* memmove isn't found and bcopy can't copy overlapping memory regions,
1372 * so we have to roll our own copy routine. */
1373 void g_memmove (void* dest, const void * src, unsigned long len);"
1378 #define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
1379 #define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
1380 #define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
1384 x$glib_cv_va_copy) glib_vacopy='#define G_VA_COPY va_copy' ;;
1385 x$glib_cv___va_copy) glib_vacopy='#define G_VA_COPY __va_copy' ;;
1389 if test x$glib_cv_va_val_copy = xno; then
1390 glib_vacopy="\$glib_vacopy
1391 #define G_VA_COPY_AS_ARRAY 1"
1394 if test x$glib_cv_hasinline = xyes; then
1395 glib_inline='#define G_HAVE_INLINE 1'
1397 if test x$glib_cv_has__inline = xyes; then
1398 glib_inline="\$glib_inline
1399 #define G_HAVE___INLINE 1"
1401 if test x$glib_cv_has__inline__ = xyes; then
1402 glib_inline="\$glib_inline
1403 #define G_HAVE___INLINE__ 1"
1407 x$ac_cv_c_bigendian)
1408 g_byte_order=G_BIG_ENDIAN
1413 g_byte_order=G_LITTLE_ENDIAN
1419 case x$enable_threads in
1420 xyes) g_enable_threads_def="#define";;
1421 *) g_enable_threads_def="#undef ";;
1424 g_threads_impl_def=$g_threads_impl
1426 g_mutex_has_default="$mutex_has_default"
1427 g_mutex_sizeof="$glib_cv_sizeof_gmutex"
1428 g_mutex_contents="$glib_cv_byte_contents_gmutex"
1429 g_recmutex_contents="$glib_cv_byte_contents_grecmutex"
1433 glib_os="#define G_OS_BEOS"
1436 glib_os="#define G_OS_UNIX
1437 #define G_WITH_CYGWIN"
1440 glib_os="#define G_OS_UNIX"
1449 gmodule/gmoduleconf.h
1454 ],[case "$CONFIG_FILES" in
1455 *glib-config*)chmod +x glib-config;;
1458 echo " *** IMPORTANT *** "
1460 echo "This is a development version of GLib. You should be using a stable"
1461 echo "version, which is available at ftp://ftp.gtk.org/pub/gtk/v1.2/. The"
1462 echo "version you just configured is meant for developers of GLib only:"
1464 echo " * You should not base stable software on this version of GLib."
1465 echo " * GNOME developers should use a stable version of GLib."
1467 echo "Distributions should *NOT* ship a development package of this GLib."
1468 echo "Do not ship the headers and do not ship the glib-config script. These"
1469 echo "things will conflict with the stable 1.2 series. Package only enough"
1470 echo "to satisfy the requirements of some other package. Package only the"
1471 echo "library itself. Doing otherwise will do no favors to the community."
1473 echo "If you install this version of GLib, we strongly recommend that you"
1474 echo "install it in a different prefix than GLib 1.2. Use --prefix as an"
1475 echo "argument to configure to do this. Otherwise, you will not be able to"
1476 echo "do development with GLib 1.2 any longer."
1478 echo " *** You should be using GLib 1.2 instead. ***"