-## Makefile for building the GLib, gmodule and gthread dlls with Microsoft C
-## Use: nmake -f makefile.msc install
+## Makefile for building the GLib dlls with Microsoft C
+## 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 = ..\..
-# This is the location of pthreads for Win32,
-# see http://sourceware.cygnus.com/pthreads-win32/
-# We want the 1999-05-30 snapshot.
-PTHREADS = ..\pthreads-snap-1999-05-30
-PTHREAD_LIB = $(PTHREADS)\pthread.lib
-PTHREAD_INC = -I $(PTHREADS)
-
-# Full optimization:
-OPTIMIZE = -Ox
-# Debugging:
-#OPTIMIZE = -Zi
+!INCLUDE ..\build\win32\make.msc
################################################################
-# Nothing much configurable below
-
-# cl -? describes the options
-CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -nologo
-
-# No general LDFLAGS needed
-LDFLAGS = /link # /debug
-INSTALL = copy
-
-GLIB_VER = @GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@
-
-CFLAGS = -I. -DHAVE_CONFIG_H
-
-all : \
- glibconfig.h \
- config.h \
- glib-$(GLIB_VER).dll \
- gmodule\gmoduleconf.h \
- gmodule-$(GLIB_VER).dll \
- gthread-$(GLIB_VER).dll \
- testglib.exe \
- testgmodule.exe \
- testgdate.exe \
- testgdateparser.exe
-
-install : all
- $(INSTALL) glib-$(GLIB_VER).dll $(BIN)
- $(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
- $(INSTALL) gthread-$(GLIB_VER).dll $(BIN)
-
-glib_OBJECTS = \
- garray.obj \
- gcache.obj \
+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
+
+DEPCFLAGS = -Zm400 $(INTL_CFLAGS) $(DIRENT_CFLAGS)
+
+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 \
+
+
+gnulib\gnulib.lib :
+ cd gnulib
+ nmake -f makefile.msc
+ cd ..
+
+pcre\pcre.lib :
+ cd pcre
+ nmake -f makefile.msc
+ cd ..
+
+glib_OBJECTS = \
+ garray.obj \
+ gasyncqueue.obj \
+ gatomic.obj \
+ gbacktrace.obj \
+ gbase64.obj \
+ gbookmarkfile.obj \
+ gcache.obj \
+ gchecksum.obj \
gcompletion.obj \
- gdataset.obj \
- gdate.obj \
- gerror.obj \
- ghook.obj \
- ghash.obj \
- giochannel.obj \
- giowin32.obj \
- glist.obj \
- gmain.obj \
- gmem.obj \
- gmessages.obj \
- gnode.obj \
- gprimes.obj \
- gqueue.obj \
- grand.obj \
- gslist.obj \
- gstack.obj \
- gthread.obj \
- gtimer.obj \
- gtree.obj \
- grel.obj \
- gstring.obj \
- gstrfuncs.obj \
- gscanner.obj \
- gutils.obj
-
-glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
- $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def
-
-glibconfig.h: glibconfig.h.win32
- copy glibconfig.h.win32 glibconfig.h
-
-config.h: config.h.win32
- copy config.h.win32 config.h
-
-.c.obj :
- $(CC) $(CFLAGS) -GD -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
-
-gmodule_OBJECTS = \
- gmodule.obj
-
-gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS) gmodule\gmodule.def
- $(CC) $(CFLAGS) -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
-
-gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
- $(CC) $(CFLAGS) -GD -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
-
-gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
- copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
-
-gthread_OBJECTS = \
- gthread-impl.obj
-
-gthread-$(GLIB_VER).dll : $(gthread_OBJECTS) gthread\gthread.def
- $(CC) $(CFLAGS) -LD -Fegthread-$(GLIB_VER).dll $(gthread_OBJECTS) glib-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) /def:gthread\gthread.def
-
-gthread-impl.obj : gthread\gthread-impl.c gthread\gthread-posix.c
- $(CC) $(CFLAGS) -GD $(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread\gthread-impl.c
-
-testglib.exe : glib-$(GLIB_VER).dll testglib.obj
- $(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testglib.obj : testglib.c
- $(CC) -c $(CFLAGS) testglib.c
-
-testgdate.exe : glib-$(GLIB_VER).dll testgdate.obj
- $(CC) $(CFLAGS) -Fetestgdate.exe testgdate.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdate.obj : testgdate.c
- $(CC) -c $(CFLAGS) testgdate.c
-
-testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.obj
- $(CC) $(CFLAGS) -Fetestgdateparser.exe testgdateparser.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgdateparser.obj : testgdateparser.c
- $(CC) -c $(CFLAGS) testgdateparser.c
-
-testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
- $(CC) $(CFLAGS) testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
-
-testgmodule.obj : gmodule\testgmodule.c
- $(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
-
-libgplugin_a.dll : libgplugin_a.obj
- $(CC) $(CFLAGS) -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
-
-libgplugin_a.obj : gmodule\libgplugin_a.c
- $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
-
-libgplugin_b.dll : libgplugin_b.obj
- $(CC) $(CFLAGS) -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
-
-libgplugin_b.obj : gmodule\libgplugin_b.c
- $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
-
-clean:
- del config.h
- del glibconfig.h
- del gmodule\gmoduleconf.h
- del *.exe
- del *.obj
- del *.dll
- del *.lib
- del *.err
- del *.map
- del *.sym
- del *.exp
- del *.lk1
- del *.mk1
- del *.pdb
- del *.ilk
+ 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
+
+################ 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 pcre\pcre.lib
+ lib /out:glib-@GLIB_MAJOR_VERSION@.@GLIB_MINOR_VERSION@s.lib $(glib_OBJECTS) gnulib\gnulib.lib pcre\pcre.lib
+
+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
+
+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
+
+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
+