## Makefile for building the GLib dlls with Microsoft C
-## Use: nmake -f makefile.msc install
+## Use: nmake -f makefile.msc
-# Change this to wherever you want to install the DLLs. This directory
-# should be in your PATH.
-BIN = C:\bin
+TOP = ..\..
-TOP = ..
-
-!INCLUDE $(TOP)\build\win32\make.msc
-
-# Possibly override GLib version in build\win32\module.defs
-GLIB_VER = @GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@
+!INCLUDE ..\build\win32\make.msc
################################################################
-# Nothing much configurable below
-
-INCLUDES = -I .
-DEFINES = -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib
-DEPCFLAGS = $(LIBICONV_CFLAGS)
-
-DLLS_TO_BUILD = \
- glib-$(GLIB_VER).dll \
- sub-gmodule \
- sub-gthread \
- sub-gobject
-
-all : \
- config.h \
- glibconfig.h \
- $(DLLS_TO_BUILD) \
- gspawn-win32-helper.exe \
- testglib.exe \
- testgdate.exe \
- testgdateparser.exe
-
-install : all
- copy glib-$(GLIB_VER).dll $(BIN)
-
-glib_OBJECTS = \
- garray.obj \
- gasyncqueue.obj \
- gbacktrace.obj \
- gcache.obj \
- gcompletion.obj \
- gdataset.obj \
- gdate.obj \
- gerror.obj \
- gfileutils.obj \
- gconvert.obj \
- ghash.obj \
- ghook.obj \
- giochannel.obj \
- giowin32.obj \
- glist.obj \
- gmain.obj \
- gmem.obj \
- gmessages.obj \
- gnode.obj \
- gprimes.obj \
- gqueue.obj \
- grand.obj \
- grel.obj \
- gscanner.obj \
- gshell.obj \
- gslist.obj \
- gstrfuncs.obj \
- gstring.obj \
- gspawn-win32.obj \
- gthread.obj \
- gthreadpool.obj \
- gtimer.obj \
- gtree.obj \
- gunidecomp.obj \
- guniprop.obj \
- gutf8.obj \
- gutils.obj \
- gwin32.obj
-
-glibconfig.h: glibconfig.h.win32
- copy glibconfig.h.win32 glibconfig.h
-
-config.h: config.h.win32
- copy config.h.win32 config.h
-
-makefile.msc: makefile.msc.in
- $(SED) -e s,@GLIB[_]MAJOR_VERSION@,@GLIB_MAJOR_VERSION@, \
- -e s,@GLIB[_]MINOR_VERSION@,@GLIB_MINOR_VERSION@, <makefile.msc.in >$@
-
-################ glib
-
-glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
- $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) $(LIBICONV_LIBS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def
+INCLUDES = -FImsvc_recommended_pragmas.h -I . -I ..
+DEFINES = \
+ -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=\"GLib\" \
+ -DG_ENABLE_DEBUG -DPCRE_STATIC -DG_DISABLE_DEPRECATED \
+ -DDLL_EXPORT=1
-gspawn-win32-helper.exe : gspawn-win32.c glib-$(GLIB_VER).dll
- $(CC) $(CFLAGS) -Fe$@ -DGSPAWN_HELPER -DG_LOG_DOMAIN=\"gspawn-win32-helper\" gspawn-win32.c glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:windows user32.lib
+DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(DIRENT_CFLAGS)
-################ subdirectories
+all : \
+ ..\config.h \
+ ..\glibconfig.h \
+ gnulib\gnulib.lib \
+ pcre\pcre.lib \
+ libglib-2.0-0.dll \
+ glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib \
+ gspawn-win32-helper.exe \
+ gspawn-win32-helper-console.exe \
-sub-gmodule :
- cd gmodule
- -$(MAKE) -f makefile.msc all
- cd ..
-sub-gthread :
- cd gthread
- -$(MAKE) -f makefile.msc all
+gnulib\gnulib.lib :
+ cd gnulib
+ nmake -f makefile.msc
cd ..
-sub-gobject :
- cd gobject
- -$(MAKE) -f makefile.msc all
+pcre\pcre.lib :
+ cd pcre
+ nmake -f makefile.msc
cd ..
-################ test progs
-
-testglib.obj : testglib.c
- $(CC) -c $(CFLAGS) -DG_LOG_DOMAIN=\"testglib\" testglib.c
+glib_OBJECTS = \
+ garray.obj \
+ gasyncqueue.obj \
+ gatomic.obj \
+ gbacktrace.obj \
+ gbase64.obj \
+ gbookmarkfile.obj \
+ gcache.obj \
+ gchecksum.obj \
+ gcompletion.obj \
+ gconvert.obj \
+ gdataset.obj \
+ gdate.obj \
+ gdir.obj \
+ gerror.obj \
+ gfileutils.obj \
+ ghash.obj \
+ ghostutils.obj \
+ ghook.obj \
+ giochannel.obj \
+ giowin32.obj \
+ gpoll.obj \
+ gkeyfile.obj \
+ glist.obj \
+ gmain.obj \
+ gmappedfile.obj \
+ gmarkup.obj \
+ gmem.obj \
+ gmessages.obj \
+ gnode.obj \
+ goption.obj \
+ gpattern.obj \
+ gprimes.obj \
+ gprintf.obj \
+ gqsort.obj \
+ gqueue.obj \
+ grand.obj \
+ gregex.obj \
+ grel.obj \
+ gscanner.obj \
+ gsequence.obj \
+ gshell.obj \
+ gslice.obj \
+ gslist.obj \
+ gspawn-win32.obj \
+ gstdio.obj \
+ gstrfuncs.obj \
+ gstring.obj \
+ gtestutils.obj \
+ gthread.obj \
+ gthreadpool.obj \
+ gtimer.obj \
+ gtree.obj \
+ gunibreak.obj \
+ gunicollate.obj \
+ gunidecomp.obj \
+ guniprop.obj \
+ gurifuncs.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
+
+localcharset.obj : libcharset\localcharset.c
+ $(CC) $(CFLAGS) -DLIBDIR=\".\" -c libcharset\localcharset.c
+
+glib.def: glib.symbols
+ echo EXPORTS > glib.def
+ cl /EP -DINCLUDE_VARIABLES -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES \
+ -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= \
+ -DG_GNUC_PRINTF=;G_GNUC_PRINTF -DG_GNUC_FORMAT=;G_GNUC_FORMAT glib.symbols >> glib.def
+
+glib.res : glib.rc
+ rc -DBUILDNUMBER=0 -r -fo glib.res glib.rc
-testglib.exe : glib-$(GLIB_VER).dll testglib.obj
- $(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
+################ glib
-testgdate.obj : testgdate.c
- $(CC) -c $(CFLAGS) -DG_LOG_DOMAIN=\"testgdate\" testgdate.c
+# 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 pcre\pcre.lib
+ lib /out:glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib
-testgdate.exe : glib-$(GLIB_VER).dll testgdate.obj
- $(CC) $(CFLAGS) -Fetestgdate.exe testgdate.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
+libglib-2.0-0.dll : $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib glib.def glib.res
+ $(CC) $(CFLAGS) -LD -Fe$@ $(glib_OBJECTS) glib.res $(INTL_LIBS) \
+ gnulib\gnulib.lib pcre\pcre.lib $(DIRENT_LIBS) user32.lib advapi32.lib shell32.lib wsock32.lib ole32.lib ws2_32.lib winmm.lib \
+ $(LDFLAGS) /implib:glib-2.0.lib /def:glib.def
-testgdateparser.obj : testgdateparser.c
- $(CC) -c $(CFLAGS) -DG_LOG_DOMAIN=\"testgdateparser\" testgdateparser.c
+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
-testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.obj
- $(CC) $(CFLAGS) -Fetestgdateparser.exe testgdateparser.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
+gspawn-win32-helper-console.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:console user32.lib
################ other stuff
clean::
- del config.h
- del glibconfig.h
- cd gmodule
- $(MAKE) -f makefile.msc clean
- cd ..
- cd gthread
- $(MAKE) -f makefile.msc clean
- cd ..
- cd gobject
- $(MAKE) -f makefile.msc clean
- cd ..
+ del ..\config.h
+ del ..\glibconfig.h
+