## Makefile for building the GLib test programs with Microsoft C
## Use: nmake -f makefile.msc check

TOP = ..\..

!INCLUDE ..\build\win32\make.msc

################################################################

INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I ..\glib -I ..\gmodule
DEFINES = -DHAVE_CONFIG_H

NONAUTOMATIC_TESTS = \
	testglib.exe	\
	testgdate.exe	\
	testgdateparser.exe \
	patterntest.exe \
	unicode-normalize.exe \
	unicode-collate.exe

TESTS = \
	array-test.exe	\
	date-test.exe	\
	dirname-test.exe\
	gio-test.exe	\
	iochannel-test.exe \
	hash-test.exe	\
	list-test.exe	\
	mainloop-test.exe \
	markup-test.exe	\
	module-test.exe	\
	node-test.exe	\
	queue-test.exe	\
	rand-test.exe	\
	relation-test.exe\
	shell-test.exe	\
	slist-test.exe	\
	spawn-test.exe	\
# strfunc-test doesn't compile with MSVC
#	strfunc-test.exe\
	string-test.exe	\
	strtod-test.exe \
	thread-test.exe	\
	threadpool-test.exe\
	tree-test.exe	\
	type-test.exe	\
	unicode-caseconv.exe \
	unicode-encoding.exe \
	uri-test.exe

DLLS = \
	libmoduletestplugin_a.dll \
	libmoduletestplugin_b.dll

all :	$(TESTS) $(NONAUTOMATIC_TESTS) $(DLLS)

.c.exe :
	$(CC) $(CFLAGS) -c $<
	$(CC) $(CFLAGS) -Fe$@ $< ..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib ..\gmodule\gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib ..\gthread\gthread-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS) user32.lib /subsystem:console

libmoduletestplugin_a.dll : libmoduletestplugin_a.obj
	$(CC) $(CFLAGS) -LD libmoduletestplugin_a.obj ..\gmodule\gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib ..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS)

libmoduletestplugin_b.dll : libmoduletestplugin_b.obj
	$(CC) $(CFLAGS) -LD libmoduletestplugin_b.obj ..\gmodule\gmodule-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib ..\glib\glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@.lib $(LDFLAGS)

check:	all
	for %p in ($(TESTS)) do set PATH=..\glib;..\gmodule;..\gobject;..\gthread;%PATH% && %p
