#
m4_define([glib_major_version], [2])
m4_define([glib_minor_version], [17])
-m4_define([glib_micro_version], [3])
+m4_define([glib_micro_version], [7])
m4_define([glib_interface_age], [0])
m4_define([glib_binary_age],
[m4_eval(100 * glib_minor_version + glib_micro_version)])
dnl
AC_MSG_CHECKING([for Win32])
+LIB_EXE_MACHINE_FLAG=X86
case "$host" in
*-*-mingw*)
glib_native_win32=yes
glib_pid_type='void *'
+ glib_cv_stack_grows=no
# Unfortunately the mingw implementations of C99-style snprintf and vsnprintf
# don't seem to be quite good enough, at least not in mingw-runtime-3.14.
# (Sorry, I don't know exactly what is the problem, but it is related to
# So preset the autoconf cache variables.
ac_cv_func_vsnprintf_c99=no
ac_cv_func_snprintf_c99=no
+ case "$host" in
+ x86_64-*-*)
+ LIB_EXE_MACHINE_FLAG=X64
+ ;;
+ esac
;;
*)
glib_native_win32=no
AC_MSG_RESULT([$glib_native_win32])
+AC_SUBST(LIB_EXE_MACHINE_FLAG)
+
glib_have_carbon=no
AC_MSG_CHECKING([for Mac OS X Carbon support])
AC_TRY_CPP([
AC_MSG_RESULT([$glib_have_carbon])
AM_CONDITIONAL(OS_WIN32, [test "$glib_native_win32" = "yes"])
+AM_CONDITIONAL(OS_WIN32_X64, [test "$LIB_EXE_MACHINE_FLAG" = "X64"])
AM_CONDITIONAL(OS_UNIX, [test "$glib_native_win32" != "yes"])
AM_CONDITIONAL(OS_LINUX, [test "$glib_os_linux" = "yes"])
AM_CONDITIONAL(OS_CARBON, [test "$glib_have_carbon" = "yes"])
AC_MSG_RESULT($g_can_inline)
dnl *** check for working do while(0) macros ***
-AC_CACHE_CHECK([for working do while(0) macros], g_support_dowhile_macros, [
+AC_CACHE_CHECK([for working do while(0) macros], g_cv_support_dowhile_macros, [
AC_TRY_COMPILE([],[
#define STMT_START do
#define STMT_END while(0)
#define STMT_TEST STMT_START { i = 0; } STMT_END
int main(void) { int i = 1; STMT_TEST; return i; }],
- [g_support_dowhile_macros=yes],
- [g_support_dowhile_macros=no],
- [g_support_dowhile_macros=yes])
+ [g_cv_support_dowhile_macros=yes],
+ [g_cv_support_dowhile_macros=no],
+ [g_cv_support_dowhile_macros=yes])
])
-if test x$g_support_dowhile_macros = xyes; then
+if test x$g_cv_support_dowhile_macros = xyes; then
AC_DEFINE(HAVE_DOWHILE_MACROS, 1, [define for working do while(0) macros])
fi
# check for bytesex stuff
AC_C_BIGENDIAN
+if test x$ac_cv_c_bigendian = xuniversal ; then
+AC_TRY_COMPILE([#include <endian.h>], [#if __BYTE_ORDER == __BIG_ENDIAN
+#else
+#error Not a big endian.
+#endif],
+ ac_cv_c_bigendian=yes
+ ,AC_TRY_COMPILE([#include <endian.h>], [#if __BYTE_ORDER == __LITTLE_ENDIAN
+#else
+#error Not a little endian.
+#endif],
+ ac_cv_c_bigendian=no
+ ,AC_MSG_WARN([Could not determine endianness.])))
+fi
+
# check for header files
AC_CHECK_HEADERS([dirent.h float.h limits.h pwd.h grp.h sys/param.h sys/poll.h sys/resource.h])
# check for structure fields
AC_CHECK_MEMBERS([struct stat.st_mtimensec, struct stat.st_mtim.tv_nsec, struct stat.st_atimensec, struct stat.st_atim.tv_nsec, struct stat.st_ctimensec, struct stat.st_ctim.tv_nsec])
-AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_blocks, struct statfs.f_fstypename],,, [#include <sys/types.h>
+AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_blocks, struct statfs.f_fstypename, struct statfs.f_bavail],,, [#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <sys/statfs.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
$ac_cv_sizeof_long)
glib_size_type=long
;;
+ $ac_cv_sizeof_long_long)
+ glib_size_type='long long'
+ ;;
+ $ac_cv_sizeof__int64)
+ glib_size_type='__int64'
+ ;;
*) AC_MSG_ERROR([No type matching size_t in size])
;;
esac
if test x$glib_sys_poll_h = xyes; then
echo '#define GLIB_HAVE_SYS_POLL_H' >> $outfile
fi
+ if test x$glib_included_printf != xyes; then
+ echo "
+/* Specifies that GLib's g_print*() functions wrap the
+ * system printf functions. This is useful to know, for example,
+ * when using glibc's register_printf_function().
+ */" >> $outfile
+ echo '#define GLIB_USING_SYSTEM_PRINTF' >> $outfile
+ fi
cat >> $outfile <<_______EOF
#define GINT_TO_POINTER(i) ((gpointer) ${glib_gpi_cast} (i))
#define GUINT_TO_POINTER(u) ((gpointer) ${glib_gpui_cast} (u))
+
+typedef signed $glib_intptr_type_define gintptr;
+typedef unsigned $glib_intptr_type_define guintptr;
_______EOF
else
echo '#error SIZEOF_VOID_P unknown - This should never happen' >>$outfile
} static_mutex;
};
#define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
-#ifdef __cplusplus
#define g_static_mutex_get_mutex(mutex) \\
(g_thread_use_default_impl ? ((GMutex*) ((mutex)->static_mutex.pad)) : \\
g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
-#else
-#define g_static_mutex_get_mutex(mutex) \\
- (g_thread_use_default_impl ? ((GMutex*) (void*) ((mutex)->static_mutex.pad)) : \\
- g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
-#endif
_______EOF
else
cat >>$outfile <<_______EOF
#define G_MODULE_SUFFIX "$g_module_suffix"
+/* A GPid is an abstraction for a process "handle". It is *not* an
+ * abstraction for a process identifier in general. GPid is used in
+ * GLib only for descendant processes spawned with the g_spawn*
+ * functions. On POSIX there is no "process handle" concept as such,
+ * but on Windows a GPid is a handle to a process, a kind of pointer,
+ * not a process identifier.
+ */
typedef $g_pid_type GPid;
G_END_DECLS
glib_sys_poll_h=yes
fi
+if test x$enable_included_printf = xyes ; then
+ glib_included_printf=yes
+fi
+
case 2 in
$ac_cv_sizeof_short)
gint16=short
;;
esac
glib_size_t=$ac_cv_sizeof_size_t
-glib_size_type_define=$glib_size_type
-glib_void_p=$ac_cv_sizeof_long
-glib_long=$ac_cv_sizeof_void_p
+glib_size_type_define="$glib_size_type"
+glib_void_p=$ac_cv_sizeof_void_p
+glib_long=$ac_cv_sizeof_long
-case $glib_size_type in
+case "$glib_size_type" in
short)
gsize_modifier='"h"'
gsize_format='"hu"'
gssize_format='"li"'
glib_msize_type='LONG'
;;
+"long long"|__int64)
+ gsize_modifier='"I64"'
+ gsize_format='"I64u"'
+ gssize_format='"I64i"'
+ glib_msize_type='INT64'
+ ;;
esac
gintbits=`expr $ac_cv_sizeof_int \* 8`
glongbits=`expr $ac_cv_sizeof_long \* 8`
-
case $ac_cv_sizeof_void_p in
-$ac_cv_sizeof_int) glib_gpi_cast='' glib_gpui_cast='' ;;
-$ac_cv_sizeof_long) glib_gpi_cast='(glong)' glib_gpui_cast='(gulong)' ;;
-*) glib_unknown_void_p=yes ;;
+$ac_cv_sizeof_int)
+ glib_intptr_type_define=int
+ glib_gpi_cast=''
+ glib_gpui_cast=''
+ ;;
+$ac_cv_sizeof_long)
+ glib_intptr_type_define=long
+ glib_gpi_cast='(glong)'
+ glib_gpui_cast='(gulong)'
+ ;;
+$ac_cv_sizeof_long_long)
+ glib_intptr_type_define='long long'
+ glib_gpi_cast='(gint64)'
+ glib_gpui_cast='(guint64)'
+ ;;
+$ac_cv_sizeof___int64)
+ glib_intptr_type_define=__int64
+ glib_gpi_cast='(gint64)'
+ glib_gpui_cast='(guint64)'
+ ;;
+*)
+ glib_unknown_void_p=yes
+ ;;
esac
g_have_gnuc_visibility=$g_have_gnuc_visibility
g_have_sunstudio_visibility=$g_have_sunstudio_visibility
-case xyes in
-x$ac_cv_c_bigendian)
+if test x$ac_cv_c_bigendian = xyes; then
g_byte_order=G_BIG_ENDIAN
g_bs_native=BE
g_bs_alien=LE
- ;;
-*)
+else
g_byte_order=G_LITTLE_ENDIAN
g_bs_native=LE
g_bs_alien=BE
- ;;
-esac
+fi
g_pollin=$glib_cv_value_POLLIN
g_pollout=$glib_cv_value_POLLOUT