3 # Open Watcom makefile for Freeglut
5 # wmake -f Makefile.wat {target}
6 # Where target is one of:
16 # WATCOM enviroment variable points to your Watcom installation directory
17 # %WATCOM%\BINNT and %WATCOM%\BINW are in your path
19 RELEASE_STATIC_DIR = release-static
20 RELEASE_DYNAMIC_DIR = release-dynamic
21 DEBUG_STATIC_DIR = debug-static
22 DEBUG_DYNAMIC_DIR = debug-dynamic
24 INCLUDE_DIR = ..\include
25 SRC_DIR = ..\src\Common
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)
35 LINK_OPTIONS = SYS nt_dll op m op maxe=25 op q op symf FIL
38 LIB_COMMON_OPTIONS = -q -n -b
40 LIB_STATIC_OPTIONS = -c -p=512
41 LIB_OPTIONS = $(LIB_COMMON_OPTIONS) $(LIB_$(TYPE)_OPTIONS)
43 MAKE = wmake -h -f ..\Makefile.wat
46 freeglut_callbacks.obj &
48 freeglut_display.obj &
51 freeglut_font_data.obj &
52 freeglut_gamemode.obj &
53 freeglut_geometry.obj &
54 freeglut_glutfont_definitions.obj &
56 freeglut_input_devices.obj &
57 freeglut_joystick.obj &
61 freeglut_overlay.obj &
62 freeglut_spaceball.obj &
64 freeglut_stroke_mono_roman.obj &
65 freeglut_stroke_roman.obj &
66 freeglut_structure.obj &
68 freeglut_videoresize.obj &
73 @echo wmake -f Makefile.wat {target}
74 @echo Where target is one of:
85 freeglut_static.lib : $(OBJ_FILES)
86 $(LIB_TOOL) $(LIB_OPTIONS) $^* $(OBJ_FILES)
88 # dynamic link library
89 freeglut.dll : $(OBJ_FILES)
90 $(LINKER) name $^* $(LINK_OPTIONS) $(OBJ_FILES: =,)
92 freeglut.lib : freeglut.dll
93 $(LIB_TOOL) $(LIB_OPTIONS) $^. +$[.
96 freeglut_callbacks.obj : $(SRC_DIR)\freeglut_callbacks.c
97 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
99 freeglut_cursor.obj : $(SRC_DIR)\freeglut_cursor.c
100 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
102 freeglut_display.obj : $(SRC_DIR)\freeglut_display.c
103 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
105 freeglut_ext.obj : $(SRC_DIR)\freeglut_ext.c
106 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
108 freeglut_font.obj : $(SRC_DIR)\freeglut_font.c
109 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
111 freeglut_font_data.obj : $(SRC_DIR)\freeglut_font_data.c
112 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
114 freeglut_gamemode.obj : $(SRC_DIR)\freeglut_gamemode.c
115 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
117 freeglut_geometry.obj : $(SRC_DIR)\freeglut_geometry.c
118 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
120 freeglut_glutfont_definitions.obj : $(SRC_DIR)\freeglut_glutfont_definitions.c
121 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
123 freeglut_init.obj : $(SRC_DIR)\freeglut_init.c
124 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
126 freeglut_input_devices.obj : $(SRC_DIR)\freeglut_input_devices.c
127 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
129 freeglut_joystick.obj : $(SRC_DIR)\freeglut_joystick.c
130 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
132 freeglut_main.obj : $(SRC_DIR)\freeglut_main.c
133 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
135 freeglut_menu.obj : $(SRC_DIR)\freeglut_menu.c
136 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
138 freeglut_misc.obj : $(SRC_DIR)\freeglut_misc.c
139 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
141 freeglut_overlay.obj : $(SRC_DIR)\freeglut_overlay.c
142 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
144 freeglut_spaceball.obj : $(SRC_DIR)\freeglut_spaceball.c
145 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
147 freeglut_state.obj : $(SRC_DIR)\freeglut_state.c
148 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
150 freeglut_stroke_mono_roman.obj : $(SRC_DIR)\freeglut_stroke_mono_roman.c
151 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
153 freeglut_stroke_roman.obj : $(SRC_DIR)\freeglut_stroke_roman.c
154 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
156 freeglut_structure.obj : $(SRC_DIR)\freeglut_structure.c
157 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
159 freeglut_teapot.obj : $(SRC_DIR)\freeglut_teapot.c
160 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
162 freeglut_videoresize.obj : $(SRC_DIR)\freeglut_videoresize.c
163 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
165 freeglut_window.obj : $(SRC_DIR)\freeglut_window.c
166 $(COMPILER) $(SRC_DIR)\$[. $(COMPILE_OPTIONS)
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
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
180 @echo Debug static library up to date
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
187 @echo Debug dynamic link library up to date
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
194 @echo Release static library up to date
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
201 @echo Release dynamic link library up to date
203 debug : debug-static debug-dynamic .SYMBOLIC
204 @echo Debug targets up to date
206 release : release-static release-dynamic .SYMBOLIC
207 @echo Release targets up to date
209 all : debug release .SYMBOLIC
210 @echo All targets up to date