fixed dealing with collection/lcopy of NULL values.
[platform/upstream/glib.git] / configure.in
1 dnl ***********************************
2 dnl *** include special GLib macros ***
3 dnl ***********************************
4 builtin(include, acglib.m4)dnl
5
6 # require autoconf 2.13
7 AC_PREREQ(2.13)
8
9 # Process this file with autoconf to produce a configure script.
10 AC_INIT(glist.c)
11
12 # Save this value here, since automake will set cflags later
13 cflags_set=${CFLAGS+set}
14
15 # we rewrite this file
16 rm -f glibconfig-sysdefs.h
17
18 GLIB_AC_DIVERT_BEFORE_HELP([
19 #
20 # The following version number definitions apply to GLib, GModule, GObject 
21 # and GThread as a whole, so if changes occoured in any of them, they are all
22 # treated with the same interface and binary age.
23 #
24 # Making releases:
25 #   GLIB_MICRO_VERSION += 1;
26 #   GLIB_INTERFACE_AGE += 1;
27 #   GLIB_BINARY_AGE += 1;
28 # if any functions have been added, set GLIB_INTERFACE_AGE to 0.
29 # if backwards compatibility has been broken,
30 # set GLIB_BINARY_AGE _and_ GLIB_INTERFACE_AGE to 0.
31 #
32 GLIB_MAJOR_VERSION=1
33 GLIB_MINOR_VERSION=3
34 GLIB_MICRO_VERSION=2
35 GLIB_INTERFACE_AGE=0
36 GLIB_BINARY_AGE=0
37 GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
38 ])dnl
39
40 AC_SUBST(GLIB_MAJOR_VERSION)
41 AC_SUBST(GLIB_MINOR_VERSION)
42 AC_SUBST(GLIB_MICRO_VERSION)
43 AC_SUBST(GLIB_VERSION)
44 AC_SUBST(GLIB_INTERFACE_AGE)
45 AC_SUBST(GLIB_BINARY_AGE)
46
47 # libtool versioning
48 LT_RELEASE=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION
49 LT_CURRENT=`expr $GLIB_MICRO_VERSION - $GLIB_INTERFACE_AGE`
50 LT_REVISION=$GLIB_INTERFACE_AGE
51 LT_AGE=`expr $GLIB_BINARY_AGE - $GLIB_INTERFACE_AGE`
52 AC_SUBST(LT_RELEASE)
53 AC_SUBST(LT_CURRENT)
54 AC_SUBST(LT_REVISION)
55 AC_SUBST(LT_AGE)
56
57 VERSION=$GLIB_VERSION
58 PACKAGE=glib
59
60 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
61
62 # Specify a configuration file
63 AM_CONFIG_HEADER(config.h)
64
65 AC_DEFINE_UNQUOTED(GLIB_MAJOR_VERSION, $GLIB_MAJOR_VERSION,
66                    [Define to the GLIB major version])
67 AC_DEFINE_UNQUOTED(GLIB_MINOR_VERSION, $GLIB_MINOR_VERSION,
68                    [Define to the GLIB minor version])
69 AC_DEFINE_UNQUOTED(GLIB_MICRO_VERSION, $GLIB_MICRO_VERSION,
70                    [Define to the GLIB micro version])
71 AC_DEFINE_UNQUOTED(GLIB_INTERFACE_AGE, $GLIB_INTERFACE_AGE,
72                    [Define to the GLIB interface age])
73 AC_DEFINE_UNQUOTED(GLIB_BINARY_AGE, $GLIB_BINARY_AGE,
74                    [Define to the GLIB binary age])
75
76 dnl Initialize maintainer mode
77 AM_MAINTAINER_MODE
78
79 AC_CANONICAL_HOST
80
81 AC_MSG_CHECKING(for the BeOS)
82 case $host in
83   *-*-beos*)
84     glib_native_beos="yes"
85     ;;
86   *)
87     glib_native_beos="no"
88     ;;
89 esac
90 AC_MSG_RESULT([$glib_native_beos])
91
92 dnl
93
94 GLIB_AC_DIVERT_BEFORE_HELP([
95 # figure debugging default, prior to $ac_help setup
96 case $GLIB_MINOR_VERSION in
97 *[[13579]]) debug_default=yes ;;
98 *)          debug_default=minimum ;;
99 esac[]dnl
100 ])
101
102 dnl declare --enable-* args and collect ac_help strings
103 AC_ARG_ENABLE(debug, [  --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
104 AC_ARG_ENABLE(msg-prefix, [  --enable-msg-prefix     turn on program name and PID prefixing of messages and warnings],,enable_msg_prefix=no)
105 AC_ARG_ENABLE(mem_check, [  --enable-mem-check      turn on malloc/free sanity checking [default=no]],,enable_mem_check=no)
106 AC_ARG_ENABLE(mem_profile, [  --enable-mem-profile    turn on malloc profiling atexit [default=no]],,enable_mem_profile=no)
107 AC_ARG_ENABLE(gc_friendly, [  --enable-gc-friendly    turn on garbage collector friendliness [default=no]],,enable_gc_friendly=no)
108 AC_ARG_ENABLE(ansi, [  --enable-ansi           turn on strict ansi [default=no]],
109                     , enable_ansi=no)
110 AC_ARG_ENABLE(threads, [  --enable-threads        turn on basic thread support [default=yes]
111                           ([=no] will override --with-threads)],,enable_threads=yes)
112 AC_ARG_ENABLE(rebuilds, [  --disable-rebuilds      disable all source autogeneration rules],,enable_rebuilds=yes)
113
114 if test "x$enable_threads" != "xyes"; then
115   enable_threads=no
116 fi
117
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, [Whether to enable memory checking])
121   AC_SUBST(ENABLE_MEM_CHECK)
122   AC_MSG_RESULT(yes)
123 else
124   AC_MSG_RESULT(no)
125 fi
126
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, [Whether to enable memory profiling])
130   AC_SUBST(ENABLE_MEM_PROFILE)
131   AC_MSG_RESULT(yes)
132 else
133   AC_MSG_RESULT(no)
134 fi
135
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, [Whether to enable GC friendliness])
139   AC_SUBST(ENABLE_GC_FRIENDLY)
140   AC_MSG_RESULT(yes)
141 else
142   AC_MSG_RESULT(no)
143 fi
144
145 if test "x$enable_debug" = "xyes"; then
146   test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
147   GLIB_DEBUG_FLAGS="-DG_ENABLE_DEBUG"
148 else
149   if test "x$enable_debug" = "xno"; then
150     GLIB_DEBUG_FLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS"
151   fi
152 fi
153
154 AC_DEFINE_UNQUOTED(G_COMPILED_WITH_DEBUGGING, "${enable_debug}",
155         [Whether glib was compiled with debugging enabled])
156
157 if test "x$enable_msg_prefix" = "xyes"; then
158   AC_DEFINE_UNQUOTED(G_ENABLE_MSG_PREFIX, 1, 
159                      [Enable prefixing of error messages with program names])
160 fi
161
162 # Checks for programs.
163 AC_PROG_CC
164 AM_PROG_CC_STDC
165 AC_PROG_INSTALL
166
167 # define a MAINT-like variable REBUILD which is set if Perl
168 # and awk are found, so autogenerated sources can be rebuilt
169 AC_PROG_AWK
170 AC_CHECK_PROGS(PERL, perl5 perl)
171 # We would like indent, but don't require it.
172 AC_CHECK_PROG(INDENT, indent, indent)
173 REBUILD=\#
174 if test "x$enable_rebuilds" = "xyes" && \
175      test -n "$PERL" && \
176      $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
177      test -n "$AWK" ; then
178   REBUILD=
179 fi
180 AC_SUBST(REBUILD)
181
182 dnl Initialize libtool
183 AM_PROG_LIBTOOL
184
185 if test "x$GCC" = "xyes"; then
186   case " $CFLAGS " in
187   *[[\ \        ]]-Wall[[\ \    ]]*) ;;
188   *) CFLAGS="$CFLAGS -Wall" ;;
189   esac
190
191   if test "x$enable_ansi" = "xyes"; then
192     case " $CFLAGS " in
193     *[[\ \      ]]-ansi[[\ \    ]]*) ;;
194     *) CFLAGS="$CFLAGS -ansi" ;;
195     esac
196
197     case " $CFLAGS " in
198     *[[\ \      ]]-pedantic[[\ \        ]]*) ;;
199     *) CFLAGS="$CFLAGS -pedantic" ;;
200     esac
201   fi
202 fi
203
204 dnl DU4 native cc currently needs -std1 for ANSI mode (instead of K&R)
205 AC_MSG_CHECKING([for extra flags to get ANSI library prototypes])
206 glib_save_LIBS=$LIBS
207 LIBS="$LIBS -lm"
208 AC_TRY_RUN([#include <math.h>
209              int main (void) { return (log(1) != log(1.)); }],
210      AC_MSG_RESULT(none needed),
211      glib_save_CFLAGS=$CFLAGS
212      CFLAGS="$CFLAGS -std1"
213      AC_TRY_RUN([#include <math.h>
214                  int main (void) { return (log(1) != log(1.)); }],
215          AC_MSG_RESULT(-std1),
216          AC_MSG_RESULT()
217          CFLAGS=$glib_save_CFLAGS
218          AC_MSG_WARN(
219                 [No ANSI prototypes found in library. (-std1 didn't work.)])
220      )
221 )
222 LIBS=$glib_save_LIBS
223
224 dnl NeXTStep cc seems to need this
225 AC_MSG_CHECKING([for extra flags for POSIX compliance])
226 AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
227   AC_MSG_RESULT(none needed),
228   glib_save_CFLAGS=$CFLAGS
229   CFLAGS="$CFLAGS -posix"
230   AC_TRY_COMPILE([#include <dirent.h>], [DIR *dir;],
231     AC_MSG_RESULT(-posix),
232     AC_MSG_RESULT()
233     CFLAGS=$glib_save_CFLAGS
234     AC_MSG_WARN([Could not determine POSIX flag. (-posix didn't work.)])))
235
236 # Checks for header files.
237 AC_HEADER_STDC
238
239 # Checks for library functions.
240 AC_FUNC_VPRINTF
241
242 AC_FUNC_ALLOCA
243
244 AC_CHECK_FUNCS(atexit on_exit)
245
246 AC_CHECK_SIZEOF(char)
247 AC_CHECK_SIZEOF(short)
248 AC_CHECK_SIZEOF(long)
249 AC_CHECK_SIZEOF(int)
250 AC_CHECK_SIZEOF(void *)
251 AC_CHECK_SIZEOF(long long)
252
253 if test x$ac_cv_sizeof_long_long = x8; then
254         # long long is a 64 bit integer.
255         AC_MSG_CHECKING(for format to printf and scanf a gint64)
256         AC_CACHE_VAL(glib_cv_long_long_format,[
257                 for format in ll q; do
258                   AC_TRY_RUN([#include <stdio.h>  
259                         int main()
260                         {
261                           long long b, a = -0x3AFAFAFAFAFAFAFALL;
262                           char buffer[1000];
263                           sprintf (buffer, "%${format}u", a);
264                           sscanf (buffer, "%${format}u", &b);
265                           exit (b!=a);
266                         }
267                         ],
268                         glib_cv_long_long_format=${format}
269                         break)
270                 done])
271         if test -n "$glib_cv_long_long_format"; then
272           AC_MSG_RESULT(%${glib_cv_long_long_format}i)
273         else
274           AC_MSG_RESULT(none)
275         fi
276 fi
277
278 dnl long doubles were not used, and a portability problem
279 dnl AC_C_LONG_DOUBLE
280 AC_C_CONST
281
282 dnl AC_C_INLINE is useless to us since it bails out too early, we need to
283 dnl truely know which ones of `inline', `__inline' and `__inline__' are
284 dnl actually supported.
285 AC_CACHE_CHECK([for __inline],glib_cv_has__inline,[
286         AC_TRY_RUN([
287         __inline int foo () { return 0; }
288         int main () { return foo (); }
289         ],
290         glib_cv_has__inline=yes
291         ,
292         glib_cv_has__inline=no
293         ,)
294 ])
295 case x$glib_cv_has__inline in
296 xyes) AC_DEFINE(G_HAVE___INLINE,1,[Have __inline keyword])
297 esac
298 AC_CACHE_CHECK([for __inline__],glib_cv_has__inline__,[
299         AC_TRY_RUN([
300         __inline__ int foo () { return 0; }
301         int main () { return foo (); }
302         ],
303         glib_cv_has__inline__=yes
304         ,
305         glib_cv_has__inline__=no
306         ,)
307 ])
308 case x$glib_cv_has__inline__ in
309 xyes) AC_DEFINE(G_HAVE___INLINE__,1,[Have __inline__ keyword])
310 esac
311 AC_CACHE_CHECK([for inline], glib_cv_hasinline,[
312         AC_TRY_RUN([
313         inline int foo () { return 0; }
314         int main () { return foo (); }
315         ],
316         glib_cv_hasinline=yes
317         ,
318         glib_cv_hasinline=no
319         ,)
320 ])
321 case x$glib_cv_hasinline in
322 xyes) AC_DEFINE(G_HAVE_INLINE,1,[Have inline keyword])
323 esac
324
325 # check for bytesex stuff
326 AC_C_BIGENDIAN
327
328 # check for header files
329 AC_CHECK_HEADERS([float.h limits.h pwd.h sys/param.h sys/poll.h sys/select.h])
330 AC_CHECK_HEADERS([sys/time.h sys/times.h unistd.h values.h stdint.h sched.h])
331
332 AC_MSG_CHECKING(whether make is GNU Make)
333 STRIP_BEGIN=
334 STRIP_END=
335 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
336         STRIP_BEGIN='$(strip $(STRIP_DUMMY)'
337         STRIP_END=')'
338         AC_MSG_RESULT(yes)
339 else
340         AC_MSG_RESULT(no)
341 fi
342 STRIP_DUMMY=
343 AC_SUBST(STRIP_DUMMY)
344 AC_SUBST(STRIP_BEGIN)
345 AC_SUBST(STRIP_END)
346
347 # check additional type sizes
348 size_includes=["
349 #include <stdarg.h>
350 #include <stdio.h>
351 #include <ctype.h>
352 #include <string.h>
353 "]
354 if test "x$ac_cv_header_stdint_h" = "xyes"; then
355   size_includes=["$size_includes
356 #include <stdint.h>
357 "]
358 fi
359 if test "x$ac_cv_header_unistd_h" = "xyes"; then
360   size_includes=["$size_includes
361 #include <unistd.h>
362 "]
363 fi
364 GLIB_SIZEOF([$size_includes], size_t, size_t)
365 GLIB_SIZEOF([$size_includes], ptrdiff_t, ptrdiff_t)
366 GLIB_SIZEOF([$size_includes], intmax_t, intmax_t)
367
368 # Check for some functions
369 AC_CHECK_FUNCS(lstat strerror strsignal memmove mkstemp vsnprintf strcasecmp strncasecmp poll getcwd)
370
371 # Check if bcopy can be used for overlapping copies, if memmove isn't found.
372 # The check is borrowed from the PERL Configure script.
373 if test "$ac_cv_func_memmove" != "yes"; then
374   AC_CACHE_CHECK(whether bcopy can handle overlapping copies,
375     glib_cv_working_bcopy,[AC_TRY_RUN([
376       int main() {
377         char buf[128], abc[128], *b;
378         int len, off, align;
379         bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
380         for (align = 7; align >= 0; align--) {
381           for (len = 36; len; len--) {
382             b = buf+align; bcopy(abc, b, len);
383             for (off = 1; off <= len; off++) {
384               bcopy(b, b+off, len); bcopy(b+off, b, len);
385                 if (bcmp(b, abc, len)) return(1);
386             }
387           }
388         }
389         return(0);
390       }],glib_cv_working_bcopy=yes,glib_cv_working_bcopy=no)])
391   if test "$glib_cv_working_bcopy" = "yes"; then
392     AC_DEFINE(HAVE_WORKING_BCOPY,1,[Have a working bcopy])
393   fi
394 fi
395
396 # Check for sys_errlist
397 AC_MSG_CHECKING(for sys_errlist)
398 AC_TRY_LINK(, [
399 extern char *sys_errlist[];
400 extern int sys_nerr;
401 sys_errlist[sys_nerr-1][0] = 0;
402 ], glib_ok=yes, glib_ok=no)
403 AC_MSG_RESULT($glib_ok)
404 if test $glib_ok = no; then
405     AC_DEFINE(NO_SYS_ERRLIST,1,[global 'sys_errlist' not found])
406 fi
407
408 # Check for sys_siglist
409 AC_MSG_CHECKING(for sys_siglist)
410 AC_TRY_LINK(, [
411 extern char *sys_siglist[];
412 exit (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,1,[global 'sys_siglist' not found])
417 fi
418
419 # Check for sys_siglist decl (see Tue Jan 19 00:44:24 1999 in changelog)
420 AC_MSG_CHECKING(for sys_siglist declaration)
421 AC_TRY_COMPILE([#include <signal.h>], [
422 strlen (sys_siglist[0]);
423 ], glib_ok=yes, glib_ok=no)
424 AC_MSG_RESULT($glib_ok)
425 if test $glib_ok = no; then
426     AC_DEFINE(NO_SYS_SIGLIST_DECL,1,[global 'sys_siglist' not declared])
427 fi
428
429 # Check if <sys/select.h> needs to be included for fd_set
430 AC_MSG_CHECKING([for fd_set])
431 AC_TRY_COMPILE([#include <sys/types.h>],
432         [fd_set readMask, writeMask;], gtk_ok=yes, gtk_ok=no)
433 if test $gtk_ok = yes; then
434     AC_MSG_RESULT([yes, found in sys/types.h])
435 else
436     AC_EGREP_HEADER(fd_set, sys/select.h, gtk_ok=yes)
437     if test $gtk_ok = yes; then
438         # *** FIXME: give it a different name
439         AC_DEFINE(HAVE_SYS_SELECT_H,1,[found fd_set in sys/select.h])
440         AC_MSG_RESULT([yes, found in sys/select.h])
441     else
442         AC_DEFINE(NO_FD_SET,1,[didn't find fd_set])
443         AC_MSG_RESULT(no)
444     fi
445 fi
446
447 dnl *** check for sane realloc() ***
448 AC_CACHE_CHECK([whether realloc (NULL,) will work],glib_cv_sane_realloc,[
449         AC_TRY_RUN([
450         #include <stdlib.h>
451         int main() {
452           return realloc (0, sizeof (int)) == 0;
453         }],
454         [glib_cv_sane_realloc=yes],
455         [glib_cv_sane_realloc=no],
456         [])
457 ])
458 if test x$glib_cv_sane_realloc = xyes; then
459   AC_DEFINE(REALLOC_0_WORKS,1,[whether realloc (NULL,) works])
460 fi
461
462 dnl Check for nl_langinfo and CODESET
463
464 AC_MSG_CHECKING([for nl_langinfo (CODESET)])
465 AC_TRY_COMPILE([#include <langinfo.h>],
466         [char *codeset = nl_langinfo (CODESET);],
467    AC_DEFINE(HAVE_CODESET,1,[Have nl_langinfo (CODESET)])
468    have_codeset=yes,
469    have_codeset=no)
470 AC_MSG_RESULT($have_codeset)
471
472
473 dnl ****************************************
474 dnl *** strlcpy/strlcat                  ***
475 dnl ****************************************
476 # Check for strlcpy
477 AC_MSG_CHECKING(for strlcpy/strlcat)
478 AC_TRY_LINK([#include <stdlib.h>
479 #include <string.h>], [
480 char *p = malloc(10);
481 (void) strlcpy(p, "hi", 10);
482 (void) strlcat(p, "bye", 10);
483 ], glib_ok=yes, glib_ok=no)
484 AC_MSG_RESULT($glib_ok)
485 if test $glib_ok = yes; then
486     AC_DEFINE(HAVE_STRLCPY,1,[Have functions strlcpy and strlcat])
487 fi
488   
489
490 dnl **********************
491 dnl *** va_copy checks ***
492 dnl **********************
493 dnl we currently check for all three va_copy possibilities, so we get
494 dnl all results in config.log for bug reports.
495 AC_CACHE_CHECK([for an implementation of va_copy()],glib_cv_va_copy,[
496         AC_TRY_RUN([
497         #include <stdarg.h>
498         void f (int i, ...) {
499         va_list args1, args2;
500         va_start (args1, i);
501         va_copy (args2, args1);
502         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
503           exit (1);
504         va_end (args1); va_end (args2);
505         }
506         int main() {
507           f (0, 42);
508           return 0;
509         }],
510         [glib_cv_va_copy=yes],
511         [glib_cv_va_copy=no],
512         [])
513 ])
514 AC_CACHE_CHECK([for an implementation of __va_copy()],glib_cv___va_copy,[
515         AC_TRY_RUN([
516         #include <stdarg.h>
517         void f (int i, ...) {
518         va_list args1, args2;
519         va_start (args1, i);
520         __va_copy (args2, args1);
521         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
522           exit (1);
523         va_end (args1); va_end (args2);
524         }
525         int main() {
526           f (0, 42);
527           return 0;
528         }],
529         [glib_cv___va_copy=yes],
530         [glib_cv___va_copy=no],
531         [])
532 ])
533
534 if test "x$glib_cv_va_copy" = "xyes"; then
535   g_va_copy_func=va_copy
536 else if test "x$glib_cv___va_copy" = "xyes"; then
537   g_va_copy_func=__va_copy
538 fi
539 fi
540
541 if test -n "$g_va_copy_func"; then
542   AC_DEFINE_UNQUOTED(G_VA_COPY,$g_va_copy_func,[A 'va_copy' style function])
543 fi
544
545 AC_CACHE_CHECK([whether va_lists can be copied by value],glib_cv_va_val_copy,[
546         AC_TRY_RUN([
547         #include <stdarg.h>
548         void f (int i, ...) {
549         va_list args1, args2;
550         va_start (args1, i);
551         args2 = args1;
552         if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
553           exit (1);
554         va_end (args1); va_end (args2);
555         }
556         int main() {
557           f (0, 42);
558           return 0;
559         }],
560         [glib_cv_va_val_copy=yes],
561         [glib_cv_va_val_copy=no],
562         [])
563 ])
564
565 if test "x$glib_cv_va_val_copy" = "xno"; then
566   AC_DEFINE(G_VA_COPY_AS_ARRAY,1, ['va_lists' cannot be copies as values])
567 fi
568
569 dnl ***********************
570 dnl *** g_module checks ***
571 dnl ***********************
572 G_MODULE_LIBS=
573 G_MODULE_LIBS_EXTRA=
574 G_MODULE_PLUGIN_LIBS=
575 G_MODULE_LDFLAGS=
576 dnl G_MODULE_IMPL= don't reset, so cmd-line can override
577 G_MODULE_NEED_USCORE=0
578 G_MODULE_HAVE_DLERROR=0
579 dnl *** dlopen() and dlsym() in system libraries
580 if test -z "$G_MODULE_IMPL"; then
581         AC_CHECK_FUNC(dlopen,
582                       [AC_CHECK_FUNC(dlsym,
583                                      [G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
584                       [])
585 fi
586 dnl *** load_image (BeOS)
587 if test -z "$G_MODULE_IMPL" -a "x$glib_native_beos" = "xyes"; then
588   AC_CHECK_LIB(root, load_image,
589       [G_MODULE_LIBS="-lbe -lroot -lglib"
590       G_MODULE_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
591       G_MODULE_PLUGIN_LIBS="-L\$(top_builddir_full)/gmodule/.libs -lgmodule"
592       G_MODULE_IMPL=G_MODULE_IMPL_BEOS],
593       [])
594 fi   
595 # *** dlopen() and dlsym() in libdl
596 if test -z "$G_MODULE_IMPL"; then
597         AC_CHECK_LIB(dl, dlopen,
598                      [AC_CHECK_LIB(dl, dlsym,
599                                    [G_MODULE_LIBS=-ldl
600                                    G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
601                      [])
602 fi
603 dnl *** shl_load() in libdld (HP-UX)
604 if test -z "$G_MODULE_IMPL"; then
605         AC_MSG_CHECKING(how to export all symbols)
606         SAVED_LDFLAGS=$LDFLAGS
607         LDFLAGS="$LDFLAGS -Wl,-E"
608         AC_TRY_LINK(,[ return 0; ],
609                 [ G_MODULE_LDFLAGS="-Wl,-E" ],[
610                 LDFLAGS="$SAVED_LDFLAGS -bexpall"
611                 AC_TRY_LINK(,[ return 0; ],
612                         [G_MODULE_LDFLAGS="-bexpall"],
613                         [G_MODULE_LDFLAGS="none"])
614         ])
615         LDFLAGS=$SAVED_LDFLAGS
616         AC_MSG_RESULT($G_MODULE_LDFLAGS)
617         if test "x$G_MODULE_LDFLAGS" = "xnone"; then
618                 G_MODULE_LDFLAGS=
619         fi
620         AC_CHECK_LIB(dld, shl_load,
621                 [G_MODULE_LIBS=-ldld
622                 G_MODULE_IMPL=G_MODULE_IMPL_DLD],
623                 [])
624 fi
625 dnl *** additional checks for G_MODULE_IMPL_DL
626 if test "$G_MODULE_IMPL" = "G_MODULE_IMPL_DL"; then
627         case "$host_os" in
628           linux*)
629             G_MODULE_LDFLAGS='-rdynamic'
630             ;;
631         esac
632         LIBS_orig="$LIBS"
633         LDFLAGS_orig="$LDFLAGS"
634         LIBS="$LIBS $G_MODULE_LIBS"
635         LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
636 dnl *** check whether we need preceeding underscores
637         AC_CACHE_CHECK([for preceeding underscore in symbols],
638                 glib_cv_uscore,[
639                 AC_TRY_RUN([
640                 #include <dlfcn.h>
641                 int glib_underscore_test (void) { return 42; }
642                 int main() {
643                   void *f1 = (void*)0, *f2 = (void*)0, *handle;
644                   handle = dlopen ((void*)0, 0);
645                   if (handle) {
646                     f1 = dlsym (handle, "glib_underscore_test");
647                     f2 = dlsym (handle, "_glib_underscore_test");
648                   } return (!f2 || f1);
649                 }],
650                         [glib_cv_uscore=yes],
651                         [glib_cv_uscore=no],
652                         [])
653                 rm -f plugin.c plugin.o plugin.lo
654         ])
655         if test "x$glib_cv_uscore" = "xyes"; then
656                 G_MODULE_NEED_USCORE=1
657         else
658                 G_MODULE_NEED_USCORE=0
659         fi
660
661         LDFLAGS="$LDFLAGS_orig"
662 dnl *** check for having dlerror()
663         AC_CHECK_FUNC(dlerror,
664                 [G_MODULE_HAVE_DLERROR=1],
665                 [G_MODULE_HAVE_DLERROR=0])
666         LIBS="$LIBS_orig"
667 fi
668 dnl *** done, have e got an implementation?
669 if test -z "$G_MODULE_IMPL"; then
670         G_MODULE_IMPL=0
671 fi
672 AC_SUBST(G_MODULE_IMPL)
673 AC_SUBST(G_MODULE_LIBS)
674 AC_SUBST(G_MODULE_LIBS_EXTRA)
675 AC_SUBST(G_MODULE_PLUGIN_LIBS)
676 AC_SUBST(G_MODULE_LDFLAGS)
677 AC_SUBST(G_MODULE_HAVE_DLERROR)
678 AC_SUBST(G_MODULE_NEED_USCORE)
679 AC_SUBST(GLIB_DEBUG_FLAGS)
680
681
682 dnl ***********************
683 dnl *** g_thread checks ***
684 dnl ***********************
685
686 AC_ARG_WITH(threads, [  --with-threads=[none/posix/dce/solaris] specify a thread implementation to use],
687         if test "x$with_threads" = x; then
688                 want_threads=yes
689         else
690                 want_threads=$with_threads
691         fi,
692         want_threads=yes)
693 if test "x$enable_threads" = "xno"; then
694         want_threads=no
695 fi
696 if test "x$want_threads" = "xnone"; then
697         want_threads=no
698 fi
699
700 dnl error and warning message
701 dnl *************************
702
703 THREAD_NO_IMPLEMENTATION="You do not have any known thread system on your
704                 computer. GLib will not have a default thread implementation."
705
706 FLAG_DOES_NOT_WORK="I can't find the MACRO to enable thread safety on your
707                 platform (normaly it's "_REENTRANT"). I'll not use any flag on
708                 compilation now, but then your programs might not work.
709                 Please provide information on how it is done on your system."
710
711 LIBS_NOT_FOUND_1="I can't find the libraries for the thread implementation
712                 "
713
714 LIBS_NOT_FOUND_2=". Please choose another thread implementation or
715                 provide information on your thread implementation.
716                 You can also run 'configure --disable-threads' 
717                 to compile without thread support."
718
719 FUNC_NO_GETPWUID_R="the 'g_get_(user_name|real_name|home_dir|tmp_dir)'
720                 functions will not be MT-safe during their first call because
721                 there is no working 'getpwuid_r' on your system."
722
723 FUNC_NO_LOCALTIME_R="the 'g_date_set_time' function will not be MT-safe
724                 because there is no 'localtime_r' on your system."
725
726 POSIX_NO_YIELD="I can not find a yield functions for your platform. A rather
727                 crude surrogate will be used. If you happen to know a 
728                 yield function for your system, please inform the GLib 
729                 developers."
730
731 POSIX_NO_PRIORITIES="I can not find the minimal and maximal priorities for 
732                 threads on your system. Thus threads can only have the default 
733                 priority. If you happen to know these main/max
734                 priorities, please inform the GLib developers."
735
736
737 dnl determination of thread implementation
738 dnl ***************************************
739
740 have_threads=none
741 if test "x$want_threads" = xyes || test "x$want_threads" = xsolaris; then
742         case $host in
743                 *-*-solaris*)
744                 AC_CHECK_LIB(thread, cond_init, have_threads=solaris)
745                 ;;
746         esac
747 fi
748 if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
749                                 || test "x$want_threads" = xdce; then
750         # -D_POSIX4_DRAFT_SOURCE -D_POSIX4A_DRAFT10_SOURCE is for DG/UX
751         # -U_OSF_SOURCE is for Digital UNIX 4.0d
752         GTHREAD_COMPILE_IMPL_DEFINES="-D_POSIX4_DRAFT_SOURCE -D_POSIX4A_DRAFT10_SOURCE -U_OSF_SOURCE"
753         glib_save_CPPFLAGS="$CPPFLAGS"
754         CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
755         if test "x$have_threads" = xnone; then
756                 AC_TRY_COMPILE([#include <pthread.h>],
757                         [pthread_attr_t attr; pthread_attr_init(&attr);],
758                         have_threads=posix)
759         fi
760         if test "x$have_threads" = xnone; then
761                 AC_TRY_COMPILE([#include <pthread.h>],
762                         [pthread_attr_t attr; pthread_attr_create(&attr);],
763                         have_threads=posix)
764         fi
765         CPPFLAGS="$glib_save_CPPFLAGS"
766 fi
767
768 AC_MSG_CHECKING(for thread implementation)
769
770 if test "x$have_threads" = xnone && test "x$want_threads" != xno; then
771         AC_MSG_RESULT(none available)
772         AC_MSG_WARN($THREAD_NO_IMPLEMENTATION)
773 else
774         AC_MSG_RESULT($have_threads)
775 fi
776
777
778 dnl determination of G_THREAD_CFLAGS
779 dnl ********************************
780
781 G_THREAD_LIBS=
782 G_THREAD_LIBS_EXTRA=
783 G_THREAD_CFLAGS=
784
785 if test x"$have_threads" != xnone; then
786
787     G_THREAD_CFLAGS="-D_REENTRANT" # good default guess
788
789     case $host in
790         *-aix*)
791                 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
792                 if test x"$GCC" = xyes; then
793                         G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
794                 fi
795                 ;;
796         *-freebsd2.2*)
797                 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
798
799                 # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
800                 # -mthreads flag.
801                 ;;      
802         *-sysv5uw7*)  # UnixWare 7 
803                 if test "$GCC" != "yes"; then
804                         G_THREAD_CFLAGS="$G_THREAD_CFLAGS -Kthread"
805                 else    
806                         G_THREAD_CFLAGS="$G_THREAD_CFLAGS -pthread"
807                 fi      
808                 ;;
809         *-dg-dgux*)  # DG/UX
810                 G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_POSIX4A_DRAFT10_SOURCE"
811     esac
812
813     # if we are not finding the ctime_r function, then we probably are
814     # not using the proper multithread flag
815
816     glib_save_CPPFLAGS="$CPPFLAGS"
817     CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
818
819     AC_TRY_COMPILE([#include <time.h>],
820         [time_t t; char b[30]; ctime_r (&t, b);], ,
821             [AC_TRY_COMPILE([#include <time.h>],
822                 [time_t t; char b[30]; ctime_r (&t, b, 30);], ,
823                         AC_MSG_WARN($FLAG_DOES_NOT_WORK))])
824
825     CPPFLAGS="$glib_save_CPPFLAGS"
826
827     AC_MSG_CHECKING(thread related cflags)
828     AC_MSG_RESULT($G_THREAD_CFLAGS)
829     CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
830 fi
831
832 dnl determination of G_THREAD_LIBS
833 dnl ******************************
834
835 mutex_has_default=no
836 case $have_threads in
837         posix|dce)
838            glib_save_CPPFLAGS="$CPPFLAGS"
839            CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
840            G_THREAD_LIBS=error
841            glib_save_LIBS="$LIBS"
842            case $host in
843              *-sysv5uw7*) # UnixWare 7 
844                 if test "$GCC" != "yes"; then
845                         G_THREAD_LIBS="-Kthread"
846                 else    
847                         G_THREAD_LIBS="-pthread"
848                 fi      
849                 ;;
850              *)
851                 for thread_lib in "" pthread pthreads c_r thread dce; do
852                         if test x"$thread_lib" = x; then
853                                 add_thread_lib=""
854                                 IN=""
855                         else
856                                 add_thread_lib="-l$thread_lib"
857                                 IN=" in -l$thread_lib"
858                         fi
859                         if test x"$have_threads" = xposix; then
860                                 defattr=0
861                         else
862                                 defattr=pthread_attr_default
863                         fi
864                         
865                         LIBS="$glib_save_LIBS $add_thread_lib"
866                         
867                         AC_MSG_CHECKING(for pthread_create/pthread_join$IN)
868                         AC_TRY_RUN([#include <pthread.h> 
869                                 int check_me = 0;
870                                 void* func(void* data) {check_me = 42;}
871                                 main()
872                                 { pthread_t t; 
873                                   void *ret;
874                                   pthread_create (&t, $defattr, func, 0);
875                                   pthread_join (t, &ret);
876                                   exit (check_me != 42);
877                                 }],
878                                 [AC_MSG_RESULT(yes)
879                                 G_THREAD_LIBS="$add_thread_lib"
880                                 break],
881                                 [AC_MSG_RESULT(no)])
882                 done
883                 if test "x$G_THREAD_LIBS" = xerror; then
884                   AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
885                 fi
886                 for thread_lib in "" rt rte; do
887                         if test x"$thread_lib" = x; then
888                                 add_thread_lib=""
889                                 IN=""
890                         else
891                                 add_thread_lib="-l$thread_lib"
892                                 IN=" in -l$thread_lib"
893                         fi
894                         LIBS="$glib_save_LIBS $add_thread_lib"
895                         
896                         AC_MSG_CHECKING(for sched_get_priority_min$IN)
897                         AC_TRY_RUN([#include <sched.h>
898                                 #include <errno.h>
899                                 int main() {
900                                 errno = 0;
901                                 return sched_get_priority_min(SCHED_OTHER)==-1
902                                         && errno != 0;
903                                 }],
904                                 [AC_MSG_RESULT(yes)
905                                 G_THREAD_LIBS="$G_THREAD_LIBS $add_thread_lib"
906                                 posix_priority_min="sched_get_priority_min(SCHED_OTHER)"
907                                 posix_priority_max="sched_get_priority_max(SCHED_OTHER)"
908                                 break],
909                                 [AC_MSG_RESULT(no)])
910                 done
911                 LIBS="$glib_save_LIBS"
912                 ;;
913            esac 
914            mutex_has_default=yes
915            mutex_default_type='pthread_mutex_t'
916            mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
917            mutex_header_file='pthread.h'
918            if test "x$have_threads" = "xposix"; then
919              g_threads_impl="POSIX"
920            else
921              g_threads_impl="DCE"
922              have_threads="posix"
923            fi
924            AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
925            CPPFLAGS="$glib_save_CPPFLAGS"
926            ;;
927         solaris)
928            G_THREAD_LIBS=error
929            AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
930            mutex_has_default=yes
931            mutex_default_type='mutex_t'
932            mutex_default_init="DEFAULTMUTEX"
933            mutex_header_file='thread.h'
934            g_threads_impl="SOLARIS"
935            ;;
936         none)
937            g_threads_impl="NONE"
938            ;;
939         *)
940            g_threads_impl="NONE"
941            G_THREAD_LIBS=error
942            ;;
943 esac
944
945 if test "x$G_THREAD_LIBS" = xerror; then
946         AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
947 fi
948
949 case $host in
950   *-*-beos*)
951     G_THREAD_LIBS="-lbe -lroot -lglib "
952     G_THREAD_LIBS_EXTRA="-L\$(top_builddir_full)/.libs"
953     ;;
954   *)
955     ;;
956 esac
957
958 AC_MSG_CHECKING(thread related libraries)
959 AC_MSG_RESULT($G_THREAD_LIBS)
960
961 dnl check for mt safe function variants and some posix functions
962 dnl ************************************************************
963
964 if test x"$have_threads" != xnone; then
965         glib_save_LIBS="$LIBS"
966         # we are not doing the following for now, as this might require glib 
967         # to always be linked with the thread libs on some platforms. 
968         # LIBS="$LIBS $G_THREAD_LIBS"
969         AC_CHECK_FUNCS(localtime_r)
970         if test "$ac_cv_header_pwd_h" = "yes"; then
971                 AC_CACHE_CHECK([for posix getpwuid_r],
972                         ac_cv_func_posix_getpwuid_r,
973                         [AC_TRY_RUN([#include <errno.h>
974                                 #include <pwd.h>
975                                 int main () { char buffer[10000];
976                                 struct passwd pwd, *pwptr = &pwd;
977                                 int error;
978                                 errno = 0;
979                                 error = getpwuid_r (0, &pwd, buffer, 
980                                         sizeof (buffer), &pwptr);
981                                 return (error < 0 && errno == ENOSYS) 
982                                         || error == ENOSYS; }],
983                                 [ac_cv_func_posix_getpwuid_r=yes],
984                                 [ac_cv_func_posix_getpwuid_r=no])])
985                 if test "$ac_cv_func_posix_getpwuid_r" = yes; then
986                         AC_DEFINE(HAVE_POSIX_GETPWUID_R,1,
987                                 [Have POSIX function getpwuid_r])
988                 else
989                         AC_CACHE_CHECK([for nonposix getpwuid_r],
990                                 ac_cv_func_nonposix_getpwuid_r,
991                                 [AC_TRY_COMPILE([#include <pwd.h>],
992                                         [char buffer[10000];
993                                         struct passwd pwd;
994                                         getpwuid_r (0, &pwd, buffer, 
995                                                         sizeof (buffer));],
996                                         [ac_cv_func_nonposix_getpwuid_r=yes],
997                                         [ac_cv_func_nonposix_getpwuid_r=no])])
998                         if test "$ac_cv_func_nonposix_getpwuid_r" = yes; then
999                                 AC_DEFINE(HAVE_NONPOSIX_GETPWUID_R,1,
1000                                         [Have non-POSIX function getpwuid_r])
1001                         fi
1002                 fi
1003         fi
1004         LIBS="$LIBS $G_THREAD_LIBS"
1005         if test x"$have_threads" = xposix; then
1006                 glib_save_CPPFLAGS="$CPPFLAGS"
1007                 CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1008                 GLIB_SIZEOF([#include <pthread.h>],
1009                         pthread_t,
1010                         system_thread)
1011                 # This is not AC_CHECK_FUNC to also work with function
1012                 # name mangling in header files.
1013                 AC_MSG_CHECKING(for pthread_attr_setstacksize)
1014                 AC_TRY_LINK([#include <pthread.h>],
1015                         [pthread_attr_t t; pthread_attr_setstacksize(&t,0)],
1016                         [AC_MSG_RESULT(yes)
1017                         AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE,1,
1018                                   [Have function pthread_attr_setstacksize])],
1019                         [AC_MSG_RESULT(no)])
1020                 AC_MSG_CHECKING(for minimal/maximal thread priority)
1021                 if test x"$posix_priority_min" = xnone; then
1022                         AC_EGREP_CPP(PX_PRIO_MIN,[#include <pthread.h>
1023                                 PX_PRIO_MIN],,[
1024                                 posix_priority_min=PX_PRIO_MIN
1025                                 posix_priority_max=PX_PRIO_MAX])
1026                 fi
1027                 if test x"$posix_priority_min" = xnone; then
1028                         AC_EGREP_CPP(PRI_OTHER_MIN,[#include <pthread.h>
1029                                 PRI_OTHER_MIN],,[
1030                                 posix_priority_min=PRI_OTHER_MIN        
1031                                 posix_priority_max=PRI_OTHER_MAX])
1032                 fi
1033                 if test x"$posix_priority_min" = x; then
1034                         AC_MSG_RESULT(none found)
1035                         AC_MSG_WARN($POSIX_NO_PRIORITIES)
1036                         posix_priority_min=-1
1037                         posix_priority_max=-1
1038                 else
1039                         AC_MSG_RESULT($posix_priority_min/$posix_priority_max)
1040                         AC_DEFINE_UNQUOTED(POSIX_MIN_PRIORITY,$posix_priority_min,[Minimum POSIX RT priority])
1041                         AC_DEFINE_UNQUOTED(POSIX_MAX_PRIORITY,$posix_priority_max,[Maximum POSIX RT priority])
1042                 fi
1043                 posix_yield_func=none
1044                 AC_MSG_CHECKING(for posix yield function)
1045                 for yield_func in sched_yield pthread_yield_np pthread_yield \
1046                                                         thr_yield; do
1047                         AC_TRY_LINK([#include <pthread.h>],
1048                                 [$yield_func()],
1049                                 [posix_yield_func="$yield_func"
1050                                 break])
1051                 done            
1052                 if test x"$posix_yield_func" = xnone; then
1053                         AC_MSG_RESULT(none found)
1054                         AC_MSG_WARN($POSIX_NO_YIELD)
1055                         posix_yield_func="g_usleep(1000)"
1056                 else
1057                         AC_MSG_RESULT($posix_yield_func)
1058                         posix_yield_func="$posix_yield_func()"
1059                 fi
1060                 AC_DEFINE_UNQUOTED(POSIX_YIELD_FUNC,$posix_yield_func,[The POSIX RT yield function])
1061                 CPPFLAGS="$glib_save_CPPFLAGS"
1062
1063                 AC_MSG_CHECKING(whether to use the PID niceness surrogate for thread priorities)
1064                 AC_TRY_RUN([#include <pthread.h> 
1065                         #include <sys/types.h>
1066                         #include <unistd.h>
1067                         pid_t other_pid = 0;
1068
1069                         void* func(void* data) {other_pid = getpid();}
1070                         main()
1071                         { pthread_t t; 
1072                           void *ret;
1073                           pthread_create (&t, $defattr, func, NULL);
1074                           pthread_join (t, &ret);
1075                           exit (getpid()==other_pid || 
1076                                 $posix_priority_min != $posix_priority_max);
1077                         }],
1078                         [AC_MSG_RESULT(yes),
1079                          AC_DEFINE(G_THREAD_USE_PID_SURROGATE, 1,
1080                                 [whether to use the PID niceness surrogate for thread priorities])
1081
1082                          glib_cv_sizeof_system_thread=`expr $glib_cv_sizeof_system_thread + $ac_cv_sizeof_long`],
1083                         [AC_MSG_RESULT(no)])
1084            
1085         else # solaris threads
1086                 GLIB_SIZEOF([#include <thread.h>],
1087                         thread_t,
1088                         system_thread)
1089         fi
1090
1091         LIBS="$glib_save_LIBS"
1092
1093         # now spit out all the warnings.
1094         if test "$ac_cv_func_posix_getpwuid_r" != "yes" && 
1095            test "$ac_cv_func_nonposix_getpwuid_r" != "yes"; then
1096                 AC_MSG_WARN($FUNC_NO_GETPWUID_R)
1097         fi
1098         if test "$ac_cv_func_localtime_r" != "yes"; then
1099                 AC_MSG_WARN($FUNC_NO_LOCALTIME_R)
1100         fi
1101 else 
1102         # If no thread implementation exists, we will provide enough
1103         # space for a pointer
1104         GLIB_SIZEOF(, void*, system_thread)
1105 fi      
1106
1107 AC_DEFINE_UNQUOTED(G_THREAD_SOURCE,"gthread-$have_threads.c",
1108                    [Source file containing theread implementation])
1109 AC_SUBST(G_THREAD_CFLAGS)
1110 AC_SUBST(G_THREAD_LIBS)
1111 AC_SUBST(G_THREAD_LIBS_EXTRA)
1112
1113 dnl **********************************************
1114 dnl *** GDefaultMutex setup and initialization ***
1115 dnl **********************************************
1116 dnl
1117 dnl if mutex_has_default = yes, we also got
1118 dnl mutex_default_type, mutex_default_init and mutex_header_file
1119 GLIB_IF_VAR_EQ(mutex_has_default, yes,
1120         glib_save_CPPFLAGS="$CPPFLAGS"
1121         glib_save_LIBS="$LIBS"
1122         LIBS="$LIBS $G_THREAD_LIBS"
1123         CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
1124         GLIB_SIZEOF([#include <$mutex_header_file>],
1125                     $mutex_default_type,
1126                     gmutex,
1127                     )
1128         GLIB_BYTE_CONTENTS([#include <$mutex_header_file>],
1129                            $mutex_default_type,
1130                            gmutex,
1131                            $glib_cv_sizeof_gmutex,
1132                            $mutex_default_init)
1133         if test x"$glib_cv_byte_contents_gmutex" = xno; then
1134                 mutex_has_default=no
1135         fi
1136         CPPFLAGS="$glib_save_CPPFLAGS"
1137         LIBS="$glib_save_LIBS"
1138         ,
1139 )
1140
1141
1142 dnl ****************************************
1143 dnl *** GLib POLL* compatibility defines ***
1144 dnl ****************************************
1145 GLIB_SYSDEFS(
1146 [#include <sys/types.h>
1147 #include <sys/poll.h>],
1148         POLLIN:1 POLLOUT:4 POLLPRI:2 POLLERR:8 POLLHUP:16 POLLNVAL:32,
1149         glibconfig-sysdefs.h,
1150         =)
1151
1152 dnl ***********************
1153 dnl *** Tests for iconv ***
1154 dnl ***********************
1155
1156 AC_ARG_WITH(libiconv, [ --with-libiconv     Use the libiconv library ],,with_libiconv=maybe)
1157
1158 found_iconv=no
1159
1160 if test "x$with_libiconv" != "xyes" ; then
1161    # 
1162    # Check in the C library 
1163    #
1164    AC_CHECK_FUNC(iconv_open, with_libiconv=no; found_iconv=yes)
1165 fi
1166
1167 if test "x$with_libiconv" != "xno" ; then
1168    #
1169    # Check for libiconv
1170    #
1171    AC_CHECK_LIB(iconv, libiconv_open, with_libiconv=yes; found_iconv=yes)
1172 fi
1173
1174 if test "x$found_iconv" = "xno" ; then
1175    AC_MSG_ERROR([*** No iconv() implementation found in C library or libiconv])
1176 fi
1177
1178 if test "x$with_libiconv" = "xyes" ; then
1179   ICONV_LIBS="-liconv"
1180   AC_DEFINE(USE_LIBICONV)
1181 fi
1182 AC_SUBST(ICONV_LIBS)
1183
1184 dnl If the system doesn't define EILSEQ, we should define EILSEQ ourselves
1185 dnl since we need it for g_iconv()
1186
1187 AC_MSG_CHECKING([for EILSEQ])
1188 AC_TRY_COMPILE([
1189 #include <errno.h>
1190 ],
1191 [
1192 int error = EILSEQ;
1193 ], have_eilseq=yes, have_eilseq=no);
1194 AC_MSG_RESULT($have_eilseq)
1195
1196 dnl **************************
1197 dnl *** Checks for gtk-doc ***
1198 dnl **************************
1199
1200 AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])
1201
1202 if test "x$with_html_dir" = "x" ; then
1203   HTML_DIR='${datadir}/gtk-doc/html'
1204 else
1205   HTML_DIR=$with_html_dir
1206 fi
1207
1208 AC_SUBST(HTML_DIR)
1209
1210
1211 AC_CHECK_PROG(GTKDOC, gtkdoc-mkdb, true, false)
1212 AM_CONDITIONAL(HAVE_GTK_DOC, $GTKDOC)
1213 AC_SUBST(HAVE_GTK_DOC)
1214
1215 AC_CHECK_PROG(DB2HTML, db2html, true, false)
1216 AM_CONDITIONAL(HAVE_DOCBOOK, $DB2HTML)
1217
1218 dnl Let people disable the gtk-doc stuff.
1219 AC_ARG_ENABLE(gtk-doc, [  --enable-gtk-doc  Use gtk-doc to build documentation [default=auto]], enable_gtk_doc="$enableval", enable_gtk_doc=auto)
1220
1221 if test x$enable_gtk_doc = xauto ; then
1222   if test x$GTKDOC = xtrue ; then
1223     enable_gtk_doc=yes
1224   else
1225     enable_gtk_doc=no 
1226   fi
1227 fi
1228
1229 dnl NOTE: We need to use a separate automake conditional for this
1230 dnl       to make this work with the tarballs.
1231 AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
1232
1233 dnl ******************************
1234 dnl *** output the whole stuff ***
1235 dnl ******************************
1236
1237 AC_OUTPUT_COMMANDS([
1238
1239 ## Generate `glibconfig.h' in two cases
1240 ## 1. `config.status' is run either explicitly, or via configure.
1241 ##     Esp. not when it is run in `Makefile' to generate makefiles and
1242 ##     config.h
1243 ## 2. CONFIG_OTHER is set explicitly
1244 ##
1245 ## Case 1 is difficult.  We know that `automake' sets one of
1246 ## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
1247 ## only when AM_CONFIG_HEADER is set, however.
1248
1249 if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
1250   # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
1251   CONFIG_OTHER=${CONFIG_OTHER:-glibconfig.h}
1252 fi
1253 case "$CONFIG_OTHER" in
1254 *glibconfig.h*)
1255         echo creating glibconfig.h
1256         outfile=glibconfig.h-tmp
1257         cat > $outfile <<\_______EOF
1258 /* glibconfig.h
1259  *
1260  * This is a generated file.  Please modify 'configure.in'
1261  */
1262
1263 #ifndef __G_LIBCONFIG_H__
1264 #define __G_LIBCONFIG_H__
1265
1266 #include <gmacros.h>
1267
1268 _______EOF
1269
1270         if test x$glib_limits_h = xyes; then
1271           echo '#include <limits.h>' >> $outfile
1272         fi
1273         if test x$glib_float_h = xyes; then
1274           echo '#include <float.h>' >> $outfile
1275         fi
1276         if test x$glib_values_h = xyes; then
1277           echo '#include <values.h>' >> $outfile
1278         fi
1279         if test "$glib_header_alloca_h" = "yes"; then
1280           echo '#define GLIB_HAVE_ALLOCA_H' >> $outfile
1281         fi
1282         if test x$glib_sys_poll_h = xyes; then
1283           echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
1284         fi
1285
1286         cat >> $outfile <<_______EOF
1287
1288 G_BEGIN_DECLS
1289
1290 #define G_MINFLOAT      $glib_mf
1291 #define G_MAXFLOAT      $glib_Mf
1292 #define G_MINDOUBLE     $glib_md
1293 #define G_MAXDOUBLE     $glib_Md
1294 #define G_MINSHORT      $glib_ms
1295 #define G_MAXSHORT      $glib_Ms
1296 #define G_MAXUSHORT     $glib_Mus
1297 #define G_MININT        $glib_mi
1298 #define G_MAXINT        $glib_Mi
1299 #define G_MAXUINT       $glib_Mui
1300 #define G_MINLONG       $glib_ml
1301 #define G_MAXLONG       $glib_Ml
1302 #define G_MAXULONG      $glib_Mul
1303
1304 _______EOF
1305
1306
1307         ### this should always be true in a modern C/C++ compiler
1308         cat >>$outfile <<_______EOF
1309 typedef signed char gint8;
1310 typedef unsigned char guint8;
1311 _______EOF
1312
1313
1314         if test -n "$gint16"; then
1315           cat >>$outfile <<_______EOF
1316 typedef signed $gint16 gint16;
1317 typedef unsigned $gint16 guint16;
1318 #define G_GINT16_FORMAT $gint16_format
1319 #define G_GUINT16_FORMAT $guint16_format
1320 _______EOF
1321         fi
1322
1323
1324         if test -n "$gint32"; then
1325           cat >>$outfile <<_______EOF
1326 typedef signed $gint32 gint32;
1327 typedef unsigned $gint32 guint32;
1328 #define G_GINT32_FORMAT $gint32_format
1329 #define G_GUINT32_FORMAT $guint32_format
1330 _______EOF
1331         fi
1332
1333
1334         if test -n "$gint64"; then
1335           cat >>$outfile <<_______EOF
1336 #define G_HAVE_GINT64 1
1337
1338 ${glib_extension}typedef signed $gint64 gint64;
1339 ${glib_extension}typedef unsigned $gint64 guint64;
1340
1341 #define G_GINT64_CONSTANT(val)  $gint64_constant
1342 _______EOF
1343                 if test -n "$gint64_format"; then
1344           cat >>$outfile <<_______EOF
1345 #define G_GINT64_FORMAT $gint64_format
1346 #define G_GUINT64_FORMAT $guint64_format
1347 _______EOF
1348                 fi
1349         fi
1350
1351         case x$glib_size_t in
1352         x2) echo "typedef gint16  gssize;" >> $outfile
1353             echo "typedef guint16 gsize;"  >> $outfile
1354             ;;
1355         x4) echo "typedef gint32  gssize;" >> $outfile
1356             echo "typedef guint32 gsize;"  >> $outfile
1357             ;;
1358         x8) echo "typedef gint64  gssize;" >> $outfile
1359             echo "typedef guint64 gsize;"  >> $outfile
1360             ;;
1361         *)  echo "#error size of size_t is unknown" >> $outfile
1362             ;;
1363         esac
1364
1365         if test -z "$glib_unknown_void_p"; then
1366           cat >>$outfile <<_______EOF
1367
1368 #define GPOINTER_TO_INT(p)      ((gint)  ${glib_gpi_cast} (p))
1369 #define GPOINTER_TO_UINT(p)     ((guint) ${glib_gpui_cast} (p))
1370
1371 #define GINT_TO_POINTER(i)      ((gpointer) ${glib_gpi_cast} (i))
1372 #define GUINT_TO_POINTER(u)     ((gpointer) ${glib_gpui_cast} (u))
1373 _______EOF
1374         else
1375           echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
1376         fi
1377
1378
1379
1380         cat >>$outfile <<_______EOF
1381 $glib_atexit
1382 $glib_memmove
1383 $glib_defines
1384 $glib_os
1385
1386 $glib_vacopy
1387
1388 #ifdef  __cplusplus
1389 #define G_HAVE_INLINE   1
1390 #else   /* !__cplusplus */
1391 $glib_inline
1392 #endif  /* !__cplusplus */
1393 _______EOF
1394
1395         echo >>$outfile
1396         if test x$g_have_eilseq = xno; then
1397                 cat >>$outfile <<_______EOF
1398 #ifndef EILSEQ
1399 /* On some systems, like SunOS and NetBSD, EILSEQ is not defined.
1400  * The correspondence between this and the corresponding definition
1401  * in libiconv is essential.
1402  */
1403 #  define EILSEQ ENOENT
1404 #endif
1405 _______EOF
1406
1407         fi
1408
1409         echo >>$outfile
1410         if test x$g_mutex_has_default = xyes; then
1411                 cat >>$outfile <<_______EOF
1412 $g_enable_threads_def G_THREADS_ENABLED
1413 #define G_THREADS_IMPL_$g_threads_impl_def
1414 typedef struct _GStaticMutex GStaticMutex;
1415 struct _GStaticMutex
1416 {
1417   struct _GMutex *runtime_mutex;
1418   struct {
1419     union {
1420       char   pad[$g_mutex_sizeof];
1421       double dummy_double;
1422       void  *dummy_pointer;
1423       long   dummy_long;
1424     } mutex;
1425     void *debug_info;
1426   } static_mutex;
1427 };
1428 #define G_STATIC_MUTEX_INIT     { NULL, { { { $g_mutex_contents} }, NULL } }
1429 #define g_static_mutex_get_mutex(mutex) \
1430   (g_thread_use_default_impl ? ((GMutex*) &((mutex)->static_mutex)) : \
1431    g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
1432 _______EOF
1433         else
1434                 cat >>$outfile <<_______EOF
1435 $g_enable_threads_def G_THREADS_ENABLED
1436 #define G_THREADS_IMPL_$g_threads_impl_def
1437 typedef struct _GMutex* GStaticMutex;
1438 #define G_STATIC_MUTEX_INIT NULL
1439 #define g_static_mutex_get_mutex(mutex) (g_static_mutex_get_mutex_impl (mutex))
1440 _______EOF
1441         fi
1442
1443         cat >>$outfile <<_______EOF
1444 /* This represents a system thread as used by the implementation. An
1445  * alien implementaion, as loaded by g_thread_init can only count on
1446  * "sizeof (gpointer)" bytes to store their info. We however need more
1447  * for some of our native implementations. */
1448 typedef union _GSystemThread GSystemThread;
1449 union _GSystemThread
1450 {
1451   char   data[$g_system_thread_sizeof];
1452   double dummy_double;
1453   void  *dummy_pointer;
1454   long   dummy_long;
1455 };
1456 _______EOF
1457
1458         echo >>$outfile
1459         g_bit_sizes="16 32"
1460         if test -n "$gint64"; then
1461           g_bit_sizes="$g_bit_sizes 64"
1462         fi
1463         for bits in $g_bit_sizes; do
1464           cat >>$outfile <<_______EOF
1465 #define GINT${bits}_TO_${g_bs_native}(val)      ((gint${bits}) (val))
1466 #define GUINT${bits}_TO_${g_bs_native}(val)     ((guint${bits}) (val))
1467 #define GINT${bits}_TO_${g_bs_alien}(val)       ((gint${bits}) GUINT${bits}_SWAP_LE_BE (val))
1468 #define GUINT${bits}_TO_${g_bs_alien}(val)      (GUINT${bits}_SWAP_LE_BE (val))
1469 _______EOF
1470         done
1471
1472         cat >>$outfile <<_______EOF
1473 #define GLONG_TO_LE(val)        ((glong) GINT${glongbits}_TO_LE (val))
1474 #define GULONG_TO_LE(val)       ((gulong) GUINT${glongbits}_TO_LE (val))
1475 #define GLONG_TO_BE(val)        ((glong) GINT${glongbits}_TO_BE (val))
1476 #define GULONG_TO_BE(val)       ((gulong) GUINT${glongbits}_TO_BE (val))
1477 #define GINT_TO_LE(val)         ((gint) GINT${gintbits}_TO_LE (val))
1478 #define GUINT_TO_LE(val)        ((guint) GUINT${gintbits}_TO_LE (val))
1479 #define GINT_TO_BE(val)         ((gint) GINT${gintbits}_TO_BE (val))
1480 #define GUINT_TO_BE(val)        ((guint) GUINT${gintbits}_TO_BE (val))
1481 #define G_BYTE_ORDER $g_byte_order
1482
1483 _______EOF
1484
1485         if test -r glibconfig-sysdefs.h; then
1486           cat glibconfig-sysdefs.h >>$outfile
1487         fi
1488
1489         cat >>$outfile <<_______EOF
1490
1491 G_END_DECLS
1492
1493 #endif /* GLIBCONFIG_H */
1494 _______EOF
1495
1496
1497         if cmp -s $outfile glibconfig.h; then
1498           echo glibconfig.h is unchanged
1499           rm -f $outfile
1500         else
1501           mv $outfile glibconfig.h
1502         fi ;;
1503 esac
1504 ],[
1505
1506 # Note that if two cases are the same, case goes with the first one.
1507 # Note also that this is inside an AC_OUTPUT_COMMAND.  We do not depend
1508 # on variable expansion in case labels.  Look at the generated config.status
1509 # for a hint.
1510
1511 glib_header_alloca_h="$ac_cv_header_alloca_h"
1512
1513 case xyes in
1514 x$ac_cv_header_float_h)
1515   glib_float_h=yes
1516   glib_mf=FLT_MIN glib_Mf=FLT_MAX
1517   glib_md=DBL_MIN glib_Md=DBL_MAX
1518   ;;
1519 x$ac_cv_header_values_h)
1520   glib_values_h=yes
1521   glib_mf=MINFLOAT  glib_Mf=MAXFLOAT
1522   glib_md=MINDOUBLE glib_Md=MAXDOUBLE
1523   ;;
1524 esac
1525
1526 case xyes in
1527 x$ac_cv_header_limits_h)
1528   glib_limits_h=yes
1529   glib_ms=SHRT_MIN glib_Ms=SHRT_MAX glib_Mus=USHRT_MAX
1530   glib_mi=INT_MIN  glib_Mi=INT_MAX  glib_Mui=UINT_MAX
1531   glib_ml=LONG_MIN glib_Ml=LONG_MAX glib_Mul=ULONG_MAX
1532   ;;
1533 x$ac_cv_header_values_h)
1534   glib_values_h=yes
1535   glib_ms=MINSHORT glib_Ms=MAXSHORT glib_Mus="(((gushort)G_MAXSHORT)*2+1)"
1536   glib_mi=MININT   glib_Mi=MAXINT   glib_Mui="(((guint)G_MAXINT)*2+1)"
1537   glib_ml=MINLONG  glib_Ml=MAXLONG  glib_Mul="(((gulong)G_MAXLONG)*2+1)"
1538   ;;
1539 esac
1540
1541 if test x$ac_cv_header_sys_poll_h = xyes ; then
1542   glib_sys_poll_h=yes
1543 fi
1544
1545 case 2 in
1546 $ac_cv_sizeof_short)            
1547   gint16=short
1548   gint16_format='"hi"'
1549   guint16_format='"hu"'
1550   ;;
1551 $ac_cv_sizeof_int)              
1552   gint16=int
1553   gint16_format='"i"'
1554   guint16_format='"u"'
1555   ;;
1556 esac
1557 case 4 in
1558 $ac_cv_sizeof_short)            
1559   gint32=short
1560   gint32_format='"hi"'
1561   guint32_format='"hu"'
1562   ;;
1563 $ac_cv_sizeof_int)              
1564   gint32=int
1565   gint32_format='"i"'
1566   guint32_format='"u"'
1567   ;;
1568 $ac_cv_sizeof_long)             
1569   gint32=long
1570   gint32_format='"li"'
1571   guint32_format='"lu"'
1572   ;;
1573 esac
1574 case 8 in
1575 $ac_cv_sizeof_int)
1576   gint64=int
1577   gint64_format='"i"'
1578   guint64_format='"u"'
1579   glib_extension=
1580   gint64_constant='(val)'
1581   ;;
1582 $ac_cv_sizeof_long)
1583   gint64=long
1584   gint64_format='"li"'
1585   guint64_format='"lu"'
1586   glib_extension=
1587   gint64_constant='(val##L)'
1588   ;;
1589 $ac_cv_sizeof_long_long)
1590   gint64='long long'
1591   if test -n "$glib_cv_long_long_format"; then
1592     gint64_format='"'$glib_cv_long_long_format'i"'
1593     guint64_format='"'$glib_cv_long_long_format'u"'
1594   fi
1595   glib_extension='G_GNUC_EXTENSION '
1596   gint64_constant='(G_GNUC_EXTENSION (val##LL))'
1597   ;;
1598 esac
1599 glib_size_t=$glib_cv_sizeof_size_t
1600
1601 gintbits=`expr $ac_cv_sizeof_int \* 8`
1602 glongbits=`expr $ac_cv_sizeof_long \* 8`
1603
1604
1605 case $ac_cv_sizeof_void_p in
1606 $ac_cv_sizeof_int)      glib_gpi_cast=''        glib_gpui_cast=''         ;;
1607 $ac_cv_sizeof_long)     glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
1608 *)                      glib_unknown_void_p=yes ;;
1609 esac
1610
1611
1612 case xyes in
1613 x$ac_cv_func_atexit)
1614   glib_atexit="
1615 #ifdef NeXT /* @#%@! NeXTStep */
1616 # define g_ATEXIT(proc) (!atexit (proc))
1617 #else
1618 # define g_ATEXIT(proc) (atexit (proc))
1619 #endif"
1620   ;;
1621 x$ac_cv_func_on_exit)
1622   glib_atexit="
1623 #define g_ATEXIT(proc)  (on_exit ((void (*)(int, void*))(proc), NULL))"
1624   ;;
1625 esac
1626
1627 case xyes in
1628 x$ac_cv_func_memmove)
1629   glib_memmove='
1630 #define g_memmove(d,s,n) G_STMT_START { memmove ((d), (s), (n)); } G_STMT_END'
1631   ;;
1632 x$glib_cv_working_bcopy)
1633   glib_memmove="
1634 /* memmove isn't available, but bcopy can copy overlapping memory regions */
1635 #define g_memmove(d,s,n) G_STMT_START { bcopy ((s), (d), (n)); } G_STMT_END"
1636   ;;
1637 *)  
1638   glib_memmove="
1639 /* memmove isn't found and bcopy can't copy overlapping memory regions, 
1640  * so we have to roll our own copy routine. */
1641 void g_memmove (void* dest, const void * src, unsigned long len);"
1642   ;;
1643 esac
1644
1645 glib_defines="
1646 #define GLIB_MAJOR_VERSION $GLIB_MAJOR_VERSION
1647 #define GLIB_MINOR_VERSION $GLIB_MINOR_VERSION
1648 #define GLIB_MICRO_VERSION $GLIB_MICRO_VERSION
1649 "
1650
1651 case xyes in
1652 x$glib_cv_va_copy)      glib_vacopy='#define G_VA_COPY  va_copy' ;;
1653 x$glib_cv___va_copy)    glib_vacopy='#define G_VA_COPY  __va_copy' ;;
1654 *)                      glib_vacopy=''
1655 esac
1656
1657 if test x$glib_cv_va_val_copy = xno; then
1658   glib_vacopy="\$glib_vacopy
1659 #define G_VA_COPY_AS_ARRAY 1"
1660 fi
1661
1662 if test x$glib_cv_hasinline = xyes; then
1663     glib_inline='#define G_HAVE_INLINE 1'
1664 fi
1665 if test x$glib_cv_has__inline = xyes; then
1666     glib_inline="\$glib_inline
1667 #define G_HAVE___INLINE 1"
1668 fi
1669 if test x$glib_cv_has__inline__ = xyes; then
1670     glib_inline="\$glib_inline
1671 #define G_HAVE___INLINE__ 1"
1672 fi
1673
1674 case xyes in
1675 x$ac_cv_c_bigendian)
1676   g_byte_order=G_BIG_ENDIAN
1677   g_bs_native=BE
1678   g_bs_alien=LE
1679   ;;
1680 *)
1681   g_byte_order=G_LITTLE_ENDIAN
1682   g_bs_native=LE
1683   g_bs_alien=BE
1684   ;;
1685 esac
1686
1687 g_have_eilseq=$have_eilseq
1688
1689 case x$have_threads in
1690 xnone)  g_enable_threads_def="#undef";;
1691 *)      g_enable_threads_def="#define";;
1692 esac
1693
1694 g_threads_impl_def=$g_threads_impl
1695
1696 g_mutex_has_default="$mutex_has_default"
1697 g_mutex_sizeof="$glib_cv_sizeof_gmutex"
1698 g_system_thread_sizeof="$glib_cv_sizeof_system_thread"
1699 g_mutex_contents="$glib_cv_byte_contents_gmutex"
1700
1701 case $host in
1702   *-*-beos*)
1703     glib_os="#define G_OS_BEOS"
1704     ;;
1705   *-*-cygwin*)
1706     glib_os="#define G_OS_UNIX
1707 #define G_WITH_CYGWIN"
1708 v    ;;
1709   *)
1710     glib_os="#define G_OS_UNIX"
1711     ;;
1712 esac
1713 ])
1714
1715 AC_OUTPUT([
1716 glib-2.0.pc
1717 gmodule-2.0.pc
1718 gthread-2.0.pc
1719 gobject-2.0.pc
1720 glib.spec
1721 Makefile
1722 glib-config-2.0
1723 build/Makefile
1724 build/win32/Makefile
1725 gmodule/gmoduleconf.h
1726 gmodule/Makefile
1727 gobject/Makefile
1728 gthread/Makefile
1729 docs/Makefile
1730 docs/glib-config.1
1731 docs/reference/Makefile
1732 docs/reference/glib/Makefile
1733 docs/reference/gobject/Makefile
1734 tests/Makefile
1735 ],[case "$CONFIG_FILES" in
1736 *glib-config-2.0*)chmod +x glib-config-2.0;;
1737 esac
1738 echo ""
1739 echo " *** IMPORTANT *** "
1740 echo ""
1741 echo "This is a development version of GLib.  You should be using a stable"
1742 echo "version, which is available at ftp://ftp.gtk.org/pub/gtk/v1.2/.  The"
1743 echo "version you just configured is meant for developers of GLib only:"
1744 echo ""
1745 echo "  * You should not base stable software on this version of GLib."
1746 echo "  * GNOME developers should use a stable version of GLib."
1747 echo ""
1748 echo "If you install this version of GLib, we strongly recommend that you"
1749 echo "install it in a different prefix than GLib 1.2.  Use --prefix as an"
1750 echo "argument to configure to do this.  Otherwise, you will not be able to"
1751 echo "do development with GLib 1.2 any longer."
1752 echo ""
1753 echo " *** You should be using GLib 1.2 instead. ***"
1754 ])