More editing. Use gcc, not ld to link. On native Win32 use _unlink(). Use

* 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.
This commit is contained in:
Tor Lillqvist 1999-04-25 20:52:42 +00:00
parent 2aa1277d60
commit d6c6eb3d92
19 changed files with 174 additions and 171 deletions

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View 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> 1999-04-24 Tor Lillqvist <tml@iki.fi>
Support added for building using a GNU toolchain on Win32, Support added for building using a GNU toolchain on Win32,

View File

@ -6,31 +6,56 @@ by the Microsoft runtime C library. Additionally, a pthreads emulation
library is used. library is used.
To build GLib on Win32, you can use either the Microsoft compiler and 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 tools, or gcc. Both the compiler from MSVC 5.0 and from MSVC 6.0 have
from MSVC 5.0 and from MSVC 6.0 have been used successfully. If you been used successfully. With gcc I mean egcs-1.1.2 (as distributed by
build with egcs, note that the produced executables and DLLs do *not* Mumit Khan), running under cygwin-b20.1.
require the cygwin dll ("mingw32"). That's the whole point of this
porting effort, more or less.
The egcs support was added quite recently, but seems to work in all If you build with gcc, note that the produced executables and DLLs do
respects. Debugging with gdk works. *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 http://sourceware.cygnus.com/pthreads-win32/. The pthreads-win32
snapshot from 1999-04-07 is the one that should be used. Edit the snapshot from 1999-04-07 is the one that should be used. Edit the
location of the pthreads library and include files in location of the pthreads library and include files in makefile.msc.
makefile.msc.
If using the Microsoft toolchain, build with `nmake -f If using the Microsoft toolchain, build with `nmake -f
makefile.msc`. Install with `nmake -f makefile.msc install`. makefile.msc`. Install with `nmake -f makefile.msc install`. If using
If using egcs, build using `make -f makefile.cygwin`. egcs, build using `make -f makefile.cygwin`.
To test the GLib functions, go to the tests subdirectory and enter To test the GLib functions, go to the tests subdirectory and enter
`nmake -f makefile.msc check`. `nmake -f makefile.msc check`.
If you would want to use the cygwin tools to generate executables that If you would want to use the cygwin tools to generate executables that
*do* usethe cygwin runtime the normal Unix configuration method should *do* use the cygwin runtime, the normal Unix configuration method
work as if on Unix (knock on wood). should work as if on Unix (knock on wood).
With a little work, it might be possible to use the ./configure With a little work, it might be possible to use the ./configure
mechanism also with a "mingw32" configuration. mechanism also with a "mingw32" configuration.

View File

@ -1,8 +1,10 @@
#!/bin/sh #!/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 DLLTOOL=dlltool
AS=as AS=as
@ -24,10 +26,11 @@ for F in $ldargs; do
esac esac
done done
$LD -s --base-file $library.base --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 $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 $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 $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 -mdll -mno-cygwin -Wl,$library.exp -o $dllfile $ldargs
$DLLTOOL --as=$AS --dllname $dllfile $defswitch --output-lib lib$libname.a $objs $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

1
glib.h
View File

@ -2773,6 +2773,7 @@ typedef int pid_t;
#ifdef __GNUC__ #ifdef __GNUC__
# define stat _stat # define stat _stat
#endif #endif
# define unlink _unlink
# define open _open # define open _open
# define read _read # define read _read
# define write _write # define write _write

View File

@ -2773,6 +2773,7 @@ typedef int pid_t;
#ifdef __GNUC__ #ifdef __GNUC__
# define stat _stat # define stat _stat
#endif #endif
# define unlink _unlink
# define open _open # define open _open
# define read _read # define read _read
# define write _write # define write _write

View File

@ -48,7 +48,7 @@
#include <errno.h> #include <errno.h>
#include <sys/types.h> /* needed for sys/stat.h */ #include <sys/types.h> /* needed for sys/stat.h */
#include <sys/stat.h> #include <sys/stat.h>
#ifdef _MSC_VER #ifdef NATIVE_WIN32
#include <io.h> /* For _read() */ #include <io.h> /* For _read() */
#endif #endif

View File

@ -43,6 +43,10 @@
#include <ctype.h> #include <ctype.h>
#include "glib.h" #include "glib.h"
#ifdef NATIVE_WIN32
#include <io.h> /* For _read */
#endif
#define G_STRING_BLOCK_SIZE 512 #define G_STRING_BLOCK_SIZE 512
typedef struct _GRealStringChunk GRealStringChunk; typedef struct _GRealStringChunk GRealStringChunk;

View File

@ -662,69 +662,6 @@ g_int_hash (gconstpointer v)
return *(const gint*) 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 #ifdef NATIVE_WIN32
int int

View File

