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)
AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
AC_DEFINE([_GLIB_EXTERN], [__attribute__((visibility("default"))) extern],
[defines how to decorate public symbols while building])
- CFLAGS="${CFLAGS} -fvisibility=hidden"
+ 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
uninstall-local: uninstall-ms-lib
+libgio_2_0_la_CFLAGS = $(AM_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
libgio_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
$(gio_win32_res_ldflag) \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
if OS_COCOA
# This is dumb. The ObjC source file should be properly named .m
-libgio_2_0_la_CFLAGS = -xobjective-c
+libgio_2_0_la_CFLAGS += -xobjective-c
libgio_2_0_la_LDFLAGS += -Wl,-framework,Foundation
endif
-#include "config.h"
-
#include <gio/gio.h>
-_GLIB_EXTERN void
+void
g_io_module_load (GIOModule *module)
{
}
-_GLIB_EXTERN void
+void
g_io_module_unload (GIOModule *module)
{
}
-_GLIB_EXTERN char **
+char **
g_io_module_query (void)
{
return NULL;
pcre_inc =
endif
+libglib_2_0_la_CFLAGS = $(AM_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
libglib_2_0_la_LIBADD = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ @ICONV_LIBS@ @G_LIBS_EXTRA@ $(pcre_lib) $(G_THREAD_LIBS_EXTRA) $(G_THREAD_LIBS_FOR_GTHREAD)
libglib_2_0_la_DEPENDENCIES = libcharset/libcharset.la $(printf_la) @GIO@ @GSPAWN@ @PLATFORMDEP@ $(glib_win32_res) $(glib_def)
gmodule_win32_res_ldflag = -Wl,$(gmodule_win32_res)
endif
+libgmodule_2_0_la_CFLAGS = $(AM_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
libgmodule_2_0_la_SOURCES = gmodule.c
libgmodule_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
$(gmodule_win32_res_ldflag) \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-export-dynamic $(no_undefined) $(export_symbols)
-libgobject_2_0_la_CFLAGS = $(LIBFFI_CFLAGS)
+libgobject_2_0_la_CFLAGS = $(AM_CFLAGS) $(LIBFFI_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
libgobject_2_0_la_LIBADD = $(libglib) $(LIBFFI_LIBS)
gthread_win32_res_ldflag = -Wl,$(gthread_win32_res)
endif
+libgthread_2_0_la_CFLAGS = $(AM_CFLAGS) $(GLIB_HIDDEN_VISIBILITY_CFLAGS)
libgthread_2_0_la_SOURCES = gthread-impl.c
libgthread_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \
$(gthread_win32_res_ldflag) \
#undef G_DISABLE_ASSERT
#undef G_LOG_DOMAIN
-#include "config.h"
-
-#include <glib.h>
-#include <gmodule.h>
-#include <stdlib.h>
+#include <gmodule.h>
+#include <stdlib.h>
void gplugin_a_func (void);
void gplugin_clash_func (void);
void gplugin_say_boo_func (void);
void gplugin_a_module_func (GModule *module);
-_GLIB_EXTERN gchar* gplugin_a_state;
-gchar* gplugin_a_state;
+G_MODULE_EXPORT gchar* gplugin_a_state;
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_a_func (void)
{
gplugin_a_state = "Hello world";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_clash_func (void)
{
gplugin_a_state = "plugin clash";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
g_clash_func (void)
{
gplugin_a_state = "global clash";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_say_boo_func (void)
{
gplugin_a_state = "BOOH";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_a_module_func (GModule *module)
{
void *f = NULL;
#undef G_DISABLE_ASSERT
#undef G_LOG_DOMAIN
-#include "config.h"
+#include <gmodule.h>
-#include <gmodule.h>
-
-_GLIB_EXTERN gchar* gplugin_b_state;
-gchar* gplugin_b_state;
+G_MODULE_EXPORT gchar* gplugin_b_state;
const gchar* g_module_check_init (GModule *module);
void g_module_unload (GModule *module);
void g_clash_func (void);
void gplugin_say_boo_func (void);
-_GLIB_EXTERN const gchar*
+G_MODULE_EXPORT const gchar*
g_module_check_init (GModule *module)
{
gplugin_b_state = "check-init";
return NULL;
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
g_module_unload (GModule *module)
{
gplugin_b_state = "unloaded";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_b_func (void)
{
gplugin_b_state = "Hello world";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_clash_func (void)
{
gplugin_b_state = "plugin clash";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
g_clash_func (void)
{
gplugin_b_state = "global clash";
}
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
gplugin_say_boo_func (void)
{
gplugin_b_state = "BOOH";
#undef G_DISABLE_ASSERT
#undef G_LOG_DOMAIN
-#include "config.h"
-
#include <gmodule.h>
#include <string.h>
gchar* global_state;
-_GLIB_EXTERN void g_clash_func (void);
+G_MODULE_EXPORT void g_clash_func (void);
-_GLIB_EXTERN void
+G_MODULE_EXPORT void
g_clash_func (void)
{
global_state = "global clash";