summaryrefslogtreecommitdiff
path: root/makefile.msc
blob: 6a7f9b6e2857243e25c77fbeec77d3cec9ca7691 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
## Makefile for building the GLib and gmodule dll with Microsoft C
## Use: nmake -f makefile.msc install

# Change this to wherever you want to install the DLLs. This directory
# should be in your PATH.
BIN = C:\bin

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

# Nothing much configurable below

# cl -? described the options
CC = cl -G5 -GF -Ox -W3 -D_DLL -nologo

LDFLAGS = /link /nodefaultlib:libc msvcrt.lib # /debug:full /debugtype:cv 
INSTALL = copy
TOUCH = copy makefile.msc+nul

GLIB_VER = 1.1

CFLAGS = -I. 

all : \
	glibconfig.h	\
	config.h	\
	glib-$(GLIB_VER).dll	\
	gmodule\gmoduleconf.h \
	gmodule-$(GLIB_VER).dll	\
	testglib.exe	\
	testgmodule.exe

install : all
	$(INSTALL) glib-$(GLIB_VER).dll $(BIN)
	$(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)

glib_OBJECTS = \
	garray.obj	\
	gcache.obj	\
	gcompletion.obj	\
	gdataset.obj	\
	gerror.obj	\
	ghook.obj	\
	ghash.obj	\
	glist.obj	\
	gmem.obj	\
	gmessages.obj	\
	gnode.obj	\
	gprimes.obj	\
	gslist.obj	\
	gtimer.obj	\
	gtree.obj	\
	grel.obj	\
	gstring.obj	\
	gstrfuncs.obj	\
	gscanner.obj	\
	gutils.obj

glib-$(GLIB_VER).dll : $(glib_OBJECTS)
	$(CC) $(CFLAGS) -MD -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.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 -DHAVE_CONFIG_H -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<

gmodule_OBJECTS = \
	gmodule.obj

gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
	$(CC) $(CFLAGS) -MD -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) -Igmodule -c -DG_LIB_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c

gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
	copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h

testglib.exe : glib-$(GLIB_VER).dll testglib.obj
	$(CC) $(CFLAGS) -MD -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /map

testglib.obj : testglib.c
	$(CC) -c $(CFLAGS) testglib.c

testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
	$(CC) $(CFLAGS) -MD testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)

testgmodule.obj : gmodule\testgmodule.c
	$(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c

libgplugin_a.dll : libgplugin_a.obj
	$(CC) $(CFLAGS) -MD -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) -MD -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