X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=d309f287fcfec1511ed54ba401f060eee61548d2;hb=95f7dc949135181dcefd69e6773f1488c02a79a9;hp=bf4d938a479ee9b536dc24d31649e7cb486a8def;hpb=211ed1775dfc514077984d0fea5d2529dcc5036e;p=platform%2Fupstream%2Fglib.git diff --git a/configure.ac b/configure.ac index bf4d938..d309f28 100644 --- a/configure.ac +++ b/configure.ac @@ -30,8 +30,8 @@ m4_define(glib_configure_ac) # on the unstable (ie master), interface age = 0 m4_define([glib_major_version], [2]) -m4_define([glib_minor_version], [35]) -m4_define([glib_micro_version], [3]) +m4_define([glib_minor_version], [37]) +m4_define([glib_micro_version], [5]) m4_define([glib_interface_age], [0]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) @@ -56,14 +56,14 @@ m4_define([glib_debug_default], AC_INIT(glib, [glib_version], [http://bugzilla.gnome.org/enter_bug.cgi?product=glib]) -AC_CONFIG_HEADER([config.h]) +AC_CONFIG_HEADERS([config.h]) AC_CONFIG_SRCDIR([glib/glib.h]) AC_CONFIG_MACRO_DIR([m4macros]) # Save this value here, since automake will set cflags later cflags_set=${CFLAGS+set} -AM_INIT_AUTOMAKE([1.11 no-define no-dist-gzip dist-xz tar-ustar]) +AM_INIT_AUTOMAKE([1.11 -Wno-portability no-define no-dist-gzip dist-xz tar-ustar]) AM_MAINTAINER_MODE([enable]) # Support silent build rules. Disable @@ -166,6 +166,17 @@ esac AC_MSG_RESULT([$glib_native_win32]) +AC_MSG_CHECKING([for the Android]) +case $host in + *android*) + glib_native_android="yes" + ;; + *) + glib_native_android="no" + ;; +esac +AC_MSG_RESULT([$glib_native_android]) + AC_SUBST(LIB_EXE_MACHINE_FLAG) glib_have_carbon=no @@ -210,16 +221,6 @@ AS_IF([test "$glib_native_win32" = "yes"], [ ]) AM_CONDITIONAL(MS_LIB_AVAILABLE, [test x$ms_librarian = xyes]) -if test "$glib_native_win32" != yes; then - # libtool option to control which symbols are exported - # right now, symbols starting with _ are not exported - LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^g.*"' -else - # We currently use .def files on Windows - LIBTOOL_EXPORT_OPTIONS= -fi -AC_SUBST(LIBTOOL_EXPORT_OPTIONS) - AS_IF([test "x$glib_have_carbon" = "xyes"], [ AC_DEFINE(HAVE_CARBON, 1, [define to 1 if Carbon is available]) LDFLAGS="$LDFLAGS -Wl,-framework,Carbon" @@ -253,11 +254,8 @@ AC_ARG_ENABLE(rebuilds, [AS_HELP_STRING([--disable-rebuilds], [disable all source autogeneration rules])],, [enable_rebuilds=yes]) -AC_ARG_ENABLE(modular_tests, - AS_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) + +GLIB_TESTS AC_MSG_CHECKING([whether to enable garbage collector friendliness]) AS_IF([test "x$enable_gc_friendly" = "xyes"], [ @@ -294,7 +292,6 @@ AC_TRY_COMPILE(,[class a { int b; } c;], ,CXX=) AM_CONDITIONAL(HAVE_CXX, [test "$CXX" != ""]) AC_LANG_RESTORE -AM_PROG_CC_STDC AM_PROG_CC_C_O AC_PROG_INSTALL @@ -382,7 +379,16 @@ if test "x$PERL_PATH" = x ; then fi AC_SUBST(PERL_PATH) -# Need suitable python path for greport +# option to specify python interpreter to use; this just sets $PYTHON, so that +# we will fallback to reading $PYTHON if --with-python is not given, and +# python.m4 will get the expected input +AC_ARG_WITH(python, + AS_HELP_STRING([--with-python=PATH], + [Path to Python interpreter; searches $PATH if only a program name is given; if not given, searches for a few standard names such as "python3" or "python2"]), + [PYTHON="$withval"], []) +if test x"$PYTHON" = xyes; then + AC_MSG_ERROR([--with-python option requires a path or program argument]) +fi AM_PATH_PYTHON(2.5,,PYTHON="/usr/bin/env python2.5") @@ -663,33 +669,6 @@ AS_IF([test x$glib_native_win32 != xyes && test x$ac_cv_sizeof_long_long = x8], AC_C_CONST -dnl ok, here we try to check whether the systems prototypes for -dnl malloc and friends actually match the prototypes provided -dnl by gmem.h (keep in sync). i currently only know how to check -dnl this reliably with gcc (-Werror), improvements for other -dnl compilers are apprechiated. -SANE_MALLOC_PROTOS=no -AC_MSG_CHECKING([if malloc() and friends prototypes are gmem.h compatible]) -glib_save_CFLAGS=$CFLAGS -AS_IF([test "x$GCC" = "xyes"], [ - CFLAGS="$CFLAGS -Werror" - AC_TRY_COMPILE([#include ], [ - void* (*my_calloc_p) (size_t, size_t) = calloc; - void* (*my_malloc_p) (size_t) = malloc; - void (*my_free_p) (void*) = free; - void* (*my_realloc_p) (void*, size_t) = realloc; - my_calloc_p = 0; - my_malloc_p = 0; - my_free_p = 0; - my_realloc_p = 0; - ], - AC_DEFINE(SANE_MALLOC_PROTOS, 1, - [Define if you have correct malloc prototypes]) - SANE_MALLOC_PROTOS=yes) -]) -AC_MSG_RESULT($SANE_MALLOC_PROTOS) -CFLAGS=$glib_save_CFLAGS - dnl dnl check in which direction the stack grows dnl @@ -901,6 +880,7 @@ AC_CHECK_HEADERS([sys/mount.h sys/sysctl.h], [], [], #include #endif ]) +AC_CHECK_FUNCS(sysctlbyname) AC_CHECK_HEADERS([xlocale.h]) @@ -933,7 +913,7 @@ AC_CHECK_FUNCS(setlocale) # check additional type sizes AC_CHECK_SIZEOF(size_t) -dnl Try to figure out whether gsize, gssize should be long or int +dnl Try to figure out whether gsize should be long or int AC_MSG_CHECKING([for the appropriate definition for size_t]) case $ac_cv_sizeof_size_t in @@ -990,10 +970,93 @@ int main () AC_MSG_RESULT(unsigned $glib_size_type) +AC_CHECK_SIZEOF(ssize_t) + +dnl Try to figure out whether gssize should be long or int +AC_MSG_CHECKING([for the appropriate definition for ssize_t]) + +case $ac_cv_sizeof_ssize_t in + $ac_cv_sizeof_short) + glib_ssize_type=short + ;; + $ac_cv_sizeof_int) + glib_ssize_type=int + ;; + $ac_cv_sizeof_long) + glib_ssize_type=long + ;; + $ac_cv_sizeof_long_long) + glib_ssize_type='long long' + ;; + $ac_cv_sizeof__int64) + glib_ssize_type='__int64' + ;; + *) AC_MSG_ERROR([No type matching ssize_t in size]) + ;; +esac + +dnl If int/long are the same size, we see which one produces +dnl warnings when used in the location as ssize_t. (This matters +dnl on Android where ssize_t is long and size_t is unsigned int) +dnl +AS_IF([test $ac_cv_sizeof_ssize_t = $ac_cv_sizeof_int && + test $ac_cv_sizeof_ssize_t = $ac_cv_sizeof_long], [ + GLIB_CHECK_COMPILE_WARNINGS([AC_LANG_SOURCE([[ +#if defined(_AIX) && !defined(__GNUC__) +#pragma options langlvl=stdc89 +#endif +#include +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +int main () +{ + ssize_t s = 1; + int *size_int = &s; + return (int)*size_int; +} + ]])],glib_ssize_type=int, + [GLIB_CHECK_COMPILE_WARNINGS([AC_LANG_SOURCE([[ +#if defined(_AIX) && !defined(__GNUC__) +#pragma options langlvl=stdc89 +#endif +#include +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +int main () +{ + ssize_t s = 1; + long *size_long = &s; + return (int)*size_long; +} + ]])],glib_ssize_type=long)]) +]) + +AC_MSG_RESULT($glib_ssize_type) + # Check for some functions AC_CHECK_FUNCS(lstat strerror strsignal memmove vsnprintf stpcpy strcasecmp strncasecmp poll getcwd vasprintf setenv unsetenv getc_unlocked readlink symlink fdwalk memmem) AC_CHECK_FUNCS(chown lchmod lchown fchmod fchown link utimes getgrgid getpwuid getresuid) -AC_CHECK_FUNCS(getmntent_r setmntent endmntent hasmntopt getfsstat getvfsstat) +AC_CHECK_FUNCS(getmntent_r setmntent endmntent hasmntopt getfsstat getvfsstat fallocate) # Check for high-resolution sleep functions AC_CHECK_FUNCS(splice) AC_CHECK_FUNCS(prlimit) @@ -1063,7 +1126,7 @@ if $glib_failed ; then AC_MSG_ERROR([Could not determine values for MSG_* constants]) fi -AC_CHECK_FUNCS(getprotobyname_r endservent if_nametoindex) +AC_CHECK_FUNCS(getprotobyname_r endservent if_nametoindex if_indextoname) AS_IF([test $glib_native_win32 = yes], [ # in the Windows SDK and in mingw-w64 has wrappers for @@ -1072,16 +1135,20 @@ AS_IF([test $glib_native_win32 = yes], [ AC_CHECK_HEADER([wspiapi.h], [WSPIAPI_INCLUDE="#include "]) AC_SUBST(WSPIAPI_INCLUDE) ], [ - AC_MSG_CHECKING([if arpa/nameser_compat.h is needed]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ], - [int qclass = C_IN;])], - [AC_MSG_RESULT([no])], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include - #include ], - [int qclass = C_IN;])], - [AC_MSG_RESULT([yes]) - NAMESER_COMPAT_INCLUDE="\#include "], - [AC_MSG_ERROR([could not compile test program either way])])]) + # Android does not have C_IN in public headers, we define it wherever necessary + AS_IF([test $glib_native_android != yes], [ + AC_MSG_CHECKING([if arpa/nameser_compat.h is needed]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include + #include ], + [int qclass = C_IN;])], + [AC_MSG_RESULT([no])], + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include + #include + #include ], + [int qclass = C_IN;])], + [AC_MSG_RESULT([yes]) + NAMESER_COMPAT_INCLUDE="#include "], + [AC_MSG_ERROR([could not compile test program either way])])])]) AC_SUBST(NAMESER_COMPAT_INCLUDE) # We can't just use AC_CHECK_FUNC/AC_CHECK_LIB here. Bug 586150 @@ -1114,6 +1181,19 @@ AS_IF([test $glib_native_win32 = yes], [ AC_CHECK_FUNC(socket, :, AC_CHECK_LIB(socket, socket, [NETWORK_LIBS="-lsocket $NETWORK_LIBS"], [AC_MSG_ERROR(Could not find socket())])) + save_libs="$LIBS" + LIBS="$LIBS $NETWORK_LIBS" + AC_MSG_CHECKING([for res_init]) + AC_TRY_LINK([#include + #include + #include + #include + ],[ + res_init(); + ],[AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_RES_INIT, 1, [Define to 1 if you have the 'res_init' function.]) + ],[AC_MSG_RESULT([no])]) + LIBS="$save_libs" ]) AC_SUBST(NETWORK_LIBS) @@ -1275,24 +1355,12 @@ AS_IF([test "$gtk_ok" = "yes"], [ fi ]) -dnl *** check for sane realloc() *** -AC_CACHE_CHECK([whether realloc (NULL,) will work],glib_cv_sane_realloc,[ - AC_TRY_RUN([#include - int main() { - return realloc (0, sizeof (int)) == 0; - }], - [glib_cv_sane_realloc=yes], - [glib_cv_sane_realloc=no], - [glib_cv_sane_realloc=yes]) -]) -AS_IF([test x$glib_cv_sane_realloc = xyes], [ - AC_DEFINE(REALLOC_0_WORKS,1,[whether realloc (NULL,) works]) -]) - dnl Check for nl_langinfo and CODESET +AC_LANG_SAVE +AC_LANG_C AC_CACHE_CHECK([for nl_langinfo (CODESET)],glib_cv_langinfo_codeset,[ - AC_TRY_COMPILE([#include ], - [char *codeset = nl_langinfo (CODESET);], + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [char *codeset = nl_langinfo (CODESET);])], [glib_cv_langinfo_codeset=yes], [glib_cv_langinfo_codeset=no])]) if test x$glib_cv_langinfo_codeset = xyes; then @@ -1301,8 +1369,8 @@ fi dnl Check for nl_langinfo and LC_TIME parts that are needed in gdatetime.c AC_CACHE_CHECK([for nl_langinfo (PM_STR)],glib_cv_langinfo_time,[ - AC_TRY_COMPILE([#include ], - [char *str; + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [char *str; str = nl_langinfo (PM_STR); str = nl_langinfo (D_T_FMT); str = nl_langinfo (D_FMT); @@ -1311,7 +1379,7 @@ AC_CACHE_CHECK([for nl_langinfo (PM_STR)],glib_cv_langinfo_time,[ str = nl_langinfo (MON_1); str = nl_langinfo (ABMON_12); str = nl_langinfo (DAY_1); - str = nl_langinfo (ABDAY_7);], + str = nl_langinfo (ABDAY_7);])], [glib_cv_langinfo_time=yes], [glib_cv_langinfo_time=no])]) if test x$glib_cv_langinfo_time = xyes; then @@ -1320,7 +1388,7 @@ fi dnl Check for nl_langinfo and _NL_CTYPE_OUTDIGITn_MB AC_CACHE_CHECK([for nl_langinfo (_NL_CTYPE_OUTDIGITn_MB)], glib_cv_langinfo_outdigit,[ - AC_TRY_COMPILE([#include ], + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], [char *str; str = nl_langinfo (_NL_CTYPE_OUTDIGIT0_MB); str = nl_langinfo (_NL_CTYPE_OUTDIGIT1_MB); @@ -1331,12 +1399,13 @@ AC_CACHE_CHECK([for nl_langinfo (_NL_CTYPE_OUTDIGITn_MB)], glib_cv_langinfo_outd str = nl_langinfo (_NL_CTYPE_OUTDIGIT6_MB); str = nl_langinfo (_NL_CTYPE_OUTDIGIT7_MB); str = nl_langinfo (_NL_CTYPE_OUTDIGIT8_MB); - str = nl_langinfo (_NL_CTYPE_OUTDIGIT9_MB);], + str = nl_langinfo (_NL_CTYPE_OUTDIGIT9_MB);])], [glib_cv_langinfo_outdigit=yes], [glib_cv_langinfo_outdigit=no])]) if test x$glib_cv_langinfo_outdigit = xyes; then AC_DEFINE(HAVE_LANGINFO_OUTDIGIT,1,[Have nl_langinfo (_NL_CTYPE_OUTDIGITn_MB)]) fi +AC_LANG_RESTORE dnl **************************************** dnl *** posix_memalign *** @@ -2173,14 +2242,20 @@ AS_IF([test x$have_threads = xposix], [ ]) g_threads_impl="POSIX" + AC_DEFINE([THREADS_POSIX], [1], [Use pthreads]) AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES) CPPFLAGS="$glib_save_CPPFLAGS" ], [test x$have_threads = xwin32], [ + AC_DEFINE([THREADS_WIN32], [1], [Use w32 threads]) g_threads_impl="WIN32" ], [ + AC_DEFINE([THREADS_NONE], [1], [Use no threads]) g_threads_impl="NONE" G_THREAD_LIBS=error ]) +AM_CONDITIONAL(THREADS_POSIX, [test "$g_threads_impl" = "POSIX"]) +AM_CONDITIONAL(THREADS_WIN32, [test "$g_threads_impl" = "WIN32"]) +AM_CONDITIONAL(THREADS_NONE, [test "$g_threads_impl" = "NONE"]) if test "x$G_THREAD_LIBS" = xerror; then AC_MSG_ERROR($LIBS_NOT_FOUND_1$have_threads$LIBS_NOT_FOUND_2) @@ -2308,6 +2383,24 @@ AS_IF([ test x"$have_threads" = xposix], [ AC_DEFINE(HAVE_PTHREAD_CONDATTR_SETCLOCK,1, [Have function pthread_condattr_setclock])], [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(for pthread_cond_timedwait_monotonic) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ], + [pthread_cond_timedwait_monotonic(NULL, NULL, NULL)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC,1, + [Have function pthread_cond_timedwait_monotonic])], + [AC_MSG_RESULT(no)]) + AC_MSG_CHECKING(for pthread_cond_timedwait_monotonic_np) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [#include ], + [pthread_cond_timedwait_monotonic_np(NULL, NULL, NULL)])], + [AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC_NP,1, + [Have function pthread_cond_timedwait_monotonic_np])], + [AC_MSG_RESULT(no)]) CPPFLAGS="$glib_save_CPPFLAGS" ]) @@ -2330,6 +2423,9 @@ fi # b) FreeBSD doesn't do this either. # case $host in + *android*) + G_THREAD_LIBS_FOR_GTHREAD="$G_THREAD_LIBS" + ;; *-*-freebsd*|*-*-linux*) G_THREAD_LIBS_FOR_GTHREAD="`echo $G_THREAD_LIBS | sed s/-pthread/-lpthread/`" ;; @@ -2372,7 +2468,7 @@ dnl dnl We can currently support the atomic ops natively when building GLib dnl with recent versions of GCC or MSVC. MSVC doesn't run ./configure, dnl so we skip that case here and define G_ATOMIC_LOCK_FREE exactly when -dnl we are using GCC. +dnl we are using GCC (and not mingw*). dnl dnl Note that the atomic ops are only available with GCC on x86 when dnl using -march=i486 or higher. If we detect that the atomic ops are @@ -2384,20 +2480,44 @@ dnl the user had the wrong build environment. dnl We may add other compilers here in the future... AC_CACHE_CHECK([for lock-free atomic intrinsics], glib_cv_g_atomic_lock_free, [ - AC_TRY_COMPILE([], - [__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;], - [glib_cv_g_atomic_lock_free=yes], - [glib_cv_g_atomic_lock_free=no])]) - -if test "$glib_cv_g_atomic_lock_free" = "no"; then - SAVE_CFLAGS="${CFLAGS}" - CFLAGS="-march=i486" - AC_TRY_COMPILE([], - [__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;], - [AC_MSG_ERROR([GLib must be build with -march=i486 or later.])], - []) - CFLAGS="${SAVE_CFLAGS}" -fi + case $host in + *-*-mingw*) + glib_cv_g_atomic_lock_free=yes + ;; + *) + AC_TRY_COMPILE([], + [volatile int atomic = 2;\ + __sync_bool_compare_and_swap (&atomic, 2, 3);], + [glib_cv_g_atomic_lock_free=yes], + [glib_cv_g_atomic_lock_free=no]) + if test "$glib_cv_g_atomic_lock_free" = "no"; then + SAVE_CFLAGS="${CFLAGS}" + CFLAGS="-march=i486" + AC_TRY_COMPILE([], + [volatile int atomic = 2;\ + __sync_bool_compare_and_swap (&atomic, 2, 3);], + [AC_MSG_ERROR([GLib must be build with -march=i486 or later.])], + []) + CFLAGS="${SAVE_CFLAGS}" + fi + ;; + esac]) + + +case $host in + *-*-mingw*) + ;; + *) + # Some compilers support atomic operations but do not define + # __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, like clang + if test x"$glib_cv_g_atomic_lock_free" = xyes; then + AC_TRY_COMPILE([], + [__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;], + [], + [AC_DEFINE(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, 1, [ compiler supports atomic operations])]) + fi + ;; + esac dnl We need a more robust approach here... case $host_cpu in @@ -2600,7 +2720,7 @@ dnl ****************************************************************** AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) -AS_IF([ test $cross_compiling = yes && test x$enable_modular_tests = xyes], [ +AS_IF([ test $cross_compiling = yes ], [ AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal, no) if test x$GLIB_GENMARSHAL = xno; then AC_MSG_ERROR(Could not find a glib-genmarshal in your PATH) @@ -2759,7 +2879,7 @@ AS_IF([ test "x$use_gcov" = "xyes"], [ AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) fi - ltp_version_list="1.6 1.7 1.8 1.9" + ltp_version_list="1.6 1.7 1.8 1.9 1.10" AC_CHECK_PROG(LTP, lcov, lcov) AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml) @@ -2924,19 +3044,21 @@ _______EOF #define GLIB_SIZEOF_VOID_P $glib_void_p #define GLIB_SIZEOF_LONG $glib_long #define GLIB_SIZEOF_SIZE_T $glib_size_t +#define GLIB_SIZEOF_SSIZE_T $glib_ssize_t _______EOF cat >>$outfile <<_______EOF -typedef signed $glib_size_type_define gssize; +typedef signed $glib_ssize_type_define gssize; typedef unsigned $glib_size_type_define gsize; #define G_GSIZE_MODIFIER $gsize_modifier -#define G_GSSIZE_FORMAT $gssize_format +#define G_GSSIZE_MODIFIER $gssize_modifier #define G_GSIZE_FORMAT $gsize_format +#define G_GSSIZE_FORMAT $gssize_format #define G_MAXSIZE G_MAXU$glib_msize_type -#define G_MINSSIZE G_MIN$glib_msize_type -#define G_MAXSSIZE G_MAX$glib_msize_type +#define G_MINSSIZE G_MIN$glib_mssize_type +#define G_MAXSSIZE G_MAX$glib_mssize_type typedef gint64 goffset; #define G_MINOFFSET G_MININT64 @@ -3102,9 +3224,9 @@ _______EOF #define GINT_TO_BE(val) ((gint) GINT${gintbits}_TO_BE (val)) #define GUINT_TO_BE(val) ((guint) GUINT${gintbits}_TO_BE (val)) #define GSIZE_TO_LE(val) ((gsize) GUINT${gsizebits}_TO_LE (val)) -#define GSSIZE_TO_LE(val) ((gssize) GINT${gsizebits}_TO_LE (val)) +#define GSSIZE_TO_LE(val) ((gssize) GINT${gssizebits}_TO_LE (val)) #define GSIZE_TO_BE(val) ((gsize) GUINT${gsizebits}_TO_BE (val)) -#define GSSIZE_TO_BE(val) ((gssize) GINT${gsizebits}_TO_BE (val)) +#define GSSIZE_TO_BE(val) ((gssize) GINT${gssizebits}_TO_BE (val)) #define G_BYTE_ORDER $g_byte_order #define GLIB_SYSDEF_POLLIN =$g_pollin @@ -3264,7 +3386,9 @@ $ac_cv_sizeof___int64) ;; esac glib_size_t=$ac_cv_sizeof_size_t +glib_ssize_t=$ac_cv_sizeof_ssize_t glib_size_type_define="$glib_size_type" +glib_ssize_type_define="$glib_ssize_type" glib_void_p=$ac_cv_sizeof_void_p glib_long=$ac_cv_sizeof_long @@ -3272,32 +3396,52 @@ case "$glib_size_type" in short) gsize_modifier='"h"' gsize_format='"hu"' - gssize_format='"hi"' glib_msize_type='SHRT' ;; int) gsize_modifier='""' gsize_format='"u"' - gssize_format='"i"' glib_msize_type='INT' ;; long) gsize_modifier='"l"' gsize_format='"lu"' - gssize_format='"li"' glib_msize_type='LONG' ;; "long long"|__int64) gsize_modifier='"I64"' gsize_format='"I64u"' - gssize_format='"I64i"' glib_msize_type='INT64' ;; esac +case "$glib_ssize_type" in +short) + gssize_modifier='"h"' + gssize_format='"hi"' + glib_mssize_type='SHRT' + ;; +int) + gssize_modifier='""' + gssize_format='"i"' + glib_mssize_type='INT' + ;; +long) + gssize_modifier='"l"' + gssize_format='"li"' + glib_mssize_type='LONG' + ;; +"long long"|__int64) + gssize_modifier='"I64"' + gssize_format='"I64i"' + glib_mssize_type='INT64' + ;; +esac + gintbits=`expr $ac_cv_sizeof_int \* 8` glongbits=`expr $ac_cv_sizeof_long \* 8` gsizebits=`expr $ac_cv_sizeof_size_t \* 8` +gssizebits=`expr $ac_cv_sizeof_ssize_t \* 8` case $ac_cv_sizeof_void_p in $ac_cv_sizeof_int) @@ -3519,14 +3663,12 @@ 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 -AS_IF([ test x$enable_modular_tests = xyes], [ - 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) -]) +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) AM_CONDITIONAL(HAVE_DBUS1, [test "x$have_dbus1" = "xyes"]) AC_CHECK_PROGS([DBUS_DAEMON], [dbus-daemon]) @@ -3556,14 +3698,53 @@ fi AC_SUBST(GLIB_LINK_FLAGS) +dnl +dnl Check for -fvisibility=hidden to determine if we can do GNU-style +dnl visibility attributes for symbol export control +dnl +GLIB_HIDDEN_VISIBILITY_CFLAGS="" +case "$host" in + *-*-mingw*) + dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport) + AC_DEFINE([_GLIB_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern], + [defines how to decorate public symbols while building]) + CFLAGS="${CFLAGS} -fvisibility=hidden" + ;; + *) + dnl on other compilers, check if we can do -fvisibility=hidden + SAVED_CFLAGS="${CFLAGS}" + CFLAGS="-fvisibility=hidden" + AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) + AC_TRY_COMPILE([], [int main (void) { return 0; }], + AC_MSG_RESULT(yes) + enable_fvisibility_hidden=yes, + AC_MSG_RESULT(no) + enable_fvisibility_hidden=no) + CFLAGS="${SAVED_CFLAGS}" + + AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [ + AC_DEFINE([_GLIB_EXTERN], [__attribute__((visibility("default"))) extern], + [defines how to decorate public symbols while building]) + GLIB_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden" + ]) + ;; +esac +AC_SUBST(GLIB_HIDDEN_VISIBILITY_CFLAGS) + dnl Compiler flags; macro originates from systemd dnl See https://bugzilla.gnome.org/show_bug.cgi?id=608953 -CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ +AC_ARG_ENABLE(compile-warnings, + [AS_HELP_STRING([--disable-compile-warnings], + [Don't use builtin compiler warnings])],, + enable_compile_warnings=yes) +AS_IF([test "x$enable_compile_warnings" = xyes], [ + CC_CHECK_FLAGS_APPEND([GLIB_WARN_CFLAGS], [CFLAGS], [\ -Wall -Wstrict-prototypes -Werror=declaration-after-statement \ -Werror=missing-prototypes -Werror=implicit-function-declaration \ -Werror=pointer-arith -Werror=init-self -Werror=format-security \ -Werror=format=2 -Werror=missing-include-dirs]) -CFLAGS="$CFLAGS $with_cflags" +]) +AC_SUBST(GLIB_WARN_CFLAGS) # # Define variables corresponding to the correct include paths to use for @@ -3644,6 +3825,8 @@ gio/fam/Makefile gio/win32/Makefile gio/tests/Makefile gio/tests/gdbus-object-manager-example/Makefile +gio/tests/services/Makefile +gio/tests/services/org.gtk.GDBus.Examples.ObjectManager.service po/Makefile.in docs/Makefile docs/reference/Makefile