# Mesa 3-D graphics library # Version: 4.1 # # Copyright (C) 2001 Wind River Systems, Inc # The MIT License # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. # Makefile for core library # This makefile can moved all objects files in MESA_OBJ for use with # ld in windShell or create a library from objects files in their # associated .c folder. # # For an easy inclusion of lib$(CPU)$(TOOL)GL.a in vxworks image, this # makefile collects together all .o in an only file # (obj$(CPU)$(TOOL)GL.o). This operation is unnecessary for # lib$(CPU)$(TOOL)OSMesa.a and lib$(CPU)$(TOOL)UglMesa.a because they # already contain only one file. # ##### MACROS ##### MESA_MAJOR=4 MESA_MINOR=1 MESA_TINY=0 VERSION=$(MESA_MAJOR).$(MESA_MINOR) GL_MAJOR = 1 GL_MINOR = 2 GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY) ##### RULES ##### include ..\rules.windml #### GL ##### GL_SOURCES = \ api_arrayelt.c \ api_loopback.c \ api_noop.c \ api_validate.c \ accum.c \ arbprogram.c \ attrib.c \ blend.c \ bufferobj.c \ buffers.c \ clip.c \ colortab.c \ context.c \ convolve.c \ debug.c \ depth.c \ dispatch.c \ dlist.c \ drawpix.c \ enable.c \ enums.c \ eval.c \ extensions.c \ feedback.c \ fog.c \ get.c \ glapi.c \ glthread.c \ hash.c \ hint.c \ histogram.c \ image.c \ imports.c \ light.c \ lines.c \ matrix.c \ pixel.c \ points.c \ polygon.c \ rastpos.c \ state.c \ stencil.c \ texcompress.c \ texformat.c \ teximage.c \ texobj.c \ texstate.c \ texstore.c \ texutil.c \ varray.c \ vtxfmt.c \ X86/x86.c \ X86/common_x86.c \ X86/3dnow.c \ X86/sse.c \ math/m_debug_clip.c \ math/m_debug_norm.c \ math/m_debug_vertex.c \ math/m_debug_xform.c \ math/m_eval.c \ math/m_matrix.c \ math/m_translate.c \ math/m_vector.c \ math/m_vertices.c \ math/m_xform.c \ array_cache/ac_context.c \ array_cache/ac_import.c \ swrast/s_aaline.c \ swrast/s_aatriangle.c \ swrast/s_accum.c \ swrast/s_alpha.c \ swrast/s_alphabuf.c \ swrast/s_bitmap.c \ swrast/s_blend.c \ swrast/s_buffers.c \ swrast/s_copypix.c \ swrast/s_context.c \ swrast/s_depth.c \ swrast/s_drawpix.c \ swrast/s_feedback.c \ swrast/s_fog.c \ swrast/s_imaging.c \ swrast/s_lines.c \ swrast/s_logic.c \ swrast/s_masking.c \ swrast/s_pixeltex.c \ swrast/s_points.c \ swrast/s_readpix.c \ swrast/s_span.c \ swrast/s_stencil.c \ swrast/s_texture.c \ swrast/s_texstore.c \ swrast/s_triangle.c \ swrast/s_zoom.c \ swrast_setup/ss_context.c \ swrast_setup/ss_triangle.c \ swrast_setup/ss_vb.c \ tnl/t_array_api.c \ tnl/t_array_import.c \ tnl/t_context.c \ tnl/t_eval_api.c \ tnl/t_imm_alloc.c \ tnl/t_imm_api.c \ tnl/t_imm_debug.c \ tnl/t_imm_dlist.c \ tnl/t_imm_elt.c \ tnl/t_imm_eval.c \ tnl/t_imm_exec.c \ tnl/t_imm_fixup.c \ tnl/t_pipeline.c \ tnl/t_vb_fog.c \ tnl/t_vb_light.c \ tnl/t_vb_normals.c \ tnl/t_vb_points.c \ tnl/t_vb_render.c \ tnl/t_vb_texgen.c \ tnl/t_vb_texmat.c \ tnl/t_vb_vertex.c GL_OBJECTS = $(GL_SOURCES:.c=.o) GL_OBJNAME = $(MESA_LIBDIR)/objMesaGL.o #### X86 ##### x86_files = \ X86/common_x86_asm.S \ X86/glapi_x86.S \ X86/x86_cliptest.S \ X86/x86_vertex.S \ X86/x86_xform2.S \ X86/x86_xform3.S \ X86/x86_xform4.S \ x3dnow_files = \ X86/3dnow_normal.S \ X86/3dnow_vertex.S \ X86/3dnow_xform1.S \ X86/3dnow_xform2.S \ X86/3dnow_xform3.S \ X86/3dnow_xform4.S sse_files = \ X86/sse_normal.S \ X86/sse_vertex.S \ X86/sse_xform1.S \ X86/sse_xform2.S \ X86/sse_xform3.S \ X86/sse_xform4.S mmx_files = X86/mmx_blend.S X86_OBJNAME = $(MESA_LIBDIR)/objMesaX86.o ##### UGL ##### UGL_SOURCES = \ windml/ugl_api.c \ windml/ugl_dd.c \ windml/ugl_span.c \ windml/ugl_line.c \ windml/ugl_tri.c \ windml/tornado/torMesaUGLInit.c UGL_OBJECTS = $(UGL_SOURCES:.c=.o) UGL_OBJNAME = $(MESA_LIBDIR)/objMesaUGL.o ##### OS ##### OS_SOURCES = OSmesa/osmesa.c windml/tornado/torMesaOSInit.c OS_OBJECTS = $(OS_SOURCES:.c=.o) OS_OBJNAME = $(MESA_LIBDIR)/objMesaOS.o ##### GLUTSHAPES ##### GLUTSHAPES_SOURCES = \ windml/ugl_glutshapes.c \ windml/tornado/torGLUTShapesInit.c GLUTSHAPES_OBJECTS = $(GLUTSHAPES_SOURCES:.c=.o) GLUTSHAPES_OBJNAME = $(MESA_LIBDIR)/objGLUTShapes.o SOURCES = $(GL_SOURCES) $(UGL_SOURCES) $(OS_SOURCES) \ $(GLUTSHAPES_SOURCES) ##### TARGETS ##### all: depend.$(CPU)$(TOOL) cfgX86 $(X86_OBJNAME) $(GL_OBJNAME)\ $(UGL_OBJNAME) $(OS_OBJNAME) $(GLUTSHAPES_OBJNAME) #histogram.o: # $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $< #image.o: # $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $< cfgX86: ifdef HAVE_3DNOW x3dnow_sources = $(x3dnow_files) CFLAGS_3DNOW = -DUSE_3DNOW_ASM HAVE_X86 = 1 endif ifdef HAVE_SSE sse_sources = $(sse_files) CFLAGS_SSE = -DUSE_SSE_ASM HAVE_X86 = 1 endif ifdef HAVE_MMX mmx_sources = $(mmx_files) CFLAGS_MMX = -DUSE_MMX_ASM HAVE_X86 = 1 endif ifdef HAVE_X86 x86_sources = $(x86_files) CFLAGS_X86 = -DUSE_X86_ASM endif X86_SOURCES = $(x86_sources) $(mmx_sources) \ $(x3dnow_sources) $(sse_sources) X86_OBJECTS = $(X86_SOURCES:.S=.o) CFLAGS_USE_X86 = $(CFLAGS_3DNOW) $(CFLAGS_SSE) $(CFLAGS_MMX) $(CFLAGS_X86) #X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c # $(CC) -I ./ X86/gen_matypes.c -o X86/gen_matypes # ./X86/gen_matypes > X86/matypes.h # $(RM) X86/gen_matypes # $(RM) X86/gen_matypes.o # Make the Mesax86 library $(X86_OBJNAME): $(X86_OBJECTS) ifdef HAVE_X86 # $(LD) -r $(X86_OBJECTS) -o $(MESA_OBJNAME) $(LD) -r $(X86_OBJECTS) -o $(X86_OBJNAME) # $(AR) rus $(MESA_LIBNAME) $(X86_OBJNAME) # $(RM) $(X86_OBJNAME) endif # Make the GL library $(GL_OBJNAME): $(GL_OBJECTS) # $(LD) -r $(GL_OBJECTS) -o $(MESA_OBJNAME) $(LD) -r $(GL_OBJECTS) -o $(GL_OBJNAME) # $(AR) rus $(MESA_LIBNAME) $(GL_OBJNAME) # $(AR) rus $(VX_LIBNAME) $(GL_OBJNAME) # $(RM) $(GL_OBJNAME) # Make the UGLMesa library $(UGL_OBJNAME): $(UGL_OBJECTS) # $(LD) -r $(UGL_OBJECTS) -o $(MESA_OBJNAME) $(LD) -r $(UGL_OBJECTS) -o $(UGL_OBJNAME) # $(AR) rus $(MESA_LIBNAME) $(UGL_OBJNAME) # $(AR) rus $(VX_LIBNAME) $(UGL_OBJNAME) # $(RM) $(UGL_OBJNAME) # Make the OSMesa library $(OS_OBJNAME): $(OS_OBJECTS) # $(LD) -r $(OS_OBJECTS) -o $(MESA_OBJNAME) $(LD) -r $(OS_OBJECTS) -o $(OS_OBJNAME) # $(AR) rus $(MESA_LIBNAME) $(OS_OBJNAME) # $(AR) rus $(VX_LIBNAME) $(OS_OBJNAME) # $(RM) $(OS_OBJNAME) # Make the GLUT Shapes library $(GLUTSHAPES_OBJNAME): $(GLUTSHAPES_OBJECTS) # $(LD) -r $(GLUTSHAPES_OBJECTS) -o $(MESA_OBJNAME) $(LD) -r $(GLUTSHAPES_OBJECTS) -o $(GLUTSHAPES_OBJNAME) # $(AR) rus $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME) # $(AR) rus $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME) # $(RM) $(GLUTSHAPES_OBJNAME) depend.$(CPU)$(TOOL): ifeq ($(WIND_HOST_TYPE),x86-win32) @ $(RM) $@ @ $(ECHO) Creating depend.$(CPU)$(TOOL) ifneq ($(SOURCES),) @ for %f in ($(SOURCES)) do \ $(CC) -MM $(CFLAGS) %f >>$@ endif else Makefile @ $(RM) $@ @ $(ECHO) "Creating depend.$(CPU)$(TOOL)" ifneq ($(SOURCES),) @ for FILE in $(filter-out $(NODEPENDOBJS), $(SOURCES)); \ do \ $(CC) -MM $(CFLAGS) $$FILE \ | $(TCL) $(BIN_DIR)/depend.tcl $(TGT_DIR) >>$@; \ done endif endif .PHONY = clean clean: # $(AR) d $(MESA_LIBNAME) $(GL_OBJNAME) # $(AR) d $(MESA_LIBNAME) $(UGL_OBJNAME) # $(AR) d $(MESA_LIBNAME) $(OS_OBJNAME) # $(AR) d $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME) # $(AR) d $(VX_LIBNAME) $(GL_OBJNAME) # $(AR) d $(VX_LIBNAME) $(UGL_OBJNAME) # $(AR) d $(VX_LIBNAME) $(OS_OBJNAME) # $(AR) d $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME) $(RM) $(GL_OBJECTS) $(RM) $(UGL_OBJECTS) $(RM) $(OS_OBJECTS) $(RM) $(GLUTSHAPES_OBJECTS) $(RM) $(GL_OBJNAME) $(RM) $(UGL_OBJNAME) $(RM) $(OS_OBJNAME) $(RM) $(GLUTSHAPES_OBJNAME) $(RM) depend.$(CPU)$(TOOL) include depend.$(CPU)$(TOOL)