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