6b6cf830a8e8fb0b988cd52c7e7cb400dd071769
[platform/upstream/glib.git] / makefile.msc
1 ## Makefile for building the GLib, gmodule and gthread dlls with Microsoft C
2 ## Use: nmake -f makefile.msc install
3
4 # Change this to wherever you want to install the DLLs. This directory
5 # should be in your PATH.
6 BIN = C:\bin
7
8 # This is the location of pthreads for Win32, 
9 # see http://sourceware.cygnus.com/pthreads-win32/
10 PTHREAD_LIB = ..\lib\pthread.lib
11 PTHREAD_INC = ..\include
12
13 ################################################################
14
15 # Nothing much configurable below
16
17 # cl -? described the options
18 CC = cl -G5 -GF -Ox -W3 -MD -nologo
19
20 # No general LDFLAGS needes
21 LDFLAGS = /link
22 INSTALL = copy
23
24 GLIB_VER = 1.3
25
26 CFLAGS = -I. -DHAVE_CONFIG_H
27
28 all : \
29         glibconfig.h    \
30         config.h        \
31         glib-$(GLIB_VER).dll    \
32         gmodule\gmoduleconf.h \
33         gmodule-$(GLIB_VER).dll \
34         gthread-$(GLIB_VER).dll \
35         testglib.exe    \
36         testgmodule.exe \
37         testgdate.exe   \
38         testgdateparser.exe \
39         testgthread.exe
40
41 install : all
42         $(INSTALL) glib-$(GLIB_VER).dll $(BIN)
43         $(INSTALL) gmodule-$(GLIB_VER).dll $(BIN)
44         $(INSTALL) gthread-$(GLIB_VER).dll $(BIN)
45
46 glib_OBJECTS = \
47         garray.obj      \
48         gcache.obj      \
49         gcompletion.obj \
50         gdataset.obj    \
51         gdate.obj       \
52         gerror.obj      \
53         ghook.obj       \
54         ghash.obj       \
55         giochannel.obj  \
56         giowin32.obj    \
57         glist.obj       \
58         gmain.obj       \
59         gmem.obj        \
60         gmessages.obj   \
61         gmutex.obj      \
62         gnode.obj       \
63         gprimes.obj     \
64         gqueue.obj      \
65         gslist.obj      \
66         gstack.obj      \
67         gtimer.obj      \
68         gtree.obj       \
69         grel.obj        \
70         gstring.obj     \
71         gstrfuncs.obj   \
72         gscanner.obj    \
73         gutils.obj
74
75 glib-$(GLIB_VER).dll : $(glib_OBJECTS) glib.def
76         $(CC) $(CFLAGS) -LD -Feglib-$(GLIB_VER).dll $(glib_OBJECTS) user32.lib advapi32.lib wsock32.lib $(LDFLAGS) /def:glib.def
77
78 glibconfig.h: glibconfig.h.win32
79         copy glibconfig.h.win32 glibconfig.h
80
81 config.h: config.h.win32
82         copy config.h.win32 config.h
83
84 .c.obj :
85         $(CC) $(CFLAGS) -GD -c -DGLIB_COMPILATION -DG_LOG_DOMAIN=g_log_domain_glib $<
86
87 gmodule_OBJECTS = \
88         gmodule.obj
89
90 gmodule-$(GLIB_VER).dll : $(gmodule_OBJECTS)
91         $(CC) $(CFLAGS) -LD -Fegmodule-$(GLIB_VER).dll $(gmodule_OBJECTS) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gmodule\gmodule.def
92
93 gmodule.obj : gmodule\gmodule.c gmodule\gmodule-win32.c
94         $(CC) $(CFLAGS) -GD -Igmodule -c -DG_LOG_DOMAIN=g_log_domain_gmodule gmodule\gmodule.c
95
96 gmodule\gmoduleconf.h: gmodule\gmoduleconf.h.win32
97         copy gmodule\gmoduleconf.h.win32 gmodule\gmoduleconf.h
98
99 gthread_OBJECTS = \
100         gthread.obj
101
102 gthread-$(GLIB_VER).dll : $(gthread_OBJECTS)
103         $(CC) $(CFLAGS) -LD -Fegthread-$(GLIB_VER).dll $(gthread_OBJECTS) glib-$(GLIB_VER).lib $(PTHREAD_LIB) glib-$(GLIB_VER).lib $(LDFLAGS) /def:gthread\gthread.def
104
105 gthread.obj : gthread\gthread.c gthread\gthread-posix.c
106         $(CC) $(CFLAGS) -GD -I$(PTHREAD_INC) -DG_LOG_DOMAIN=\"GThread\" -c gthread\gthread.c
107
108 testglib.exe : glib-$(GLIB_VER).dll testglib.obj
109         $(CC) $(CFLAGS) -Fetestglib.exe testglib.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
110
111 testglib.obj : testglib.c
112         $(CC) -c $(CFLAGS) testglib.c
113
114 testgdate.exe : glib-$(GLIB_VER).dll testgdate.obj
115         $(CC) $(CFLAGS) -Fetestgdate.exe testgdate.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
116
117 testgdate.obj : testgdate.c
118         $(CC) -c $(CFLAGS) testgdate.c
119
120 testgdateparser.exe : glib-$(GLIB_VER).dll testgdateparser.obj
121         $(CC) $(CFLAGS) -Fetestgdateparser.exe testgdateparser.obj glib-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console
122
123 testgdateparser.obj : testgdateparser.c
124         $(CC) -c $(CFLAGS) testgdateparser.c
125
126 testgmodule.exe : glib-$(GLIB_VER).dll gmodule-$(GLIB_VER).dll testgmodule.obj libgplugin_a.dll libgplugin_b.dll
127         $(CC) $(CFLAGS) testgmodule.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS) /subsystem:console 
128
129 testgmodule.obj : gmodule\testgmodule.c
130         $(CC) $(CFLAGS) -Igmodule -c gmodule\testgmodule.c
131
132 libgplugin_a.dll : libgplugin_a.obj
133         $(CC) $(CFLAGS) -LD libgplugin_a.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib $(LDFLAGS)
134
135 libgplugin_a.obj : gmodule\libgplugin_a.c
136         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_a.c
137
138 libgplugin_b.dll : libgplugin_b.obj
139         $(CC) $(CFLAGS) -LD libgplugin_b.obj glib-$(GLIB_VER).lib gmodule-$(GLIB_VER).lib  $(LDFLAGS)
140
141 libgplugin_b.obj : gmodule\libgplugin_b.c
142         $(CC) $(CFLAGS) -Igmodule -c gmodule\libgplugin_b.c
143
144 testgthread.exe : glib-$(GLIB_VER).dll gthread-$(GLIB_VER).dll testgthread.obj
145         $(CC) $(CFLAGS) testgthread.obj glib-$(GLIB_VER).lib gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS) /subsystem:console 
146
147 testgthread.obj : gthread\testgthread.c
148         $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c gthread\testgthread.c
149
150 clean:
151         del config.h
152         del glibconfig.h
153         del gmodule\gmoduleconf.h
154         del *.exe
155         del *.obj
156         del *.dll
157         del *.lib
158         del *.err
159         del *.map
160         del *.sym
161         del *.exp
162         del *.lk1
163         del *.mk1
164         del *.pdb
165         del *.ilk