Changing the OpenWatCom support per e-mail from Paul Blew dated Thu 6/11/2009 3:35 AM
[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_state.obj &\r
63         freeglut_stroke_mono_roman.obj &\r
64         freeglut_stroke_roman.obj &\r
65         freeglut_structure.obj &\r
66         freeglut_teapot.obj &\r
67         freeglut_videoresize.obj &\r
68         freeglut_window.obj\r
69 \r
70 default : .SYMBOLIC\r
71         @echo Usage:\r
72         @echo   wmake -f Makefile.wat {target}\r
73         @echo Where target is one of:\r
74         @echo   debug-static\r
75         @echo   debug-dynamic\r
76         @echo   release-static\r
77         @echo   release-dynamic\r
78         @echo   debug\r
79         @echo   release\r
80         @echo   all\r
81         @echo   clean\r
82 \r
83 # static library\r
84 freeglut_static.lib : $(OBJ_FILES)\r
85         $(LIB_TOOL) $(LIB_OPTIONS) $^* $(OBJ_FILES)\r
86 \r
87 # dynamic link library\r
88 freeglut.dll : $(OBJ_FILES)\r
89         $(LINKER) name $^* $(LINK_OPTIONS) $(OBJ_FILES: =,)\r
90 \r
91 freeglut.lib : freeglut.dll\r
92         $(LIB_TOOL) $(LIB_OPTIONS) $^. +$[.\r
93 \r
94 \r
95 freeglut_callbacks.obj : $(SRC_DIR)\freeglut_callbacks.c\r
96         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
97         \r
98 freeglut_cursor.obj : $(SRC_DIR)\freeglut_cursor.c\r
99         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
100 \r
101 freeglut_display.obj : $(SRC_DIR)\freeglut_display.c\r
102         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
103 \r
104 freeglut_ext.obj : $(SRC_DIR)\freeglut_ext.c\r
105         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
106 \r
107 freeglut_font.obj : $(SRC_DIR)\freeglut_font.c\r
108         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
109 \r
110 freeglut_font_data.obj : $(SRC_DIR)\freeglut_font_data.c\r
111         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
112 \r
113 freeglut_gamemode.obj : $(SRC_DIR)\freeglut_gamemode.c\r
114         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
115 \r
116 freeglut_geometry.obj : $(SRC_DIR)\freeglut_geometry.c\r
117         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
118 \r
119 freeglut_glutfont_definitions.obj : $(SRC_DIR)\freeglut_glutfont_definitions.c\r
120         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
121 \r
122 freeglut_init.obj : $(SRC_DIR)\freeglut_init.c\r
123         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
124 \r
125 freeglut_input_devices.obj : $(SRC_DIR)\freeglut_input_devices.c\r
126         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
127 \r
128 freeglut_joystick.obj : $(SRC_DIR)\freeglut_joystick.c\r
129         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
130 \r
131 freeglut_main.obj : $(SRC_DIR)\freeglut_main.c\r
132         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
133 \r
134 freeglut_menu.obj : $(SRC_DIR)\freeglut_menu.c\r
135         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
136 \r
137 freeglut_misc.obj : $(SRC_DIR)\freeglut_misc.c\r
138         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
139 \r
140 freeglut_overlay.obj : $(SRC_DIR)\freeglut_overlay.c\r
141         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
142 \r
143 freeglut_state.obj : $(SRC_DIR)\freeglut_state.c\r
144         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
145 \r
146 freeglut_stroke_mono_roman.obj : $(SRC_DIR)\freeglut_stroke_mono_roman.c\r
147         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
148 \r
149 freeglut_stroke_roman.obj : $(SRC_DIR)\freeglut_stroke_roman.c\r
150         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
151 \r
152 freeglut_structure.obj : $(SRC_DIR)\freeglut_structure.c\r
153         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
154 \r
155 freeglut_teapot.obj : $(SRC_DIR)\freeglut_teapot.c\r
156         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
157 \r
158 freeglut_videoresize.obj : $(SRC_DIR)\freeglut_videoresize.c\r
159         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
160 \r
161 freeglut_window.obj : $(SRC_DIR)\freeglut_window.c\r
162         $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)\r
163 \r
164 clean : .SYMBOLIC\r
165         @-del $(DEBUG_STATIC_DIR)\*.obj\r
166         @-del $(DEBUG_DYNAMIC_DIR)\*.obj\r
167         @-del $(RELEASE_STATIC_DIR)\*.obj\r
168         @-del $(RELEASE_DYNAMIC_DIR)\*.obj\r
169         @echo All object files removed\r
170         \r
171 debug-static : .SYMBOLIC\r
172         @-if not exist $(DEBUG_STATIC_DIR)\. mkdir $(DEBUG_STATIC_DIR)\r
173         @-cd $(DEBUG_STATIC_DIR)\r
174         @$(MAKE) MODE=DEBUG TYPE=STATIC freeglut_static.lib\r
175         @-cd ..\r
176         @echo Debug static library up to date\r
177 \r
178 debug-dynamic : .SYMBOLIC\r
179         @-if not exist $(DEBUG_DYNAMIC_DIR)\. mkdir $(DEBUG_DYNAMIC_DIR)\r
180         @-cd $(DEBUG_DYNAMIC_DIR)\r
181         @$(MAKE) MODE=DEBUG TYPE=DYNAMIC freeglut.lib\r
182         @-cd ..\r
183         @echo Debug dynamic link library up to date\r
184 \r
185 release-static : .SYMBOLIC\r
186         @-if not exist $(RELEASE_STATIC_DIR)\. mkdir $(RELEASE_STATIC_DIR)\r
187         @-cd $(RELEASE_STATIC_DIR)\r
188         @$(MAKE) MODE=RELEASE TYPE=STATIC freeglut_static.lib\r
189         @-cd ..\r
190         @echo Release static library up to date\r
191 \r
192 release-dynamic : .SYMBOLIC\r
193         @-if not exist $(RELEASE_DYNAMIC_DIR)\. mkdir $(RELEASE_DYNAMIC_DIR)\r
194         @-cd $(RELEASE_DYNAMIC_DIR)\r
195         @$(MAKE) MODE=RELEASE TYPE=DYNAMIC freeglut.lib\r
196         @-cd ..\r
197         @echo Release dynamic link library up to date\r
198 \r
199 debug : debug-static debug-dynamic .SYMBOLIC\r
200         @echo Debug targets up to date\r
201 \r
202 release : release-static release-dynamic .SYMBOLIC\r
203         @echo Release targets up to date\r
204 \r
205 all : debug release .SYMBOLIC\r
206         @echo All targets up to date\r