aebf92b3a25f501e9b2c3c3dc4fedff58d13394c
[freeglut] / Makefile.wat
1 #
2 # Makefile.wat
3 # Open Watcom makefile for Freeglut
4 # Usage:
5 #    wmake -f Makefile.wat {target}
6 # Where target is one of:
7 #    debug-static
8 #    debug-dynamic
9 #    release-static
10 #    release-dynamic
11 #    debug
12 #    release
13 #    all
14 #    clean
15 # Assumes:
16 #    WATCOM enviroment variable points to your Watcom installation directory
17 #    %WATCOM%\BINNT and %WATCOM%\BINW are in your path
18 #
19 RELEASE_STATIC_DIR = release-static
20 RELEASE_DYNAMIC_DIR = release-dynamic
21 DEBUG_STATIC_DIR = debug-static
22 DEBUG_DYNAMIC_DIR = debug-dynamic
23
24 INCLUDE_DIR = ..\include
25 SRC_DIR = ..\src\Common
26 COMPILER = wcc386
27 COMPILE_COMMON_OPTIONS = -i$(INCLUDE_DIR);$(%WATCOM)\h;$(%WATCOM)\h\nt -fp6 -w4 -e25 -wcd202 -bt=nt -mf -zq
28 COMPILE_DEBUG_OPTIONS = -d3 -od -DDEBUG -D_DEBUG
29 COMPILE_RELEASE_OPTIONS = -d0 -otexanh
30 COMPILE_STATIC_OPTIONS = -DFREEGLUT_STATIC -6r
31 COMPILE_DYNAMIC_OPTIONS = -DFREEGLUT_EXPORTS -6s -bd -bm
32 COMPILE_OPTIONS = $(COMPILE_COMMON_OPTIONS) $(COMPILE_$(MODE)_OPTIONS) $(COMPILE_$(TYPE)_OPTIONS)
33
34 LINKER = wlink
35 LINK_OPTIONS = SYS nt_dll op m op maxe=25 op q op symf FIL
36
37 LIB_TOOL = wlib
38 LIB_COMMON_OPTIONS = -q -n -b
39 LIB_DYNAMIC_OPTIONS =
40 LIB_STATIC_OPTIONS = -c -p=512
41 LIB_OPTIONS = $(LIB_COMMON_OPTIONS) $(LIB_$(TYPE)_OPTIONS)
42
43 MAKE = wmake -h -f ..\Makefile.wat 
44
45 OBJ_FILES = &
46         freeglut_callbacks.obj &
47         freeglut_cursor.obj &
48         freeglut_display.obj &
49         freeglut_ext.obj &
50         freeglut_font.obj &
51         freeglut_font_data.obj &
52         freeglut_gamemode.obj &
53         freeglut_geometry.obj &
54         freeglut_glutfont_definitions.obj &
55         freeglut_init.obj &
56         freeglut_input_devices.obj &
57         freeglut_joystick.obj &
58         freeglut_main.obj &
59         freeglut_menu.obj &
60         freeglut_misc.obj &
61         freeglut_overlay.obj &
62         freeglut_spaceball.obj &
63         freeglut_state.obj &
64         freeglut_stroke_mono_roman.obj &
65         freeglut_stroke_roman.obj &
66         freeglut_structure.obj &
67         freeglut_teapot.obj &
68         freeglut_videoresize.obj &
69         freeglut_window.obj
70
71 default : .SYMBOLIC
72         @echo Usage:
73         @echo   wmake -f Makefile.wat {target}
74         @echo Where target is one of:
75         @echo   debug-static
76         @echo   debug-dynamic
77         @echo   release-static
78         @echo   release-dynamic
79         @echo   debug
80         @echo   release
81         @echo   all
82         @echo   clean
83
84 # static library
85 freeglut_static.lib : $(OBJ_FILES)
86         $(LIB_TOOL) $(LIB_OPTIONS) $^* $(OBJ_FILES)
87
88 # dynamic link library
89 freeglut.dll : $(OBJ_FILES)
90         $(LINKER) name $^* $(LINK_OPTIONS) $(OBJ_FILES: =,)
91
92 freeglut.lib : freeglut.dll
93         $(LIB_TOOL) $(LIB_OPTIONS) $^. +$[.
94
95
96 freeglut_callbacks.obj : $(SRC_DIR)\freeglut_callbacks.c
97         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
98         
99 freeglut_cursor.obj : $(SRC_DIR)\freeglut_cursor.c
100         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
101
102 freeglut_display.obj : $(SRC_DIR)\freeglut_display.c
103         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
104
105 freeglut_ext.obj : $(SRC_DIR)\freeglut_ext.c
106         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
107
108 freeglut_font.obj : $(SRC_DIR)\freeglut_font.c
109         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
110
111 freeglut_font_data.obj : $(SRC_DIR)\freeglut_font_data.c
112         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
113
114 freeglut_gamemode.obj : $(SRC_DIR)\freeglut_gamemode.c
115         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
116
117 freeglut_geometry.obj : $(SRC_DIR)\freeglut_geometry.c
118         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
119
120 freeglut_glutfont_definitions.obj : $(SRC_DIR)\freeglut_glutfont_definitions.c
121         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
122
123 freeglut_init.obj : $(SRC_DIR)\freeglut_init.c
124         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
125
126 freeglut_input_devices.obj : $(SRC_DIR)\freeglut_input_devices.c
127         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
128
129 freeglut_joystick.obj : $(SRC_DIR)\freeglut_joystick.c
130         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
131
132 freeglut_main.obj : $(SRC_DIR)\freeglut_main.c
133         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
134
135 freeglut_menu.obj : $(SRC_DIR)\freeglut_menu.c
136         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
137
138 freeglut_misc.obj : $(SRC_DIR)\freeglut_misc.c
139         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
140
141 freeglut_overlay.obj : $(SRC_DIR)\freeglut_overlay.c
142         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
143
144 freeglut_spaceball.obj : $(SRC_DIR)\freeglut_spaceball.c
145         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
146
147 freeglut_state.obj : $(SRC_DIR)\freeglut_state.c
148         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
149
150 freeglut_stroke_mono_roman.obj : $(SRC_DIR)\freeglut_stroke_mono_roman.c
151         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
152
153 freeglut_stroke_roman.obj : $(SRC_DIR)\freeglut_stroke_roman.c
154         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
155
156 freeglut_structure.obj : $(SRC_DIR)\freeglut_structure.c
157         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
158
159 freeglut_teapot.obj : $(SRC_DIR)\freeglut_teapot.c
160         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
161
162 freeglut_videoresize.obj : $(SRC_DIR)\freeglut_videoresize.c
163         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
164
165 freeglut_window.obj : $(SRC_DIR)\freeglut_window.c
166         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
167
168 clean : .SYMBOLIC
169         @-del $(DEBUG_STATIC_DIR)\*.obj
170         @-del $(DEBUG_DYNAMIC_DIR)\*.obj
171         @-del $(RELEASE_STATIC_DIR)\*.obj
172         @-del $(RELEASE_DYNAMIC_DIR)\*.obj
173         @echo All object files removed
174         
175 debug-static : .SYMBOLIC
176         @-if not exist $(DEBUG_STATIC_DIR)\. mkdir $(DEBUG_STATIC_DIR)
177         @-cd $(DEBUG_STATIC_DIR)
178         @$(MAKE) MODE=DEBUG TYPE=STATIC freeglut_static.lib
179         @-cd ..
180         @echo Debug static library up to date
181
182 debug-dynamic : .SYMBOLIC
183         @-if not exist $(DEBUG_DYNAMIC_DIR)\. mkdir $(DEBUG_DYNAMIC_DIR)
184         @-cd $(DEBUG_DYNAMIC_DIR)
185         @$(MAKE) MODE=DEBUG TYPE=DYNAMIC freeglut.lib
186         @-cd ..
187         @echo Debug dynamic link library up to date
188
189 release-static : .SYMBOLIC
190         @-if not exist $(RELEASE_STATIC_DIR)\. mkdir $(RELEASE_STATIC_DIR)
191         @-cd $(RELEASE_STATIC_DIR)
192         @$(MAKE) MODE=RELEASE TYPE=STATIC freeglut_static.lib
193         @-cd ..
194         @echo Release static library up to date
195
196 release-dynamic : .SYMBOLIC
197         @-if not exist $(RELEASE_DYNAMIC_DIR)\. mkdir $(RELEASE_DYNAMIC_DIR)
198         @-cd $(RELEASE_DYNAMIC_DIR)
199         @$(MAKE) MODE=RELEASE TYPE=DYNAMIC freeglut.lib
200         @-cd ..
201         @echo Release dynamic link library up to date
202
203 debug : debug-static debug-dynamic .SYMBOLIC
204         @echo Debug targets up to date
205
206 release : release-static release-dynamic .SYMBOLIC
207         @echo Release targets up to date
208
209 all : debug release .SYMBOLIC
210         @echo All targets up to date