Batch of new documentation that should be easier to maintain and extend.
[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+nul
13
14 GLIB_VER = 1.1
15
16 CFLAGS = -I. 
17
18 all : \
19         glibconfig.h    \
20         config.h        \
21         glib-$(GLIB_VER).dll    \
22         gmodule\gmoduleconf.h \
23         gmodule-$(GLIB_VER).dll \
24         testglib.exe    \
25         testgmodule.exe
26
27 install : all
28         $(INSTALL) glib-$(GLIB_VER).dll $(BIN)
29         $(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
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 config.h: config.h.win32
60         copy config.h.win32 config.h
61
62 .c.obj :
63         $(CC) $(CFLAGS) -GD -c -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
64
65 gmodule_OBJECTS = \
66         gmodule.obj
67
68 gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
69         $(CC) $(CFLAGS) -MD -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
70
71 gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
72         $(CC) $(CFLAGS) -Igmodule -c -DG_LIB_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
73
74 gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
75         copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
76
77 testglib.exe : glib-$(GLIB_VER).dll testglib.obj
78         $(CC) $(CFLAGS) -MD -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /map
79
80 testglib.obj : testglib.c
81         $(CC) -c $(CFLAGS) testglib.c
82
83 testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
84         $(CC) $(CFLAGS) -MD testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
85
86 testgmodule.obj : gmodule\testgmodule.c
87         $(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
88
89 libgplugin_a.dll : libgplugin_a.obj
90         $(CC) $(CFLAGS) -MD -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
91
92 libgplugin_a.obj : gmodule\libgplugin_a.c
93         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
94
95 libgplugin_b.dll : libgplugin_b.obj
96         $(CC) $(CFLAGS) -MD -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib  $(LDFLAGS)
97
98 libgplugin_b.obj : gmodule\libgplugin_b.c
99         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
100
101 clean:
102         del config.h
103         del glibconfig.h
104         del gmodule\gmoduleconf.h
105         del *.exe
106         del *.obj
107         del *.dll
108         del *.lib
109         del *.err
110         del *.map
111         del *.sym
112         del *.exp
113         del *.lk1
114         del *.mk1
115         del *.pdb
116         del *.ilk