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

TOP = ..\..

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

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

INCLUDES = -FImsvc_recommended_pragmas.h -I . -I ..
DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" -DG_ENABLE_DEBUG
DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(LIBICONV_CFLAGS) $(DIRENT_CFLAGS)

all :				\
	..\config.h		\
	..\glibconfig.h	\
	galias.h		\
	galiasdef.c		\
	gnulib\gnulib.lib	\
	libglib-2.0-0.dll \
	glib-2.9s.lib \
	gspawn-win32-helper.exe	\


gnulib\gnulib.lib :
	cd gnulib
	nmake -f makefile.msc
	cd ..

glib_OBJECTS =			\
	garray.obj		\
	gasyncqueue.obj		\
	gatomic.obj	\
	gbacktrace.obj		\
	gcache.obj		\
	gcompletion.obj		\
	gconvert.obj		\
	gdataset.obj		\
	gdate.obj		\
	gdir.obj	\
	gerror.obj		\
	gfileutils.obj		\
	ghash.obj		\
	ghook.obj		\
	gkeyfile.obj		\
	gmappedfile.obj	\
	giochannel.obj		\
	giowin32.obj		\
	glist.obj		\
	gmain.obj		\
	gmarkup.obj		\
	gmem.obj		\
	gmessages.obj		\
	gnode.obj		\
	goption.obj	\
	gprimes.obj		\
	gqsort.obj		\
	gqueue.obj		\
	gpattern.obj	\
	gprintf.obj	\
	grand.obj		\
	grel.obj		\
	gscanner.obj		\
	gshell.obj		\
	gslice.obj	\
	gslist.obj		\
	gspawn-win32.obj	\
	gstdio.obj	\
	gstrfuncs.obj		\
	gstring.obj		\
	gthread.obj		\
	gthreadpool.obj		\
	gtimer.obj		\
	gtree.obj		\
	gunibreak.obj		\
	gunicollate.obj		\
	gunidecomp.obj		\
	guniprop.obj		\
	gutf8.obj		\
	gutils.obj		\
	gwin32.obj		\
	localcharset.obj

..\glibconfig.h: ..\glibconfig.h.win32
	copy ..\glibconfig.h.win32 ..\glibconfig.h

..\config.h: ..\config.h.win32
	copy ..\config.h.win32 ..\config.h

galias.h: glib.symbols
	perl makegalias.pl < glib.symbols > galias.h

galiasdef.c: glib.symbols
	  perl makegalias.pl -def < glib.symbols > galiasdef.c

localcharset.c : libcharset/localcharset.c
	copy libcharset\localcharset.c localcharset.c

glib.def: glib.symbols
	echo EXPORTS > glib.def
	cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES glib.symbols >> glib.def

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

################ glib

# create a static libary
# static library can well have the real version number in the name
glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib : $(glib_OBJECTS) gnulib\gnulib.lib
	lib /out:glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib $(glib_OBJECTS) gnulib\gnulib.lib

libglib-2.0-0.dll : $(glib_OBJECTS) gnulib\gnulib.lib glib.def glib.res
	$(CC) $(CFLAGS) -LD -Fe$@ $(glib_OBJECTS) glib.res $(LIBICONV_LIBS) $(INTL_LIBS) \
	gnulib\gnulib.lib $(DIRENT_LIBS) user32.lib advapi32.lib shell32.lib wsock32.lib ole32.lib ws2_32.lib \
	$(LDFLAGS) /implib:glib-2.0.lib /def:glib.def

gspawn-win32-helper.exe : gspawn-win32-helper.c libglib-2.0-@LT_CURRENT_MINUS_AGE@.dll
	$(CC) $(CFLAGS) -Fe$@ -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32-helper.c glib-2.0.lib $(LDFLAGS) /subsystem:windows user32.lib

################ other stuff

clean::
	del ..\config.h
	del ..\glibconfig.h

