win32 patch from Tor Lillqvist (glib-tml-981027-0), fixes some minor
[platform/upstream/glib.git] / makefile.msc
1 ## Makefile for building the GLib and gmodule dll with Microsoft C
2 ## Use: nmake -f makefile.msc install
3
4 # Change this to wherever you want to install the dlls
5 BIN = C:\bin
6
7 # cl -? described the options
8 CC = cl -G5 -GF -Ox -W3 -D_DLL -nologo
9
10 LDFLAGS = /link /nodefaultlib:libc msvcrt.lib # /debug:full /debugtype:cv 
11 INSTALL = copy
12 TOUCH = copy makefile.msc
13
14 GLIB_VER = 1.1
15
16 CFLAGS = -I. 
17
18 all : \
19         glibconfig.h    \
20         glib-$(GLIB_VER).dll    \
21         gmodule\gmoduleconf.h \
22         gmodule-$(GLIB_VER).dll \
23         testglib.exe    \
24         testgmodule.exe
25
26 install : all
27         $(INSTALL) glib-$(GLIB_VER).dll $(BIN)
28         $(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
29         $(TOUCH) install
30
31 glib_OBJECTS = \
32         garray.obj      \
33         gcache.obj      \
34         gcompletion.obj \
35         gdataset.obj    \
36         gerror.obj      \
37         ghook.obj       \
38         ghash.obj       \
39         glist.obj       \
40         gmem.obj        \
41         gmessages.obj   \
42         gnode.obj       \
43         gprimes.obj     \
44         gslist.obj      \
45         gtimer.obj      \
46         gtree.obj       \
47         grel.obj        \
48         gstring.obj     \
49         gstrfuncs.obj   \
50         gscanner.obj    \
51         gutils.obj
52
53 glib-$(GLIB_VER).dll : $(glib_OBJECTS)
54         $(CC) $(CFLAGS) -MD -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.lib $(LDFLAGS) /def:glib.def
55
56 glibconfig.h: glibconfig.h.win32
57         copy glibconfig.h.win32 glibconfig.h
58
59 .c.obj :
60         $(CC) $(CFLAGS) -GD -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
61
62 gmodule_OBJECTS = \
63         gmodule.obj
64
65 gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
66         $(CC) $(CFLAGS) -MD -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
67
68 gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
69         $(CC) $(CFLAGS) -Igmodule -c -DG_LIB_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
70
71 gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
72         copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
73
74 testglib.exe : glib-$(GLIB_VER).dll testglib.obj
75         $(CC) $(CFLAGS) -MD -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /map
76
77 testglib.obj : testglib.c
78         $(CC) -c $(CFLAGS) testglib.c
79
80 testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
81         $(CC) $(CFLAGS) -MD testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
82
83 testgmodule.obj : gmodule\testgmodule.c
84         $(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
85
86 libgplugin_a.dll : libgplugin_a.obj
87         $(CC) $(CFLAGS) -MD -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
88
89 libgplugin_a.obj : gmodule\libgplugin_a.c
90         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
91
92 libgplugin_b.dll : libgplugin_b.obj
93         $(CC) $(CFLAGS) -MD -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib  $(LDFLAGS)
94
95 libgplugin_b.obj : gmodule\libgplugin_b.c
96         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
97
98 clean:
99         del *.exe
100         del *.obj
101         del *.dll
102         del *.lib
103         del *.err
104         del *.map
105         del *.sym
106         del *.exp
107         del *.lk1
108         del *.mk1
109         del *.pdb
110         del *.ilk