More editing. Use gcc, not ld to link. On native Win32 use _unlink(). Use
authorTor Lillqvist <tml@src.gnome.org>
Sun, 25 Apr 1999 20:52:42 +0000 (20:52 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Sun, 25 Apr 1999 20:52:42 +0000 (20:52 +0000)
* README.win32: More editing.
* build-dll: Use gcc, not ld to link.
* glib.h: On native Win32 use _unlink().
* gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
not _MSC_VER.
* gstring.c: Include <io.h> on Win32 for _read prototype.
* gutils.c: Remove old IO channel code (was in #if 0).
* makefile.cygwin: Don't need to link with kernel32 and msvcrt
explicitly, they are included anyway.

19 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
README.win32
build-dll
glib.h
glib/glib.h
glib/gscanner.c
glib/gstring.c
glib/gutils.c
gscanner.c
gstring.c
gutils.c
makefile.cygwin

index 9d57690..3073d27 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 9d57690..3073d27 100644 (file)
@@ -1,3 +1,15 @@
+1999-04-25  Tor Lillqvist  <tml@iki.fi>
+
+       * README.win32: More editing.
+       * build-dll: Use gcc, not ld to link.
+       * glib.h: On native Win32 use _unlink().
+       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
+       not _MSC_VER.
+       * gstring.c: Include <io.h> on Win32 for _read prototype.
+       * gutils.c: Remove old IO channel code (was in #if 0).
+       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
+       explicitly, they are included anyway.
+
 1999-04-24  Tor Lillqvist  <tml@iki.fi>
 
        Support added for building using a GNU toolchain on Win32,
index 178c073..d9910aa 100644 (file)
@@ -6,31 +6,56 @@ by the Microsoft runtime C library. Additionally, a pthreads emulation
 library is used.
 
 To build GLib on Win32, you can use either the Microsoft compiler and
-tools, or egcs-1.1.2 running under cygwin-b20.1. Both the compiler
-from MSVC 5.0 and from MSVC 6.0 have been used successfully. If you
-build with egcs, note that the produced executables and DLLs do *not*
-require the cygwin dll ("mingw32"). That's the whole point of this
-porting effort, more or less.
+tools, or gcc. Both the compiler from MSVC 5.0 and from MSVC 6.0 have
+been used successfully. With gcc I mean egcs-1.1.2 (as distributed by
+Mumit Khan), running under cygwin-b20.1.
 
-The egcs support was added quite recently, but seems to work in all
-respects. Debugging with gdk works.
+If you build with gcc, note that the produced executables and DLLs do
+*not* require the cygwin dll (gcc -mno-cygwin). That's the whole point
+of this porting effort, more or less.
 
-Before building you must get the pthreads library for Windows from
+The egcs support was added quite recently, but seems to
+work. Debugging with gdb works. I prefer to use the msvcrt runtime and
+not the default crtdll. This can be achieved by applying the following
+diff to the specs file, which typically is installed as
+C:/cygnus/cygwin-b20/H-i586-cygwin32/lib/gcc-lib/i586-cygwin32/egcs-2.91.66/specs.
+
+Sorry for the illegibility of this diff, but the specs file is like
+that... This diff replaces -lcrtdll with -lmsvcrt, replaces crt1 with
+crt2, and defines __MSVCRT__.
+
+--- specs.ORIG Sun Apr 25 00:40:40 1999
++++ specs      Sun Apr 25 00:48:04 1999
+@@ -23 +23 @@
+-%{pg:-lgmon}                   %{!mno-cygwin:-lcygwin}                   %{mno-cygwin:-lmingw32 -lmoldname -lcrtdll}                   %{mwindows:-luser32 -lgdi32 -lcomdlg32}                  -lkernel32 -ladvapi32 -lshell32
++%{pg:-lgmon}                   %{!mno-cygwin:-lcygwin}                   %{mno-cygwin:-lmingw32 -lmoldname -lmsvcrt}                   %{mwindows:-luser32 -lgdi32 -lcomdlg32}                  -lkernel32 -ladvapi32 -lshell32
+@@ -29 +29 @@
+-%{mdll: %{!mno-cygwin:dllcrt0%O%s}                                 %{mno-cygwin:dllcrt1%O%s}}                         %{!mdll: %{!mno-cygwin:crt0%O%s}                                  %{mno-cygwin:crt1%O%s} %{pg:gcrt0%O%s}}
++%{mdll: %{!mno-cygwin:dllcrt0%O%s}                                 %{mno-cygwin:dllcrt2%O%s}}                         %{!mdll: %{!mno-cygwin:crt0%O%s}                                  %{mno-cygwin:crt2%O%s} %{pg:gcrt0%O%s}}
+@@ -38 +38 @@
+--Di386 -D_WIN32   -DWINNT  -D_X86_=1 -D__STDC__=1  -D__stdcall=__attribute__((__stdcall__))   -D__cdecl=__attribute__((__cdecl__))   -D__declspec(x)=__attribute__((x))   -Asystem(winnt) -Acpu(i386) -Amachine(i386)
++-Di386 -D_WIN32 %{mno-cygwin:-D__MSVCRT__ } -DWINNT  -D_X86_=1 -D__STDC__=1  -D__stdcall=__attribute__((__stdcall__))   -D__cdecl=__attribute__((__cdecl__))   -D__declspec(x)=__attribute__((x))   -Asystem(winnt) -Acpu(i386) -Amachine(i386) 
+
+Note: If you build with gcc, you should also fix the definition of
+_dev_t in the header mingw32/sys/types.h to correspond to what it
+actually is used by msvcrt.dll. It should be unsigned int, not
+short. Otherwise stat() calls will fail.
+
+Before building you must get the pthreads library for Win32 from
 http://sourceware.cygnus.com/pthreads-win32/. The pthreads-win32
 snapshot from 1999-04-07 is the one that should be used. Edit the
-location of the pthreads library and include files in
-makefile.msc.
+location of the pthreads library and include files in makefile.msc.
 
 If using the Microsoft toolchain, build with `nmake -f
-makefile.msc`. Install with `nmake -f makefile.msc install`.
-If using egcs, build using `make -f makefile.cygwin`.
+makefile.msc`. Install with `nmake -f makefile.msc install`.  If using
+egcs, build using `make -f makefile.cygwin`.
 
 To test the GLib functions, go to the tests subdirectory and enter
 `nmake -f makefile.msc check`.
 
 If you would want to use the cygwin tools to generate executables that
-*do* usethe cygwin runtime the normal Unix configuration method should
-work as if on Unix (knock on wood).
+*do* use the cygwin runtime, the normal Unix configuration method
+should work as if on Unix (knock on wood).
 
 With a little work, it might be possible to use the ./configure
 mechanism also with a "mingw32" configuration.
index a02d644..ff41e11 100644 (file)
--- a/build-dll
+++ b/build-dll
@@ -1,8 +1,10 @@
 #!/bin/sh
 
-# Temporary hack until building dlls with gcc -mno-cygwin is easier
+# Temporary hack until building dlls or executables with exported
+# entry points is easier with gcc -mno-cygwin.
 
-LD=ld
+#LD=ld
+GCC=gcc
 DLLTOOL=dlltool
 AS=as
 
@@ -24,10 +26,11 @@ for F in $ldargs; do
     esac
 done
 
-$LD -s --base-file $library.base --dll -o $dllfile $ldargs -e _DllMain@12 -lmingw32
-$DLLTOOL --as=$AS --dllname $dllfile $defswitch --base-file $library.base --output-exp $library.exp $objs
-$LD -s --base-file $library.base $library.exp --dll -o $dllfile $ldargs -e _DllMain@12 -lmingw32
-$DLLTOOL --as=$AS --dllname $dllfile $defswitch --base-file $library.base --output-exp $library.exp $objs
-$LD $library.exp --dll -o $dllfile $ldargs -e _DllMain@12 -lmingw32
+$GCC -s -mdll -mno-cygwin -Wl,--base-file,$library.base -o $dllfile $ldargs
+$DLLTOOL --as=$AS --dllname $dllfile $defswitch --base-file $library.base --output-exp $library.exp $objs &&
+$GCC -s -mdll -mno-cygwin -Wl,--base-file,$library.base,$library.exp -o $dllfile $ldargs
+$DLLTOOL --as=$AS --dllname $dllfile $defswitch --base-file $library.base --output-exp $library.exp $objs &&
+$GCC -mdll -mno-cygwin -Wl,$library.exp -o $dllfile $ldargs
 $DLLTOOL --as=$AS --dllname $dllfile $defswitch --output-lib lib$libname.a $objs
-rm $library.base $library.exp
+
+rm $library.base $library.exp 2>/dev/null
diff --git a/glib.h b/glib.h
index ae80845..df3dd5c 100644 (file)
--- a/glib.h
+++ b/glib.h
@@ -2773,6 +2773,7 @@ typedef int pid_t;
 #ifdef __GNUC__
 #    define stat               _stat
 #endif
+#    define unlink             _unlink
 #    define open               _open
 #    define read               _read
 #    define write              _write
index ae80845..df3dd5c 100644 (file)
@@ -2773,6 +2773,7 @@ typedef int pid_t;
 #ifdef __GNUC__
 #    define stat               _stat
 #endif
+#    define unlink             _unlink
 #    define open               _open
 #    define read               _read
 #    define write              _write
index 2852860..832ca31 100644 (file)
@@ -48,7 +48,7 @@
 #include       <errno.h>
 #include       <sys/types.h>   /* needed for sys/stat.h */
 #include       <sys/stat.h>
-#ifdef _MSC_VER
+#ifdef NATIVE_WIN32
 #include       <io.h>          /* For _read() */
 #endif
 
index f714b3a..a6c7e5b 100644 (file)
 #include <ctype.h>
 #include "glib.h"
 
+#ifdef NATIVE_WIN32
+#include <io.h>                        /* For _read */
+#endif
+
 #define G_STRING_BLOCK_SIZE 512
 
 typedef struct _GRealStringChunk GRealStringChunk;
index c9362cc..4d90a66 100644 (file)
@@ -662,69 +662,6 @@ g_int_hash (gconstpointer v)
   return *(const gint*) v;
 }
 
-#if 0 /* Old IO Channels */
-
-GIOChannel*
-g_iochannel_new (gint fd)
-{
-  GIOChannel *channel = g_new (GIOChannel, 1);
-
-  channel->fd = fd;
-
-#ifdef NATIVE_WIN32
-  channel->peer = 0;
-  channel->peer_fd = 0;
-  channel->offset = 0;
-  channel->need_wakeups = 0;
-#endif /* NATIVE_WIN32 */
-
-  return channel;
-}
-
-void
-g_iochannel_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  g_free (channel);
-}
-
-void
-g_iochannel_close_and_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  close (channel->fd);
-
-  g_iochannel_free (channel);
-}
-
-#undef g_iochannel_wakeup_peer
-
-void
-g_iochannel_wakeup_peer (GIOChannel *channel)
-{
-#ifdef NATIVE_WIN32
-  static guint message = 0;
-#endif
-
-  g_return_if_fail (channel != NULL);
-
-#ifdef NATIVE_WIN32
-  if (message == 0)
-    message = RegisterWindowMessage ("gdk-pipe-readable");
-
-#  if 0
-  g_print ("g_iochannel_wakeup_peer: calling PostThreadMessage (%#x, %d, %d, %d)\n",
-          channel->peer, message, channel->peer_fd, channel->offset);
-#  endif
-  PostThreadMessage (channel->peer, message,
-                    channel->peer_fd, channel->offset);
-#endif /* NATIVE_WIN32 */
-}
-
-#endif /* Old IO Channels */
-
 #ifdef NATIVE_WIN32
 
 int
index 2852860..832ca31 100644 (file)
@@ -48,7 +48,7 @@
 #include       <errno.h>
 #include       <sys/types.h>   /* needed for sys/stat.h */
 #include       <sys/stat.h>
-#ifdef _MSC_VER
+#ifdef NATIVE_WIN32
 #include       <io.h>          /* For _read() */
 #endif
 
index f714b3a..a6c7e5b 100644 (file)
--- a/gstring.c
+++ b/gstring.c
 #include <ctype.h>
 #include "glib.h"
 
+#ifdef NATIVE_WIN32
+#include <io.h>                        /* For _read */
+#endif
+
 #define G_STRING_BLOCK_SIZE 512
 
 typedef struct _GRealStringChunk GRealStringChunk;
index c9362cc..4d90a66 100644 (file)
--- a/gutils.c
+++ b/gutils.c
@@ -662,69 +662,6 @@ g_int_hash (gconstpointer v)
   return *(const gint*) v;
 }
 
-#if 0 /* Old IO Channels */
-
-GIOChannel*
-g_iochannel_new (gint fd)
-{
-  GIOChannel *channel = g_new (GIOChannel, 1);
-
-  channel->fd = fd;
-
-#ifdef NATIVE_WIN32
-  channel->peer = 0;
-  channel->peer_fd = 0;
-  channel->offset = 0;
-  channel->need_wakeups = 0;
-#endif /* NATIVE_WIN32 */
-
-  return channel;
-}
-
-void
-g_iochannel_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  g_free (channel);
-}
-
-void
-g_iochannel_close_and_free (GIOChannel *channel)
-{
-  g_return_if_fail (channel != NULL);
-
-  close (channel->fd);
-
-  g_iochannel_free (channel);
-}
-
-#undef g_iochannel_wakeup_peer
-
-void
-g_iochannel_wakeup_peer (GIOChannel *channel)
-{
-#ifdef NATIVE_WIN32
-  static guint message = 0;
-#endif
-
-  g_return_if_fail (channel != NULL);
-
-#ifdef NATIVE_WIN32
-  if (message == 0)
-    message = RegisterWindowMessage ("gdk-pipe-readable");
-
-#  if 0
-  g_print ("g_iochannel_wakeup_peer: calling PostThreadMessage (%#x, %d, %d, %d)\n",
-          channel->peer, message, channel->peer_fd, channel->offset);
-#  endif
-  PostThreadMessage (channel->peer, message,
-                    channel->peer_fd, channel->offset);
-#endif /* NATIVE_WIN32 */
-}
-
-#endif /* Old IO Channels */
-
 #ifdef NATIVE_WIN32
 
 int
index ec312b1..4820eaa 100644 (file)
@@ -12,6 +12,8 @@ PTHREADS = ../pthreads-snap-1999-04-07
 PTHREAD_LIB = -L$(PTHREADS) -lpthread
 PTHREAD_INC = -I $(PTHREADS)
 
+OPTIMIZE = -g -O
+
 ################################################################
 
 # Nothing much configurable below
@@ -25,7 +27,7 @@ INSTALL = install
 
 GLIB_VER = 1.3
 
-CFLAGS = -g -O2 -I. -DHAVE_CONFIG_H
+CFLAGS = $(OPTIMIZE) -I. -DHAVE_CONFIG_H
 
 all : \
        glibconfig.h    \
@@ -76,7 +78,7 @@ glib_OBJECTS = \
        gutils.o
 
 glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
-       ./build-dll glib $(GLIB_VER) glib.def $(glib_OBJECTS) -lmsvcrt -lkernel32 -luser32 -ladvapi32 -lwsock32
+       ./build-dll glib $(GLIB_VER) glib.def $(glib_OBJECTS) -luser32 -lwsock32
 
 glibconfig.h: glibconfig.h.win32
        $(CP) glibconfig.h.win32 glibconfig.h
@@ -91,7 +93,7 @@ gmodule_OBJECTS = \
        gmodule.o
 
 gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS) gmodule/gmodule.def
-       ./build-dll gmodule $(GLIB_VER) gmodule/gmodule.def $(gmodule_OBJECTS) -L. -lglib-$(GLIB_VER) -lmsvcrt -lkernel32 -luser32 -ladvapi32 -lwsock32
+       ./build-dll gmodule $(GLIB_VER) gmodule/gmodule.def $(gmodule_OBJECTS) -L. -lglib-$(GLIB_VER) -lwsock32
 
 gmodule.o : gmodule/gmodule.c gmodule/gmodule-win32.c
        $(CC) $(CFLAGS) -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule/gmodule.c
@@ -103,25 +105,25 @@ gthread_OBJECTS = \
        gthread.o
 
 gthread-$(GLIB_VER).dll : $(gthread_OBJECTS) glib-$(GLIB_VER).dll gthread/gthread.def
-       ./build-dll gthread $(GLIB_VER) gthread/gthread.def $(gthread_OBJECTS)  -L. -lglib-$(GLIB_VER) $(PTHREAD_LIB) -lmsvcrt -lkernel32 -luser32 -ladvapi32 -lwsock32
+       ./build-dll gthread $(GLIB_VER) gthread/gthread.def $(gthread_OBJECTS)  -L. -lglib-$(GLIB_VER) $(PTHREAD_LIB) -lwsock32
 
 gthread.o : gthread/gthread.c gthread/gthread-posix.c
        $(CC) $(CFLAGS) $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread/gthread.c
 
 testglib.exe : glib-$(GLIB_VER).dll testglib.o
-       $(CC) $(CFLAGS) -o testglib testglib.o -L. -lglib-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -o testglib testglib.o -L. -lglib-$(GLIB_VER) $(LDFLAGS)
 
 testglib.o : testglib.c
        $(CC) -c $(CFLAGS) testglib.c
 
 testgdate.exe : glib-$(GLIB_VER).dll testgdate.o
-       $(CC) $(CFLAGS) -o testgdate.exe testgdate.o -L. -lglib-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -o testgdate.exe testgdate.o -L. -lglib-$(GLIB_VER) $(LDFLAGS)
 
 testgdate.o : testgdate.c
        $(CC) -c $(CFLAGS) testgdate.c
 
 testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.o
-       $(CC) $(CFLAGS) -o testgdateparser.exe testgdateparser.o -L. -lglib-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -o testgdateparser.exe testgdateparser.o -L. -lglib-$(GLIB_VER) $(LDFLAGS)
 
 testgdateparser.o : testgdateparser.c
        $(CC) -c $(CFLAGS) testgdateparser.c
@@ -130,23 +132,23 @@ testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.o lib
 # Wow, do we really have to do it like this to get some symbols
 # exported from a .exe? Apparently yes. Does the __declspec(dllexport) 
 # actually do anything in egcs-1.1.2?
-       $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) $(LDFLAGS)
        $(DLLTOOL) --base-file testgmodule.base --output-exp testgmodule.exp testgmodule.o
-       $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -Wl,--base-file,testgmodule.base,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) $(LDFLAGS)
        $(DLLTOOL) --base-file testgmodule.base --output-exp testgmodule.exp testgmodule.o
-       $(CC) $(CFLAGS) -Wl,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lmsvcrt $(LDFLAGS)
+       $(CC) $(CFLAGS) -Wl,testgmodule.exp -o testgmodule.exe testgmodule.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) $(LDFLAGS)
 
 testgmodule.o : gmodule/testgmodule.c
        $(CC) $(CFLAGS) -Igmodule -c gmodule/testgmodule.c
 
 libgplugin_a.dll : libgplugin_a.o
-       ./build-dll libgplugin_a - - libgplugin_a.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lmsvcrt
+       ./build-dll libgplugin_a - - libgplugin_a.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER)
 
 libgplugin_a.o : gmodule/libgplugin_a.c
        $(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_a.c
 
 libgplugin_b.dll : libgplugin_b.o
-       ./build-dll libgplugin_b - - libgplugin_b.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER) -lmsvcrt
+       ./build-dll libgplugin_b - - libgplugin_b.o -L. -lglib-$(GLIB_VER) -lgmodule-$(GLIB_VER)
 
 libgplugin_b.o : gmodule/libgplugin_b.c
        $(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_b.c
@@ -158,12 +160,5 @@ testgthread.o : gthread/testgthread.c
        $(CC) $(CFLAGS) $(PTHREAD_INC) -c gthread/testgthread.c
 
 clean:
-       -rm config.h
-       -rm glibconfig.h
-       -rm gmodule/gmoduleconf.h
-       -rm *.exe
-       -rm *.o
-       -rm *.dll
-       -rm *.a
-       -rm *.base
-       -rm *.exp
+       -rm config.h glibconfig.h gmodule/gmoduleconf.h
+       -rm *.exe *.o *.dll *.a *.base *.exp