Actually use the gio.def file when linking the library on Windows. Produce
authorTor Lillqvist <tml@novell.com>
Thu, 13 Mar 2008 17:10:04 +0000 (17:10 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 13 Mar 2008 17:10:04 +0000 (17:10 +0000)
2008-03-13  Tor Lillqvist  <tml@novell.com>

* Makefile.am: Actually use the gio.def file when linking the
library on Windows. Produce .lib library for Microsoft's toolchain
when possible. Install the .lib and .def file like for the other
libraries of GLib.

svn path=/trunk/; revision=6700

gio/ChangeLog
gio/Makefile.am

index 725a831740bf7eaf298d5538f54a73c79688ba57..b8ef15f5f288f5e5a97c979329abad8f7bf4419e 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-13  Tor Lillqvist  <tml@novell.com>
+
+       * Makefile.am: Actually use the gio.def file when linking the
+       library on Windows. Produce .lib library for Microsoft's toolchain
+       when possible. Install the .lib and .def file like for the other
+       libraries of GLib.
+
 2008-03-13  Tomas Bzatek  <tbzatek@redhat.com>
 
        * tests/live-g-file.c:
index af5838091a5c67d3f5ad052aae6aa5c32bafa421..7c625aa1788d9e14caf825a7b68612ff7c727bce 100644 (file)
@@ -8,6 +8,19 @@ if OS_UNIX
 SUBDIRS += xdgmime
 endif
 
+if MS_LIB_AVAILABLE
+noinst_DATA = gio-2.0.lib
+
+install-ms-lib:
+       $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir)
+
+uninstall-ms-lib:
+       -rm $(DESTDIR)$(libdir)/gio-2.0.lib
+else
+install-ms-lib:
+uninstall-ms-lib:
+endif
+
 gio.def: gio.symbols
        (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gio.def.tmp && \
          mv gio.def.tmp gio.def
@@ -205,11 +218,30 @@ libgio_2_0_la_LIBADD = \
        $(XATTR_LIBS)                                   \
        $(NULL)
 
-if OS_WIN32
+if PLATFORM_WIN32
 no_undefined = -no-undefined
 endif
 
-libgio_2_0_la_LDFLAGS= -export-dynamic $(no_undefined) -export-symbols-regex '^g_.*'
+if OS_WIN32
+export_symbols = -export-symbols gio.def
+
+install-def-file:
+       $(INSTALL) gio.def $(DESTDIR)$(libdir)/gio-2.0.def
+
+uninstall-def-file:
+       -rm $(DESTDIR)$(libdir)/gio-2.0.def
+else
+install-def-file:
+uninstall-def-file:
+
+export_symbols = -export-symbols-regex '^g_.*'
+endif
+
+install-data-local: install-ms-lib install-def-file
+
+uninstall-local: uninstall-ms-lib uninstall-def-file
+
+libgio_2_0_la_LDFLAGS= -export-dynamic $(no_undefined) $(export_symbols)
 
 gio_headers =                  \
        gappinfo.h              \
@@ -292,3 +324,6 @@ gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
        ( top_builddir=`cd $(top_builddir) && pwd`; \
          cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > \
            gioenumtypes.c.tmp && mv gioenumtypes.c.tmp gioenumtypes.c
+
+gio-2.0.lib: libgio-2.0.la gio.def
+       lib -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@