# we rewrite this file
rm -f glibconfig-sysdefs.h
-dnl we need to AC_DIVERT_PUSH/AC_DIVERT_POP these variable definitions so they
-dnl are available for $ac_help expansion (don't we all *love* autoconf?)
-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+GLIB_DIVERT_BEFORE_HELP([
#
# The following version number definitions apply to GLib, GModule, GObject and GThread
# as a whole, so if changes occoured in any of them, they are all
GLIB_INTERFACE_AGE=0
GLIB_BINARY_AGE=0
GLIB_VERSION=$GLIB_MAJOR_VERSION.$GLIB_MINOR_VERSION.$GLIB_MICRO_VERSION
-dnl
-AC_DIVERT_POP()dnl
+])dnl
AC_SUBST(GLIB_MAJOR_VERSION)
AC_SUBST(GLIB_MINOR_VERSION)
esac
AC_MSG_RESULT([$glib_native_beos])
-dnl figure debugging default, prior to $ac_help setup
dnl
-AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
+
+GLIB_DIVERT_BEFORE_HELP([
+# figure debugging default, prior to $ac_help setup
if test `expr $GLIB_MINOR_VERSION \% 2` = 1 ; then
- debug_default=yes
+ debug_default=yes
else
- debug_default=minimum
-fi
-AC_DIVERT_POP()dnl
+ debug_default=minimum
+fi[]dnl
+])
dnl declare --enable-* args and collect ac_help strings
AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default)
# long long is a 64 bit integer.
AC_MSG_CHECKING(for format to printf and scanf a gint64)
AC_CACHE_VAL(glib_cv_long_long_format,[
- AC_TRY_RUN([#include <stdio.h>
+ for format in ll q; do
+ AC_TRY_RUN([#include <stdio.h>
int main()
{
long long b, a = -0x3AFAFAFAFAFAFAFALL;
char buffer[1000];
- sprintf (buffer, "%llu", a);
- sscanf (buffer, "%llu", &b);
+ sprintf (buffer, "%${format}u", a);
+ sscanf (buffer, "%${format}u", &b);
exit (b!=a);
}
],
- glib_cv_long_long_format=ll,
- glib_cv_long_long_format=q)])
- AC_MSG_RESULT(%${glib_cv_long_long_format}i)
+ glib_cv_long_long_format=${format}
+ break)
+ done])
+ if test -n "$glib_cv_long_long_format"; then
+ AC_MSG_RESULT(%${glib_cv_long_long_format}i)
+ else
+ AC_MSG_RESULT(none)
+ fi
fi
dnl long doubles were not used, and a portability problem
AC_C_BIGENDIAN
# check for header files
-AC_CHECK_HEADERS(float.h, AC_DEFINE(HAVE_FLOAT_H))
-AC_CHECK_HEADERS(limits.h, AC_DEFINE(HAVE_LIMITS_H))
-AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
-AC_CHECK_HEADERS(sys/param.h, AC_DEFINE(HAVE_SYS_PARAM_H))
-AC_CHECK_HEADERS(sys/poll.h, AC_DEFINE(HAVE_SYS_POLL_H))
-AC_CHECK_HEADERS(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H))
-AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
-AC_CHECK_HEADERS(sys/times.h, AC_DEFINE(HAVE_SYS_TIMES_H))
-AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H))
-AC_CHECK_HEADERS(values.h, AC_DEFINE(HAVE_VALUES_H))
-AC_CHECK_HEADERS(stdint.h, AC_DEFINE(HAVE_VALUES_H))
+AC_CHECK_HEADERS([float.h limits.h pwd.h sys/param.h sys/poll.h sys/select.h])
+AC_CHECK_HEADERS([sys/time.h sys/times.h unistd.h values.h stdint.h])
AC_MSG_CHECKING(whether make is GNU Make)
STRIP_BEGIN=
return realloc (0, sizeof (int)) == 0;
}],
glib_cv_sane_realloc=yes
- AC_DEFINE(REALLOC_0_WORKS)
,
glib_cv_sane_realloc=no
,)
])
+if test x$glib_cv_sane_realloc = xyes; then
+ AC_DEFINE(REALLOC_0_WORKS)
+fi
AC_MSG_RESULT($glib_cv_sane_realloc)
dnl Check for nl_langinfo and CODESET
dnl *** dlopen() and dlsym() in system libraries
if test -z "$G_MODULE_IMPL"; then
AC_CHECK_FUNC(dlopen,
- AC_CHECK_FUNC(dlsym,
- G_MODULE_IMPL=G_MODULE_IMPL_DL
- ,)
- ,)
+ [AC_CHECK_FUNC(dlsym,
+ [G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
+ [])
fi
dnl *** load_image (BeOS)
if test -z "$G_MODULE_IMPL" -a "x$glib_native_beos" = "xyes"; then
G_MODULE_IMPL=G_MODULE_IMPL_BEOS
,)
fi
-dnl *** dlopen() and dlsym() in libdl
+# *** dlopen() and dlsym() in libdl
if test -z "$G_MODULE_IMPL"; then
AC_CHECK_LIB(dl, dlopen,
- AC_CHECK_LIB(dl, dlsym,
- G_MODULE_LIBS=-ldl
- G_MODULE_IMPL=G_MODULE_IMPL_DL
- ,)
- ,)
+ [AC_CHECK_LIB(dl, dlsym,
+ [G_MODULE_LIBS=-ldl
+ G_MODULE_IMPL=G_MODULE_IMPL_DL],[])],
+ [])
fi
dnl *** shl_load() in libdld (HP-UX)
if test -z "$G_MODULE_IMPL"; then
fi
-dnl determination of G_THREAD_LIBS
-dnl ******************************
+dnl determination of G_THREAD_CFLAGS
+dnl ********************************
G_THREAD_LIBS=
G_THREAD_LIBS_EXTRA=
G_THREAD_CFLAGS=
+if test x"$have_threads" != xnone; then
+
+ G_THREAD_CFLAGS="-D_REENTRANT" # good default guess
+
+ case $host in
+ *-aix*)
+ G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
+ if test x"$GCC" = xyes; then
+ G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
+ fi
+ ;;
+ *-freebsd2.2*)
+ G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
+
+ # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
+ # -mthreads flag.
+ ;;
+ *-sysv5uw7*) # UnixWare 7
+ if test "$GCC" != "yes"; then
+ G_THREAD_CFLAGS="$G_THREAD_CFLAGS -Kthread"
+ else
+ G_THREAD_CFLAGS="$G_THREAD_CFLAGS -pthread"
+ fi
+ ;;
+ esac
+
+ # if we are not finding the ctime_r function, then we probably are
+ # not using the proper multithread flag
+
+ glib_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
+
+ # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
+ AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
+ AC_MSG_WARN($FLAG_DOES_NOT_WORK))
+
+ CPPFLAGS="$glib_save_CPPFLAGS"
+
+ AC_MSG_CHECKING(thread related cflags)
+ AC_MSG_RESULT($G_THREAD_CFLAGS)
+ CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
+fi
+
+dnl determination of G_THREAD_LIBS
+dnl ******************************
+
mutex_has_default=no
case $have_threads in
posix|dce)
- G_THREAD_LIBS=error
- glib_save_LIBS="$LIBS"
+ G_THREAD_LIBS=error
+ glib_save_LIBS="$LIBS"
+ case $host in
+ *-sysv5uw7*) # UnixWare 7
+ if test "$GCC" != "yes"; then
+ G_THREAD_LIBS="-Kthread"
+ else
+ G_THREAD_LIBS="-pthread"
+ fi
+ ;;
+ *)
for thread_lib in "" pthread pthreads c_r thread dce; do
if test x"$thread_lib" = x; then
add_thread_lib=""
break],
[AC_MSG_RESULT(no)])
done
+ if test "x$G_THREAD_LIBS" = xerror; then
+ AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2)
+ fi
for thread_lib in "" rt; do
if test x"$thread_lib" = x; then
add_thread_lib=""
[AC_MSG_RESULT(no)])
done
LIBS="$glib_save_LIBS"
- mutex_has_default=yes
- mutex_default_type='pthread_mutex_t'
- mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
- mutex_header_file='pthread.h'
- if test "x$have_threads" = "xposix"; then
- g_threads_impl="POSIX"
- else
- g_threads_impl="DCE"
- have_threads="posix"
- fi
- AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
- ;;
+ ;;
+ esac
+ mutex_has_default=yes
+ mutex_default_type='pthread_mutex_t'
+ mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
+ mutex_header_file='pthread.h'
+ if test "x$have_threads" = "xposix"; then
+ g_threads_impl="POSIX"
+ else
+ g_threads_impl="DCE"
+ have_threads="posix"
+ fi
+ AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
+ ;;
solaris)
- G_THREAD_LIBS=error
- AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
- mutex_has_default=yes
- mutex_default_type='mutex_t'
- mutex_default_init="DEFAULTMUTEX"
- mutex_header_file='thread.h'
- g_threads_impl="SOLARIS"
- ;;
+ G_THREAD_LIBS=error
+ AC_CHECK_LIB(thread, cond_init, G_THREAD_LIBS="-lthread")
+ mutex_has_default=yes
+ mutex_default_type='mutex_t'
+ mutex_default_init="DEFAULTMUTEX"
+ mutex_header_file='thread.h'
+ g_threads_impl="SOLARIS"
+ ;;
none)
- g_threads_impl="NONE"
- ;;
+ g_threads_impl="NONE"
+ ;;
*)
- g_threads_impl="NONE"
- G_THREAD_LIBS=error
- ;;
+ g_threads_impl="NONE"
+ G_THREAD_LIBS=error
+ ;;
esac
if test "x$G_THREAD_LIBS" = xerror; then
AC_MSG_CHECKING(thread related libraries)
AC_MSG_RESULT($G_THREAD_LIBS)
-dnl determination of G_THREAD_CFLAGS
-dnl ********************************
-
-if test x"$enable_threads" = xyes; then
-
- G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_REENTRANT" # good default guess
-
- case $host in
- *-aix*)
- G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
- if test x"$GCC" = xyes; then
- G_THREAD_CFLAGS="$G_THREAD_CFLAGS -mthreads"
- fi
- ;;
- *-freebsd2.2*)
- G_THREAD_CFLAGS="$G_THREAD_CFLAGS -D_THREAD_SAFE"
-
- # FreeBSD 2.2.x shiped with gcc 2.7.2.x, which doesn't support
- # -mthreads flag.
- ;;
- esac
-
- # if we are not finding the ctime_r function, then we probably are
- # not using the proper multithread flag
- old_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $G_THREAD_CFLAGS"
- # Note: Digital UNIX 4.0d #defines ctime_r to _Pctime_r for gcc.
- AC_EGREP_HEADER([[^a-zA-Z_](_P)?ctime_r[^a-zA-Z_]], time.h, ,
- G_THREAD_CFLAGS=
- AC_MSG_WARN($FLAG_DOES_NOT_WORK))
- CPPFLAGS=$old_CPPFLAGS
-
- AC_MSG_CHECKING(thread related cflags)
-
- AC_MSG_RESULT($G_THREAD_CFLAGS)
-else
- G_THREAD_CFLAGS=
-fi
-
dnl check for mt safe function variants and some posix functions
dnl ************************************************************
-if test x"$enable_threads" = xyes; then
+if test x"$have_threads" != xnone; then
glib_save_LIBS="$LIBS"
- glib_save_CFLAGS="$CFLAGS"
# we are not doing the following for now, as this might require glib
# to always be linked with the thread libs on some platforms.
# LIBS="$LIBS $G_THREAD_LIBS"
- CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
AC_CHECK_FUNCS(localtime_r)
if test "$ac_cv_header_pwd_h" = "yes"; then
AC_MSG_CHECKING([for getpwuid_r])
int main () { char buffer[10000], *pointer;
char getpwuid_r (long, void*, void*,
int, void*);
+ int error;
errno = 0;
- getpwuid_r (0, &buffer, &buffer,
+ error = getpwuid_r (0, &buffer, &buffer,
sizeof (buffer), &pointer);
- return errno == ENOSYS;}],
+ return errno == ENOSYS || error == ENOSYS;}],
[ac_cv_func_getpwuid_r=yes],
[ac_cv_func_getpwuid_r=no])])
if test "$ac_cv_func_getpwuid_r" = yes; then
fi
LIBS="$glib_save_LIBS"
- CFLAGS="$glib_save_CFLAGS"
# now spit out all the warnings.
if test "$ac_cv_func_getpwuid_r" != "yes"; then
AC_SUBST(G_THREAD_LIBS)
AC_SUBST(G_THREAD_LIBS_EXTRA)
-CFLAGS="$CFLAGS $G_THREAD_CFLAGS"
-
dnl **********************************************
dnl *** GDefaultMutex setup and initialization ***
dnl **********************************************
cat > $outfile <<\_______EOF
/* glibconfig.h
*
- * This is a generated file. Please modify `configure.in'
+ * This is a generated file. Please modify 'configure.in'
*/
-#ifndef GLIBCONFIG_H
-#define GLIBCONFIG_H
+#ifndef __G_LIBCONFIG_H__
+#define __G_LIBCONFIG_H__
+
+#include <gmacros.h>
_______EOF
if test x$glib_values_h = xyes; then
echo '#include <values.h>' >> $outfile
fi
- if test x$g_mutex_header_file != x; then
- echo '#include <'"$g_mutex_header_file"'>' >> $outfile
- fi
if test "$glib_header_alloca_h" = "yes"; then
- echo '#include <alloca.h>' >> $outfile
+ echo '#define GLIB_HAVE_ALLOCA_H' >> $outfile
fi
if test x$glib_sys_poll_h = xyes; then
echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
cat >> $outfile <<_______EOF
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
#define G_MINFLOAT $glib_mf
#define G_MAXFLOAT $glib_Mf
${glib_extension}typedef signed $gint64 gint64;
${glib_extension}typedef unsigned $gint64 guint64;
+#define G_GINT64_CONSTANT(val) $gint64_constant
+_______EOF
+ if test -n "$gint64_format"; then
+ cat >>$outfile <<_______EOF
#define G_GINT64_FORMAT $gint64_format
#define G_GUINT64_FORMAT $guint64_format
-#define G_GINT64_CONSTANT(val) $gint64_constant
-
_______EOF
+ fi
fi
case x$glib_size_t in
struct _GStaticMutex
{
struct _GMutex *runtime_mutex;
- union {
- char pad[$g_mutex_sizeof];
- double dummy_double;
- void *dummy_pointer;
- long dummy_long;
- } aligned_pad_u;
+ struct {
+ union {
+ char pad[$g_mutex_sizeof];
+ double dummy_double;
+ void *dummy_pointer;
+ long dummy_long;
+ } mutex;
+ void *debug_info;
+ } static_mutex;
};
-#define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
+#define G_STATIC_MUTEX_INIT { NULL, { { { $g_mutex_contents} }, NULL } }
#define g_static_mutex_get_mutex(mutex) \
- (g_thread_use_default_impl ? ((GMutex*) &((mutex)->aligned_pad_u)) : \
+ (g_thread_use_default_impl ? ((GMutex*) &((mutex)->static_mutex)) : \
g_static_mutex_get_mutex_impl (&((mutex)->runtime_mutex)))
_______EOF
else
cat >>$outfile <<_______EOF
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+G_END_DECLS
#endif /* GLIBCONFIG_H */
_______EOF
;;
$ac_cv_sizeof_long_long)
gint64='long long'
- gint64_format='"'$glib_cv_long_long_format'i"'
- guint64_format='"'$glib_cv_long_long_format'u"'
+ if test -n "$glib_cv_long_long_format"; then
+ gint64_format='"'$glib_cv_long_long_format'i"'
+ guint64_format='"'$glib_cv_long_long_format'u"'
+ fi
glib_extension='G_GNUC_EXTENSION '
gint64_constant='(G_GNUC_EXTENSION (val##LL))'
;;
;;
esac
-case x$enable_threads in
-xyes) g_enable_threads_def="#define";;
-*) g_enable_threads_def="#undef ";;
+case x$have_threads in
+xnone) g_enable_threads_def="#undef";;
+*) g_enable_threads_def="#define";;
esac
g_threads_impl_def=$g_threads_impl