summaryrefslogtreecommitdiff
path: root/gmodule
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2001-03-09 21:33:23 +0000
committerTor Lillqvist <tml@src.gnome.org>2001-03-09 21:33:23 +0000
commit8dd860987015d6be46bccab82ba00f03140f0396 (patch)
tree30d2299a35f948d8102364bb743742892e6e8309 /gmodule
parent754d8ddad85ef7054bf262bbc57ee67a0278f493 (diff)
Use G_BEGIN_DECLS and G_END_DECLS. Define G_MODULE_EXPORT correctly on
2001-02-21 Tor Lillqvist <tml@iki.fi> * gmodule.h: Use G_BEGIN_DECLS and G_END_DECLS. Define G_MODULE_EXPORT correctly on Cygwin, too. * gmodule-win32.c (_g_module_open): Convert path to Windows format on Cygwin. * Makefile.am (libglib): Use libglib-1.3.la from top_builddir. Invoke libtool with -no-undefined for Win32 and Cygwin.
Diffstat (limited to 'gmodule')
-rw-r--r--gmodule/ChangeLog12
-rw-r--r--gmodule/Makefile.am23
-rw-r--r--gmodule/gmodule-win32.c10
-rw-r--r--gmodule/gmodule.h15
4 files changed, 42 insertions, 18 deletions
diff --git a/gmodule/ChangeLog b/gmodule/ChangeLog
index ad2b3259d..bd8021e12 100644
--- a/gmodule/ChangeLog
+++ b/gmodule/ChangeLog
@@ -5,6 +5,18 @@
* gmodule.def, gmodule.h, gmodule.c: Removed g_log_domain_gmodule.
+2001-02-21 Tor Lillqvist <tml@iki.fi>
+
+ * gmodule.h: Use G_BEGIN_DECLS and G_END_DECLS. Define
+ G_MODULE_EXPORT correctly on Cygwin, too.
+
+ * gmodule-win32.c (_g_module_open): Convert path to Windows format
+ on Cygwin.
+
+ * Makefile.am (libglib): Use libglib-1.3.la from
+ top_builddir. Invoke libtool with -no-undefined for Win32 and
+ Cygwin.
+
2001-02-17 Havoc Pennington <hp@pobox.com>
Applied patch from Soeren Sandmann:
diff --git a/gmodule/Makefile.am b/gmodule/Makefile.am
index 7bac888a1..19ad51d59 100644
--- a/gmodule/Makefile.am
+++ b/gmodule/Makefile.am
@@ -28,29 +28,36 @@ glibincludedir=$(includedir)/glib-2.0
glibinclude_HEADERS = \
gmodule.h
-libglib = $(top_builddir)/libglib-1.3.la # -lglib
+libglib = $(top_builddir)/libglib-1.3.la
top_builddir_full=`cd \$(top_builddir); pwd`
lib_LTLIBRARIES = libgmodule-1.3.la libgplugin_a.la libgplugin_b.la
+if PLATFORM_WIN32
+no_undefined = -no-undefined
+endif
+if OS_WIN32
+export_symbols = -export-symbols gmodule.def
+endif
+
libgmodule_1_3_la_SOURCES = gmodule.c
libgmodule_1_3_la_LDFLAGS = \
@G_MODULE_LDFLAGS@ \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
- -export-dynamic
+ -export-dynamic $(no_undefined) $(export_symbols)
-libgmodule_1_3_la_LIBADD = @G_MODULE_LIBS_EXTRA@ @G_MODULE_LIBS@ # $(libglib)
+libgmodule_1_3_la_LIBADD = @G_MODULE_LIBS_EXTRA@ @G_MODULE_LIBS@ $(libglib)
# we should really depend on $(libglib) for libgmodule.la, but libtool has a
-# problem with this ;(
+# problem with this ;( Ummm? Does it?
libgplugin_a_la_SOURCES = libgplugin_a.c
-libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ # $(libglib)
+libgplugin_a_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined)
+libgplugin_a_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ libgmodule-1.3.la $(libglib)
libgplugin_b_la_SOURCES = libgplugin_b.c
-libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module
-libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ # $(libglib)
+libgplugin_b_la_LDFLAGS = @G_MODULE_LDFLAGS@ -avoid-version -module $(no_undefined)
+libgplugin_b_la_LIBADD = @G_MODULE_LIBS@ @G_MODULE_LIBS_EXTRA@ @G_MODULE_PLUGIN_LIBS@ libgmodule-1.3.la $(libglib)
noinst_PROGRAMS = testgmodule
testgmodule_LDFLAGS += @G_MODULE_LDFLAGS@
diff --git a/gmodule/gmodule-win32.c b/gmodule/gmodule-win32.c
index 867b603d6..0f5aca719 100644
--- a/gmodule/gmodule-win32.c
+++ b/gmodule/gmodule-win32.c
@@ -38,6 +38,10 @@
#include <tlhelp32.h>
#else
+#ifdef G_WITH_CYGWIN
+#include <sys/cygwin.h>
+#endif
+
/* The w32api headers supplied with the mingw gcc don't have
* tlhelp32.h. We really only need the MODULEENTRY32 struct and the
* TH32CS_SNAPMODULE value, so provide them here.
@@ -77,6 +81,12 @@ _g_module_open (const gchar *file_name,
gboolean bind_lazy)
{
HINSTANCE handle;
+#ifdef G_WITH_CYGWIN
+ gchar tmp[MAX_PATH];
+
+ cygwin_conv_to_win32_path(file_name, tmp);
+ file_name = tmp;
+#endif
handle = LoadLibrary (file_name);
if (!handle)
diff --git a/gmodule/gmodule.h b/gmodule/gmodule.h
index 39d00d71b..2c335aba3 100644
--- a/gmodule/gmodule.h
+++ b/gmodule/gmodule.h
@@ -29,19 +29,17 @@
#include <glib.h>
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
/* exporting and importing functions, this is special cased
* to feature Windows dll stubs.
*/
#define G_MODULE_IMPORT extern
-#if defined (G_OS_WIN32)
+#ifdef G_PLATFORM_WIN32
# define G_MODULE_EXPORT __declspec(dllexport)
-#else /* !G_OS_WIN32 */
+#else /* !G_PLATFORM_WIN32 */
# define G_MODULE_EXPORT
-#endif /* !G_OS_WIN32 */
+#endif /* !G_PLATFORM_WIN32 */
typedef enum
{
@@ -92,9 +90,6 @@ gchar* g_module_build_path (const gchar *directory,
const gchar *module_name);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+G_END_DECLS
#endif /* __GMODULE_H__ */