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 725a831..b8ef15f 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 af58380..7c625aa 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:$@