## Makefile for building the gmodule dll with Microsoft C
## Use: nmake -f makefile.msc install

TOP = ..\..

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

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

INCLUDES = -FImsvc_recommended_pragmas.h -I .. -I . -I ..\glib
DEFINES = -DHAVE_CONFIG_H -DG_LOG_DOMAIN=\"GModule\"

all : \
	gmoduleconf.h \
	libgmodule-2.0-@LT_CURRENT_MINUS_AGE@.dll

gmodule_OBJECTS = \
	gmodule.obj

gmoduleconf.h: gmoduleconf.h.win32
	copy gmoduleconf.h.win32 gmoduleconf.h

gmodule.res : gmodule.rc
	rc -DBUILDNUMBER=0 -r -fo gmodule.res gmodule.rc

libgmodule-2.0-@LT_CURRENT_MINUS_AGE@.dll : $(gmodule_OBJECTS) gmodule.def gmodule.res
	$(CC) $(CFLAGS) -LD -Fe$@ $(gmodule_OBJECTS) gmodule.res \
	..\glib\glib-2.0.lib $(LDFLAGS) /implib:gmodule-2.0.lib /def:gmodule.def

clean::
	del gmoduleconf.h
