# if backwards compatibility has been broken,
# set glib_binary_age _and_ glib_interface_age to 0.
#
+# remember to add a GLIB_VERSION_2_xx macro every time the minor version is
+# bumped, as well as the GLIB_DEPRECATED_IN and GLIB_AVAILABLE_IN macros
+# for that version - see gversion.h for further information.
+#
# in easier to understand terms:
#
# <mclasen> on the stable branch, interface age == micro
# <mclasen> on the unstable (ie master), interface age = 0
m4_define([glib_major_version], [2])
-m4_define([glib_minor_version], [31])
-m4_define([glib_micro_version], [17])
-m4_define([glib_interface_age], [0])
+m4_define([glib_minor_version], [32])
+m4_define([glib_micro_version], [2])
+m4_define([glib_interface_age], [2])
m4_define([glib_binary_age],
[m4_eval(100 * glib_minor_version + glib_micro_version)])
m4_define([glib_version],
AC_MSG_RESULT([$glib_have_carbon])
+glib_have_cocoa=no
+AC_MSG_CHECKING([for Mac OS X Cocoa support])
+AC_TRY_CPP([
+#include <Foundation/Foundation.h>
+], glib_have_cocoa=yes)
+
+AC_MSG_RESULT([$glib_have_cocoa])
+
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"])
+AM_CONDITIONAL(OS_COCOA, [test "$glib_have_cocoa" = "yes"])
if test "$glib_native_win32" = "yes"; then
AC_CHECK_TOOL(WINDRES, windres, no)
LDFLAGS="$LDFLAGS -framework Carbon"
fi
+if test "x$glib_have_cocoa" = "xyes"; then
+ AC_DEFINE(HAVE_COCOA, 1, [define to 1 if Cocoa is available])
+ LDFLAGS="$LDFLAGS -framework Foundation"
+fi
+
gl_GLIBC21
if test "x$GLIBC21" = "xyes"; then
AC_DEFINE([_GNU_SOURCE], 1, [Make all glibc extensions visible])
[AC_HELP_STRING([--disable-rebuilds],
[disable all source autogeneration rules])],,
[enable_rebuilds=yes])
+AC_ARG_ENABLE(modular_tests,
+ AC_HELP_STRING([--disable-modular-tests],
+ [Disable build of test programs (default: no)]),,
+ [enable_modular_tests=yes])
+AM_CONDITIONAL(BUILD_MODULAR_TESTS, test x$enable_modular_tests = xyes)
AC_MSG_CHECKING([whether to enable garbage collector friendliness])
if test "x$enable_gc_friendly" = "xyes"; then
AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2)
AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r)
-dnl don't use AC_CHECK_FUNCS here, otherwise HAVE_QSORT_R will
-dnl be automatically defined, which we don't want to do
-dnl until we have checked this function is actually usable
-AC_CHECK_FUNC([qsort_r])
-
-# BSD has a qsort_r with wrong argument order
-if test x$ac_cv_func_qsort_r = xyes ; then
- AC_CACHE_CHECK([if qsort_r uses glibc compatible argument order], glib_cv_have_qsort_r, [
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #define _GNU_SOURCE
- #include <stdlib.h>
-
- static int
- cmp (const void *a, const void *b, void *c)
- {
- const int *ia = a;
- const int *ib = b;
-
- if (*ia < *ib)
- return -1;
- else if (*ia > *ib)
- return 1;
- else
- return 0;
- }
-
- int
- main (int argc, char **argv)
- {
- int arr[3] = { 1, 2, 0 };
- int d = 3;
-
- qsort_r (arr, 3, sizeof (int), cmp, &d);
-
- if (arr[0] == 0 && arr[1] == 1 && arr[2] == 2)
- return 0;
- else
- return 1;
- }]])],[glib_cv_have_qsort_r=yes],[glib_cv_have_qsort_r=no],[glib_cv_have_qsort_r=no])])
-fi
-
-if test x$glib_cv_have_qsort_r = xyes ; then
- AC_DEFINE(HAVE_QSORT_R, 1, [Define to 1 if you have the 'qsort_r' function])
-fi
-
AC_CHECK_SIZEOF(char)
AC_CHECK_SIZEOF(short)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(__int64)
+AC_CACHE_CHECK([for sig_atomic_t], ac_cv_type_sig_atomic_t,
+ [AC_TRY_LINK([#include <signal.h>
+ #include <sys/types.h>
+ sig_atomic_t val = 42;],
+ [return val == 42 ? 0 : 1],
+ ac_cv_type_sig_atomic_t=yes,
+ ac_cv_type_sig_atomic_t=no)])
+if test x$ac_cv_type_sig_atomic_t = xyes; then
+ AC_DEFINE(HAVE_SIG_ATOMIC_T, 1,
+ [Define if you have the 'sig_atomic_t' type.])
+fi
+
if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 || test x$ac_cv_sizeof___int64 = x8 ; then
:
else
LDFLAGS="$LDFLAGS $G_MODULE_LDFLAGS"
dnl *** check for OSF1/5.0 RTLD_GLOBAL brokenness
echo "void glib_plugin_test(void) { }" > plugin.c
- ${SHELL} ./libtool --mode=compile ${CC} -shared \
- -export-dynamic -o plugin.o plugin.c 2>&1 >/dev/null
+ ${SHELL} ./libtool --mode=compile --tag=CC ${CC} ${CFLAGS} \
+ ${CPPFLAGS} -c -o plugin.lo plugin.c >/dev/null 2>&1
+ ${SHELL} ./libtool --mode=link --tag=CC ${CC} ${CFLAGS} \
+ ${LDFLAGS} -module -o plugin.la -export-dynamic \
+ -shrext ".o" -avoid-version plugin.lo \
+ -rpath /dont/care >/dev/null 2>&1
+ eval `./libtool --config | grep ^objdir`
AC_CACHE_CHECK([for RTLD_GLOBAL brokenness],
glib_cv_rtldglobal_broken,[
AC_TRY_RUN([
int main () {
void *handle, *global, *local;
global = &glib_plugin_test;
- handle = dlopen ("./.libs/plugin.o", RTLD_GLOBAL | RTLD_LAZY);
+ handle = dlopen ("./$objdir/plugin.o", RTLD_GLOBAL | RTLD_LAZY);
if (!handle) return 0;
local = dlsym (handle, "glib_plugin_test");
return global == local;
[glib_cv_rtldglobal_broken=no],
[glib_cv_rtldglobal_broken=yes],
[glib_cv_rtldglobal_broken=no])
- rm -f plugin.c plugin.o plugin.lo .libs/plugin.o
- rmdir .libs 2>/dev/null
+ rm -f plugin.c plugin.o plugin.lo plugin.la ${objdir}/plugin.*
+ rmdir ${objdir} 2>/dev/null
])
if test "x$glib_cv_rtldglobal_broken" = "xyes"; then
G_MODULE_BROKEN_RTLD_GLOBAL=1
dnl *** check for libelf ***
dnl ************************
-AC_CHECK_LIB([elf], [elf_begin], have_libelf=yes, have_libelf=no)
+PKG_CHECK_MODULES([LIBELF], [libelf], [have_libelf=yes], [have_libelf=maybe])
+
+if test $have_libelf = maybe; then
+ AC_CHECK_LIB([elf], [elf_begin], , [have_libelf=no])
+ AC_CHECK_LIB([elf], [elf_getshdrstrndx], , [have_libelf=no])
+ AC_CHECK_LIB([elf], [elf_getshdrnum], , [have_libelf=no])
+ AC_CHECK_HEADER([libelf.h], , [have_libelf=no])
+
+ if test $have_libelf != no; then
+ LIBELF_LIBS=-lelf
+ have_libelf = yes
+ fi
+fi
+
if test $have_libelf = yes; then
AC_DEFINE(HAVE_LIBELF, 1, [Define if libelf is available])
- ELF_LIBS=-lelf
fi
-AC_SUBST(ELF_LIBS)
dnl ****************************************
dnl *** platform dependent source checks ***
dnl *********************
dnl *** GRegex checks ***
dnl *********************
+
PCRE_REQUIRED_VERSION=8.11
-# Check if we should compile GRegex
-AC_ARG_ENABLE(regex, AC_HELP_STRING([--disable-regex],
- [disable the compilation of GRegex]),
-[case "${enableval}" in
- yes) enable_regex=true ;;
- no) enable_regex=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-regex) ;;
-esac],
-[enable_regex=true])
-
-AM_CONDITIONAL(ENABLE_REGEX, $enable_regex)
-
-if test x$enable_regex = xtrue; then
- AC_DEFINE(ENABLE_REGEX, [], [include GRegex])
- # Check if we should use the internal or the system-supplied pcre
- AC_ARG_WITH(pcre,
- [AC_HELP_STRING([--with-pcre=@<:@internal/system@:>@],
- [whether to use system PCRE [default=internal]])])
-
- AM_CONDITIONAL(USE_SYSTEM_PCRE, [test "x$with_pcre" = xsystem])
-
- if test "x$with_pcre" = xsystem; then
- PKG_CHECK_MODULES(PCRE,
- libpcre >= $PCRE_REQUIRED_VERSION)
- AC_CACHE_CHECK([for Unicode support in PCRE],glib_cv_pcre_has_unicode,[
- glib_save_CFLAGS="$CFLAGS"
- glib_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $PCRE_CFLAGS" LIBS="$PCRE_LIBS"
- AC_TRY_RUN([#include <pcre.h>
- int main () {
- int support;
- pcre_config (PCRE_CONFIG_UTF8, &support);
- if (!support)
- return 1;
- pcre_config (PCRE_CONFIG_UNICODE_PROPERTIES, &support);
- if (!support)
- return 1;
- return 0;
- }],
- glib_cv_pcre_has_unicode=yes,
- glib_cv_pcre_has_unicode=no,
- glib_cv_pcre_has_unicode=yes)
- CFLAGS="$glib_save_CFLAGS"
- LIBS="$glib_save_LIBS"
- ])
- if test "$glib_cv_pcre_has_unicode" = "no"; then
- AC_MSG_ERROR([*** The system-supplied PCRE does not support Unicode properties or UTF-8.])
- fi
- AC_SUBST(PCRE_CFLAGS)
- AC_SUBST(PCRE_LIBS)
- AC_DEFINE(USE_SYSTEM_PCRE, [], [using the system-supplied PCRE library])
- PCRE_REQUIRES=libpcre
- AC_SUBST(PCRE_REQUIRES)
- else
- # If using gcc 4 pass -Wno-pointer-sign when compiling the internal PCRE
- if test x"$GCC" = xyes; then
- AC_MSG_CHECKING([whether compiler understands -Wno-pointer-sign])
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Wno-pointer-sign"
- AC_TRY_COMPILE([],[],[PCRE_WARN_CFLAGS="$PCRE_WARN_CFLAGS -Wno-pointer-sign"
- AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
- CFLAGS="$save_CFLAGS"
- fi
+# Check if we should use the internal or the system-supplied pcre
+AC_ARG_WITH(pcre,
+ [AC_HELP_STRING([--with-pcre=@<:@internal/system@:>@],
+ [whether to use system PCRE [default=internal]])])
+
+AM_CONDITIONAL(USE_SYSTEM_PCRE, [test "x$with_pcre" = xsystem])
+
+if test "x$with_pcre" = xsystem; then
+ PKG_CHECK_MODULES(PCRE,
+ libpcre >= $PCRE_REQUIRED_VERSION)
+ AC_CACHE_CHECK([for Unicode support in PCRE],glib_cv_pcre_has_unicode,[
+ glib_save_CFLAGS="$CFLAGS"
+ glib_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $PCRE_CFLAGS" LIBS="$PCRE_LIBS"
+ AC_TRY_RUN([#include <pcre.h>
+ int main () {
+ int support;
+ pcre_config (PCRE_CONFIG_UTF8, &support);
+ if (!support)
+ return 1;
+ pcre_config (PCRE_CONFIG_UNICODE_PROPERTIES, &support);
+ if (!support)
+ return 1;
+ return 0;
+ }],
+ glib_cv_pcre_has_unicode=yes,
+ glib_cv_pcre_has_unicode=no,
+ glib_cv_pcre_has_unicode=yes)
+ CFLAGS="$glib_save_CFLAGS"
+ LIBS="$glib_save_LIBS"
+ ])
+ if test "$glib_cv_pcre_has_unicode" = "no"; then
+ AC_MSG_ERROR([*** The system-supplied PCRE does not support Unicode properties or UTF-8.])
fi
- AC_SUBST(PCRE_WARN_CFLAGS)
+ AC_SUBST(PCRE_CFLAGS)
+ AC_SUBST(PCRE_LIBS)
+ AC_DEFINE(USE_SYSTEM_PCRE, [], [using the system-supplied PCRE library])
+ PCRE_REQUIRES=libpcre
+ AC_SUBST(PCRE_REQUIRES)
else
- AM_CONDITIONAL(USE_SYSTEM_PCRE, false])
+ # If using gcc 4 pass -Wno-pointer-sign when compiling the internal PCRE
+ if test x"$GCC" = xyes; then
+ AC_MSG_CHECKING([whether compiler understands -Wno-pointer-sign])
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Wno-pointer-sign"
+ AC_TRY_COMPILE([],[],[PCRE_WARN_CFLAGS="$PCRE_WARN_CFLAGS -Wno-pointer-sign"
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ CFLAGS="$save_CFLAGS"
+ fi
fi
+AC_SUBST(PCRE_WARN_CFLAGS)
dnl **********************
dnl *** Win32 API libs ***
g_pollerr=$glib_cv_value_POLLERR
g_pollnval=$glib_cv_value_POLLNVAL
-g_af_unix=$glib_cv_value_AF_UNIX
+# If a family is not found on the system, define that family to
+# a negative value, picking a different one for each undefined
+# family (-1 for AF_UNIX, -2 for the next one, -3 ...)
+# This is needed because glib-mkenums doesn't handle optional
+# values in enums, and thus we have to have all existing values
+# defined in the enum.
+if test "x$glib_cv_value_AF_UNIX" != "x"; then
+ g_af_unix=$glib_cv_value_AF_UNIX
+else
+ g_af_unix=-1
+fi
g_af_inet=$glib_cv_value_AF_INET
g_af_inet6=$glib_cv_value_AF_INET6
fi
])
+# Redo enough to get guint32 and guint64 for the alignment checks below
+case 4 in
+$ac_cv_sizeof_short)
+ gint32=short
+ ;;
+$ac_cv_sizeof_int)
+ gint32=int
+ ;;
+$ac_cv_sizeof_long)
+ gint32=long
+ ;;
+esac
+case 8 in
+$ac_cv_sizeof_int)
+ gint64=int
+ ;;
+$ac_cv_sizeof_long)
+ gint64=long
+ ;;
+$ac_cv_sizeof_long_long)
+ gint64='long long'
+ ;;
+$ac_cv_sizeof___int64)
+ gint64='__int64'
+ ;;
+esac
+
+AC_CHECK_ALIGNOF([guint32], [AC_INCLUDES_DEFAULT
+typedef unsigned $gint32 guint32;])
+AC_CHECK_ALIGNOF([guint64], [AC_INCLUDES_DEFAULT
+typedef unsigned $gint64 guint64;])
+AC_CHECK_ALIGNOF([unsigned long])
+
# Check for libdbus1 - Optional - is only used in the GDBus test cases
#
# 1.2.14 required for dbus_message_set_serial
-PKG_CHECK_MODULES(DBUS1,
- dbus-1 >= 1.2.14,
- [AC_DEFINE(HAVE_DBUS1, 1, [Define if dbus-1 is available]) have_dbus1=yes],
- have_dbus1=no)
-AC_SUBST(DBUS1_CFLAGS)
-AC_SUBST(DBUS1_LIBS)
+if test x$enable_modular_tests = xyes; then
+ PKG_CHECK_MODULES(DBUS1,
+ dbus-1 >= 1.2.14,
+ [AC_DEFINE(HAVE_DBUS1, 1, [Define if dbus-1 is available]) have_dbus1=yes],
+ have_dbus1=no)
+ AC_SUBST(DBUS1_CFLAGS)
+ AC_SUBST(DBUS1_LIBS)
+fi
AM_CONDITIONAL(HAVE_DBUS1, [test "x$have_dbus1" = "xyes"])
dnl