X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/157fb6f1bcb5af0d93bb588522bb1be86aa2fd71..4f3e19a6298267a8675de26e3e3e16afa97cf6a1:/m4/glib.m4 diff --git a/m4/glib.m4 b/m4/glib.m4 index 21676a4..7afab9d 100644 --- a/m4/glib.m4 +++ b/m4/glib.m4 @@ -133,10 +133,11 @@ AC_DEFUN([DX_LIB_GLIB_BUSTED_GNU_INLINE], [save_CFLAGS=$CFLAGS save_LIBS=$LIBS CFLAGS="$LIBGLIB_CFLAGS $CFLAGS" LIBS="conftest_bar.$OBJEXT $LIBGLIB_LIBS $save_LIBS" dx_cv_glib_busted_gnu_inline=unknown -for dx_attempt in no yes; do -AS_CASE([$dx_attempt], -[yes], [DEFTEST='#define G_INLINE_FUNC static inline' -], [DEFTEST= +for dx_cv_glib_inline_workaround in no G_INLINE_FUNC G_IMPLEMENT_INLINES; do +AS_CASE([$dx_cv_glib_inline_workaround], +[G_INLINE_FUNC], [DEFTEST='#define G_INLINE_FUNC static inline' ret=yes +], [G_IMPLEMENT_INLINES], [DEFTEST='#define G_IMPLEMENT_INLINES 1' ret=yes +], [DEFTEST= ret=no ]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([$DEFTEST #include @@ -146,11 +147,14 @@ int bar(void) { return 0; }])], AC_LINK_IFELSE([AC_LANG_PROGRAM([$DEFTEST #include extern int bar(void);], [return bar();])], -[dx_cv_glib_busted_gnu_inline=$dx_attempt; break]) +[dx_cv_glib_busted_gnu_inline=$ret; break]) rm -f conftest_bar.$OBJEXT done CFLAGS=$save_CFLAGS LIBS=$save_LIBS]) -AS_CASE([$dx_cv_glib_busted_gnu_inline], [yes], -[AC_DEFINE([G_INLINE_FUNC], [static inline], +AS_CASE([$dx_cv_glib_inline_workaround], +[G_INLINE_FUNC], [AC_DEFINE([G_INLINE_FUNC], [static inline], [Define to static inline to work around multiple definitions in old GLib.]) +], [G_IMPLEMENT_INLINES], [AC_DEFINE([G_IMPLEMENT_INLINES], [1], + [If G_INLINE_FUNC cannot work around multiple definition issues, + define to 1 to disable inlining altogether in GLib.]) ])])