Merge branch 'mesa_7_6_branch' into mesa_7_7_branch
[mesa.git] / src / mesa / main / Makefile.ugl
1 # Mesa 3-D graphics library
2 # Version: 4.1
3 #
4 # Copyright (C) 2001 Wind River Systems, Inc
5
6 # The MIT License
7 # Permission is hereby granted, free of charge, to any person obtaining a
8 # copy of this software and associated documentation files (the "Software"),
9 # to deal in the Software without restriction, including without limitation
10 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 # and/or sell copies of the Software, and to permit persons to whom the
12 # Software is furnished to do so, subject to the following conditions:
13 #
14 # The above copyright notice and this permission notice shall be included
15 # in all copies or substantial portions of the Software.
16 #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23 # DEALINGS IN THE SOFTWARE.
24
25 # Makefile for core library
26
27 # This makefile can moved all objects files in MESA_OBJ for use with
28 # ld in windShell or create a library from objects files in their
29 # associated .c folder.
30 #
31 # For an easy inclusion of lib$(CPU)$(TOOL)GL.a in vxworks image, this
32 # makefile collects together all .o in an only file
33 # (obj$(CPU)$(TOOL)GL.o). This operation is unnecessary for
34 # lib$(CPU)$(TOOL)OSMesa.a and lib$(CPU)$(TOOL)UglMesa.a because they
35 # already contain only one file.
36 #
37 ##### MACROS #####
38 MESA_MAJOR=4
39 MESA_MINOR=1
40 MESA_TINY=0
41 VERSION=$(MESA_MAJOR).$(MESA_MINOR)
42
43 GL_MAJOR = 1
44 GL_MINOR = 2
45 GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
46
47 ##### RULES #####
48
49 include ..\rules.windml
50
51 #### GL #####
52
53 GL_SOURCES = \
54 api_arrayelt.c \
55 api_loopback.c \
56 api_noop.c \
57 api_validate.c \
58 accum.c \
59 arbprogram.c \
60 attrib.c \
61 blend.c \
62 bufferobj.c \
63 buffers.c \
64 clip.c \
65 colortab.c \
66 context.c \
67 convolve.c \
68 debug.c \
69 depth.c \
70 dispatch.c \
71 dlist.c \
72 drawpix.c \
73 enable.c \
74 enums.c \
75 eval.c \
76 extensions.c \
77 feedback.c \
78 fog.c \
79 get.c \
80 glapi.c \
81 glthread.c \
82 hash.c \
83 hint.c \
84 histogram.c \
85 image.c \
86 imports.c \
87 light.c \
88 lines.c \
89 matrix.c \
90 pixel.c \
91 points.c \
92 polygon.c \
93 rastpos.c \
94 state.c \
95 stencil.c \
96 texcompress.c \
97 texformat.c \
98 teximage.c \
99 texobj.c \
100 texstate.c \
101 texstore.c \
102 texutil.c \
103 varray.c \
104 vtxfmt.c \
105 X86/x86.c \
106 X86/common_x86.c \
107 X86/3dnow.c \
108 X86/sse.c \
109 math/m_debug_clip.c \
110 math/m_debug_norm.c \
111 math/m_debug_vertex.c \
112 math/m_debug_xform.c \
113 math/m_eval.c \
114 math/m_matrix.c \
115 math/m_translate.c \
116 math/m_vector.c \
117 math/m_vertices.c \
118 math/m_xform.c \
119 array_cache/ac_context.c \
120 array_cache/ac_import.c \
121 swrast/s_aaline.c \
122 swrast/s_aatriangle.c \
123 swrast/s_accum.c \
124 swrast/s_alpha.c \
125 swrast/s_alphabuf.c \
126 swrast/s_bitmap.c \
127 swrast/s_blend.c \
128 swrast/s_buffers.c \
129 swrast/s_copypix.c \
130 swrast/s_context.c \
131 swrast/s_depth.c \
132 swrast/s_drawpix.c \
133 swrast/s_feedback.c \
134 swrast/s_fog.c \
135 swrast/s_imaging.c \
136 swrast/s_lines.c \
137 swrast/s_logic.c \
138 swrast/s_masking.c \
139 swrast/s_pixeltex.c \
140 swrast/s_points.c \
141 swrast/s_readpix.c \
142 swrast/s_span.c \
143 swrast/s_stencil.c \
144 swrast/s_texture.c \
145 swrast/s_texstore.c \
146 swrast/s_triangle.c \
147 swrast/s_zoom.c \
148 swrast_setup/ss_context.c \
149 swrast_setup/ss_triangle.c \
150 swrast_setup/ss_vb.c \
151 tnl/t_array_api.c \
152 tnl/t_array_import.c \
153 tnl/t_context.c \
154 tnl/t_eval_api.c \
155 tnl/t_imm_alloc.c \
156 tnl/t_imm_api.c \
157 tnl/t_imm_debug.c \
158 tnl/t_imm_dlist.c \
159 tnl/t_imm_elt.c \
160 tnl/t_imm_eval.c \
161 tnl/t_imm_exec.c \
162 tnl/t_imm_fixup.c \
163 tnl/t_pipeline.c \
164 tnl/t_vb_fog.c \
165 tnl/t_vb_light.c \
166 tnl/t_vb_normals.c \
167 tnl/t_vb_points.c \
168 tnl/t_vb_render.c \
169 tnl/t_vb_texgen.c \
170 tnl/t_vb_texmat.c \
171 tnl/t_vb_vertex.c
172
173 GL_OBJECTS = $(GL_SOURCES:.c=.o)
174 GL_OBJNAME = $(MESA_LIBDIR)/objMesaGL.o
175
176 #### X86 #####
177
178 x86_files = \
179 X86/common_x86_asm.S \
180 X86/glapi_x86.S \
181 X86/x86_cliptest.S \
182 X86/x86_vertex.S \
183 X86/x86_xform2.S \
184 X86/x86_xform3.S \
185 X86/x86_xform4.S \
186
187 x3dnow_files = \
188 X86/3dnow_normal.S \
189 X86/3dnow_vertex.S \
190 X86/3dnow_xform1.S \
191 X86/3dnow_xform2.S \
192 X86/3dnow_xform3.S \
193 X86/3dnow_xform4.S
194
195 sse_files = \
196 X86/sse_normal.S \
197 X86/sse_vertex.S \
198 X86/sse_xform1.S \
199 X86/sse_xform2.S \
200 X86/sse_xform3.S \
201 X86/sse_xform4.S
202
203 mmx_files = X86/mmx_blend.S
204
205 X86_OBJNAME = $(MESA_LIBDIR)/objMesaX86.o
206
207 ##### UGL #####
208
209 UGL_SOURCES = \
210 windml/ugl_api.c \
211 windml/ugl_dd.c \
212 windml/ugl_span.c \
213 windml/ugl_line.c \
214 windml/ugl_tri.c \
215 windml/tornado/torMesaUGLInit.c
216
217 UGL_OBJECTS = $(UGL_SOURCES:.c=.o)
218 UGL_OBJNAME = $(MESA_LIBDIR)/objMesaUGL.o
219
220 ##### OS #####
221
222 OS_SOURCES = OSmesa/osmesa.c windml/tornado/torMesaOSInit.c
223 OS_OBJECTS = $(OS_SOURCES:.c=.o)
224 OS_OBJNAME = $(MESA_LIBDIR)/objMesaOS.o
225
226 ##### GLUTSHAPES #####
227
228 GLUTSHAPES_SOURCES = \
229 windml/ugl_glutshapes.c \
230 windml/tornado/torGLUTShapesInit.c
231
232 GLUTSHAPES_OBJECTS = $(GLUTSHAPES_SOURCES:.c=.o)
233 GLUTSHAPES_OBJNAME = $(MESA_LIBDIR)/objGLUTShapes.o
234
235 SOURCES = $(GL_SOURCES) $(UGL_SOURCES) $(OS_SOURCES) \
236 $(GLUTSHAPES_SOURCES)
237
238 ##### TARGETS #####
239
240 all: depend.$(CPU)$(TOOL) cfgX86 $(X86_OBJNAME) $(GL_OBJNAME)\
241 $(UGL_OBJNAME) $(OS_OBJNAME) $(GLUTSHAPES_OBJNAME)
242
243 #histogram.o:
244 # $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $<
245
246 #image.o:
247 # $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $<
248
249 cfgX86:
250 ifdef HAVE_3DNOW
251 x3dnow_sources = $(x3dnow_files)
252 CFLAGS_3DNOW = -DUSE_3DNOW_ASM
253 HAVE_X86 = 1
254 endif
255 ifdef HAVE_SSE
256 sse_sources = $(sse_files)
257 CFLAGS_SSE = -DUSE_SSE_ASM
258 HAVE_X86 = 1
259 endif
260 ifdef HAVE_MMX
261 mmx_sources = $(mmx_files)
262 CFLAGS_MMX = -DUSE_MMX_ASM
263 HAVE_X86 = 1
264 endif
265 ifdef HAVE_X86
266 x86_sources = $(x86_files)
267 CFLAGS_X86 = -DUSE_X86_ASM
268 endif
269 X86_SOURCES = $(x86_sources) $(mmx_sources) \
270 $(x3dnow_sources) $(sse_sources)
271 X86_OBJECTS = $(X86_SOURCES:.S=.o)
272 CFLAGS_USE_X86 = $(CFLAGS_3DNOW) $(CFLAGS_SSE) $(CFLAGS_MMX) $(CFLAGS_X86)
273
274 #X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c
275 # $(CC) -I ./ X86/gen_matypes.c -o X86/gen_matypes
276 # ./X86/gen_matypes > X86/matypes.h
277 # $(RM) X86/gen_matypes
278 # $(RM) X86/gen_matypes.o
279
280 # Make the Mesax86 library
281 $(X86_OBJNAME): $(X86_OBJECTS)
282 ifdef HAVE_X86
283 # $(LD) -r $(X86_OBJECTS) -o $(MESA_OBJNAME)
284 $(LD) -r $(X86_OBJECTS) -o $(X86_OBJNAME)
285 # $(AR) rus $(MESA_LIBNAME) $(X86_OBJNAME)
286 # $(RM) $(X86_OBJNAME)
287 endif
288
289 # Make the GL library
290 $(GL_OBJNAME): $(GL_OBJECTS)
291 # $(LD) -r $(GL_OBJECTS) -o $(MESA_OBJNAME)
292 $(LD) -r $(GL_OBJECTS) -o $(GL_OBJNAME)
293 # $(AR) rus $(MESA_LIBNAME) $(GL_OBJNAME)
294 # $(AR) rus $(VX_LIBNAME) $(GL_OBJNAME)
295 # $(RM) $(GL_OBJNAME)
296
297 # Make the UGLMesa library
298 $(UGL_OBJNAME): $(UGL_OBJECTS)
299 # $(LD) -r $(UGL_OBJECTS) -o $(MESA_OBJNAME)
300 $(LD) -r $(UGL_OBJECTS) -o $(UGL_OBJNAME)
301 # $(AR) rus $(MESA_LIBNAME) $(UGL_OBJNAME)
302 # $(AR) rus $(VX_LIBNAME) $(UGL_OBJNAME)
303 # $(RM) $(UGL_OBJNAME)
304
305 # Make the OSMesa library
306 $(OS_OBJNAME): $(OS_OBJECTS)
307 # $(LD) -r $(OS_OBJECTS) -o $(MESA_OBJNAME)
308 $(LD) -r $(OS_OBJECTS) -o $(OS_OBJNAME)
309 # $(AR) rus $(MESA_LIBNAME) $(OS_OBJNAME)
310 # $(AR) rus $(VX_LIBNAME) $(OS_OBJNAME)
311 # $(RM) $(OS_OBJNAME)
312
313 # Make the GLUT Shapes library
314 $(GLUTSHAPES_OBJNAME): $(GLUTSHAPES_OBJECTS)
315 # $(LD) -r $(GLUTSHAPES_OBJECTS) -o $(MESA_OBJNAME)
316 $(LD) -r $(GLUTSHAPES_OBJECTS) -o $(GLUTSHAPES_OBJNAME)
317 # $(AR) rus $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME)
318 # $(AR) rus $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME)
319 # $(RM) $(GLUTSHAPES_OBJNAME)
320
321 depend.$(CPU)$(TOOL):
322 ifeq ($(WIND_HOST_TYPE),x86-win32)
323 @ $(RM) $@
324 @ $(ECHO) Creating depend.$(CPU)$(TOOL)
325 ifneq ($(SOURCES),)
326 @ for %f in ($(SOURCES)) do \
327 $(CC) -MM $(CFLAGS) %f >>$@
328 endif
329 else
330 Makefile
331 @ $(RM) $@
332 @ $(ECHO) "Creating depend.$(CPU)$(TOOL)"
333 ifneq ($(SOURCES),)
334 @ for FILE in $(filter-out $(NODEPENDOBJS), $(SOURCES)); \
335 do \
336 $(CC) -MM $(CFLAGS) $$FILE \
337 | $(TCL) $(BIN_DIR)/depend.tcl $(TGT_DIR) >>$@; \
338 done
339 endif
340 endif
341
342 .PHONY = clean
343
344 clean:
345 # $(AR) d $(MESA_LIBNAME) $(GL_OBJNAME)
346 # $(AR) d $(MESA_LIBNAME) $(UGL_OBJNAME)
347 # $(AR) d $(MESA_LIBNAME) $(OS_OBJNAME)
348 # $(AR) d $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME)
349 # $(AR) d $(VX_LIBNAME) $(GL_OBJNAME)
350 # $(AR) d $(VX_LIBNAME) $(UGL_OBJNAME)
351 # $(AR) d $(VX_LIBNAME) $(OS_OBJNAME)
352 # $(AR) d $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME)
353 $(RM) $(GL_OBJECTS)
354 $(RM) $(UGL_OBJECTS)
355 $(RM) $(OS_OBJECTS)
356 $(RM) $(GLUTSHAPES_OBJECTS)
357 $(RM) $(GL_OBJNAME)
358 $(RM) $(UGL_OBJNAME)
359 $(RM) $(OS_OBJNAME)
360 $(RM) $(GLUTSHAPES_OBJNAME)
361 $(RM) depend.$(CPU)$(TOOL)
362
363 include depend.$(CPU)$(TOOL)
364