@ -48,7 +48,7 @@
#include <errno.h> #include <errno.h>
#include <sys/types.h> /* needed for sys/stat.h */ #include <sys/types.h> /* needed for sys/stat.h */
#include <sys/stat.h> #include <sys/stat.h>
#ifdef _MSC_VER #ifdef NATIVE_WIN32
#include <io.h> /* For _read() */ #include <io.h> /* For _read() */
#endif #endif

View File

@ -43,6 +43,10 @@
#include <ctype.h> #include <ctype.h>
#include "glib.h" #include "glib.h"
#ifdef NATIVE_WIN32
#include <io.h> /* For _read */
#endif
#define G_STRING_BLOCK_SIZE 512 #define G_STRING_BLOCK_SIZE 512
typedef struct _GRealStringChunk GRealStringChunk; typedef struct _GRealStringChunk GRealStringChunk;

View File

@ -662,69 +662,6 @@ g_int_hash (gconstpointer v)
return *(const gint*) 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 #ifdef NATIVE_WIN32
int int

View File

@ -12,6 +12,8 @@ PTHREADS = ../pthreads-snap-1999-04-07
PTHREAD_LIB = -L$(PTHREADS) -lpthread PTHREAD_LIB = -L$(PTHREADS) -lpthread
PTHREAD_INC = -I $(PTHREADS) PTHREAD_INC = -I $(PTHREADS)
OPTIMIZE = -g -O
################################################################ ################################################################
# Nothing much configurable below # Nothing much configurable below
@ -25,7 +27,7 @@ INSTALL = install
GLIB_VER = 1.3 GLIB_VER = 1.3
CFLAGS = -g -O2 -I. -DHAVE_CONFIG_H CFLAGS = $(OPTIMIZE) -I. -DHAVE_CONFIG_H
all : \ all : \
glibconfig.h \ glibconfig.h \
@ -76,7 +78,7 @@ glib_OBJECTS = \
gutils.o gutils.o
glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def 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 glibconfig.h: glibconfig.h.win32
$(CP) glibconfig.h.win32 glibconfig.h $(CP) glibconfig.h.win32 glibconfig.h
@ -91,7 +93,7 @@ gmodule_OBJECTS = \
gmodule.o gmodule.o
gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS) gmodule/gmodule.def 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 gmodule.o : gmodule/gmodule.c gmodule/gmodule-win32.c
$(CC) $(CFLAGS) -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule/gmodule.c $(CC) $(CFLAGS) -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule/gmodule.c
@ -103,25 +105,25 @@ gthread_OBJECTS = \
gthread.o gthread.o
gthread-$(GLIB_VER).dll : $(gthread_OBJECTS) glib-$(GLIB_VER).dll gthread/gthread.def 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 gthread.o : gthread/gthread.c gthread/gthread-posix.c
$(CC) $(CFLAGS) $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread/gthread.c $(CC) $(CFLAGS) $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread/gthread.c
testglib.exe : glib-$(GLIB_VER).dll testglib.o 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 testglib.o : testglib.c
$(CC) -c $(CFLAGS) testglib.c $(CC) -c $(CFLAGS) testglib.c
testgdate.exe : glib-$(GLIB_VER).dll testgdate.o 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 testgdate.o : testgdate.c
$(CC) -c $(CFLAGS) testgdate.c $(CC) -c $(CFLAGS) testgdate.c
testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.o 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 testgdateparser.o : testgdateparser.c
$(CC) -c $(CFLAGS) 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 # Wow, do we really have to do it like this to get some symbols
# exported from a .exe? Apparently yes. Does the __declspec(dllexport) # exported from a .exe? Apparently yes. Does the __declspec(dllexport)
# actually do anything in egcs-1.1.2? # 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 $(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 $(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 testgmodule.o : gmodule/testgmodule.c
$(CC) $(CFLAGS) -Igmodule -c gmodule/testgmodule.c $(CC) $(CFLAGS) -Igmodule -c gmodule/testgmodule.c
libgplugin_a.dll : libgplugin_a.o 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 libgplugin_a.o : gmodule/libgplugin_a.c
$(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_a.c $(CC) $(CFLAGS) -Igmodule -c gmodule/libgplugin_a.c
libgplugin_b.dll : libgplugin_b.o 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 libgplugin_b.o : gmodule/libgplugin_b.c
$(CC) $(CFLAGS) -Igmodule -c 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 $(CC) $(CFLAGS) $(PTHREAD_INC) -c gthread/testgthread.c
clean: clean:
-rm config.h -rm config.h glibconfig.h gmodule/gmoduleconf.h
-rm glibconfig.h -rm *.exe *.o *.dll *.a *.base *.exp
-rm gmodule/gmoduleconf.h
-rm *.exe
-rm *.o
-rm *.dll
-rm *.a
-rm *.base
-rm *.exp