# Makefile for core Mesa library ##### MACROS ##### TOP = ../.. GL_MAJOR = 1 GL_MINOR = 4 GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY) GL_LIB_NAME = "GL" # may be overridden in Make-config OSMESA_LIB_NAME = "OSMesa" # may be overridden in Make-config VPATH = RCS LIBDIR = $(TOP)/lib ### Lists of source files MAIN_SOURCES = \ main/api_arrayelt.c \ main/api_loopback.c \ main/api_noop.c \ main/api_validate.c \ main/accum.c \ main/arbparse.c \ main/arbprogram.c \ main/arbfragparse.c \ main/arbvertparse.c \ main/attrib.c \ main/blend.c \ main/bufferobj.c \ main/buffers.c \ main/clip.c \ main/colortab.c \ main/context.c \ main/convolve.c \ main/debug.c \ main/depth.c \ main/dispatch.c \ main/dlist.c \ main/drawpix.c \ main/enable.c \ main/enums.c \ main/eval.c \ main/extensions.c \ main/feedback.c \ main/fog.c \ main/get.c \ main/hash.c \ main/hint.c \ main/histogram.c \ main/image.c \ main/imports.c \ main/light.c \ main/lines.c \ main/matrix.c \ main/nvprogram.c \ main/nvfragparse.c \ main/nvvertexec.c \ main/nvvertparse.c \ main/occlude.c \ main/pixel.c \ main/points.c \ main/polygon.c \ main/program.c \ main/rastpos.c \ main/state.c \ main/stencil.c \ main/texcompress.c \ main/texformat.c \ main/teximage.c \ main/texobj.c \ main/texstate.c \ main/texstore.c \ main/texutil.c \ main/varray.c \ main/vtxfmt.c GLAPI_SOURCES = \ glapi/glapi.c \ glapi/glthread.c MATH_SOURCES = \ math/m_debug_clip.c \ math/m_debug_norm.c \ math/m_debug_xform.c \ math/m_eval.c \ math/m_matrix.c \ math/m_translate.c \ math/m_vector.c \ math/m_xform.c ARRAY_CACHE_SOURCES = \ array_cache/ac_context.c \ array_cache/ac_import.c SWRAST_SOURCES = \ 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_nvfragprog.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_SOURCES = \ swrast_setup/ss_context.c \ swrast_setup/ss_triangle.c \ swrast_setup/ss_vb.c TNL_SOURCES = \ tnl/t_array_api.c \ tnl/t_array_import.c \ tnl/t_context.c \ tnl/t_pipeline.c \ tnl/t_save_api.c \ tnl/t_save_loopback.c \ tnl/t_save_playback.c \ tnl/t_vb_fog.c \ tnl/t_vb_light.c \ tnl/t_vb_normals.c \ tnl/t_vb_points.c \ tnl/t_vb_program.c \ tnl/t_vb_render.c \ tnl/t_vb_texgen.c \ tnl/t_vb_texmat.c \ tnl/t_vb_vertex.c \ tnl/t_vtx_api.c \ tnl/t_vtx_eval.c \ tnl/t_vtx_exec.c ASM_C_SOURCES = \ x86/common_x86.c \ x86/x86.c \ x86/3dnow.c \ x86/sse.c \ sparc/sparc.c X86_SOURCES = \ x86/common_x86_asm.S \ x86/glapi_x86.S \ x86/x86_xform2.S \ x86/x86_xform3.S \ x86/x86_xform4.S \ x86/x86_cliptest.S \ x86/mmx_blend.S \ x86/3dnow_xform1.S \ x86/3dnow_xform2.S \ x86/3dnow_xform3.S \ x86/3dnow_xform4.S \ x86/3dnow_normal.S \ x86/sse_xform1.S \ x86/sse_xform2.S \ x86/sse_xform3.S \ x86/sse_xform4.S \ x86/sse_normal.S SPARC_SOURCES = \ sparc/clip.S \ sparc/glapi_sparc.S \ sparc/norm.S \ sparc/xform.S X11_DRIVER_SOURCES = \ drivers/x11/glxapi.c \ drivers/x11/fakeglx.c \ drivers/x11/xfonts.c \ drivers/x11/xm_api.c \ drivers/x11/xm_dd.c \ drivers/x11/xm_line.c \ drivers/x11/xm_span.c \ drivers/x11/xm_tri.c OSMESA_DRIVER_SOURCES = \ drivers/osmesa/osmesa.c GLIDE_DRIVER_SOURCES = \ drivers/glide/fxapi.c \ drivers/glide/fxdd.c \ drivers/glide/fxddspan.c \ drivers/glide/fxddtex.c \ drivers/glide/fxsetup.c \ drivers/glide/fxtexman.c \ drivers/glide/fxtris.c \ drivers/glide/fxvb.c \ drivers/glide/fxglidew.c \ drivers/glide/fxg.c SVGA_DRIVER_SOURCES = \ drivers/svga/svgamesa.c \ drivers/svga/svgamesa8.c \ drivers/svga/svgamesa15.c \ drivers/svga/svgamesa16.c \ drivers/svga/svgamesa24.c \ drivers/svga/svgamesa32.c FBDEV_DRIVER_SOURCES = \ drivers/fbdev/glfbdev.c ### Groups of files CORE_SOURCES = \ $(MAIN_SOURCES) \ $(GLAPI_SOURCES) \ $(MATH_SOURCES) \ $(ARRAY_CACHE_SOURCES) \ $(TNL_SOURCES) \ $(SWRAST_SOURCES) \ $(SWRAST_SETUP_SOURCES) \ $(ASM_C_SOURCES) # This will probably get set to $(X86_SOURCES) in Make-config: ASM_SOURCES = ifndef SOLO # This should get set in Make-config someday: DRIVER_SOURCES = \ $(X11_DRIVER_SOURCES) \ $(GLIDE_DRIVER_SOURCES) \ $(SVGA_DRIVER_SOURCES) \ $(FBDEV_DRIVER_SOURCES) endif ### Object files CORE_OBJECTS = $(CORE_SOURCES:.c=.o) DRIVER_OBJECTS = $(DRIVER_SOURCES:.c=.o) ASM_OBJECTS = $(ASM_SOURCES:.S=.o) OSMESA_OBJECTS = $(OSMESA_DRIVER_SOURCES:.c=.o) OBJECTS = \ $(CORE_OBJECTS) \ $(ASM_OBJECTS) \ $(DRIVER_OBJECTS) ### Include directories INCLUDE_DIRS = \ -I$(TOP)/include \ -I$(TOP)/src/mesa \ -I$(TOP)/src/mesa/main \ -I$(TOP)/src/mesa/glapi \ -I$(TOP)/src/mesa/math \ -I$(TOP)/src/mesa/transform \ -I$(TOP)/src/mesa/swrast \ -I$(TOP)/src/mesa/swrast_setup ##### RULES ##### .c.o: $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ .S.o: $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ x86/matypes.h: main/mtypes.h tnl/t_context.h x86/gen_matypes.c $(CC) $(INCLUDE_DIRS) $(CFLAGS) x86/gen_matypes.c -o x86/gen_matypes ./x86/gen_matypes > x86/matypes.h rm -f x86/gen_matypes x86/*.o x86/common_x86_asm.o: x86/matypes.h ##### TARGETS ##### default: @echo "Specify a target configuration" targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB) $(LIBMESA) # Make the GL library $(LIBDIR)/$(GL_LIB): $(OBJECTS) $(TOP)/bin/mklib -o $(GL_LIB_NAME) -major $(GL_MAJOR) \ -minor $(GL_MINOR) -patch $(GL_TINY) -install $(LIBDIR) \ $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OBJECTS) # Make the OSMesa library $(LIBDIR)/$(OSMESA_LIB): $(OSMESA_OBJECTS) if [ ${OSMESA_LIB} ] ; then \ $(TOP)/bin/mklib -o $(OSMESA_LIB_NAME) -major $(MESA_MAJOR) \ -minor $(MESA_MINOR) -patch $(GL_TINY) -L$(LIBDIR) \ -l$(GL_LIB_NAME) -install $(LIBDIR) \ $(MKLIB_OPTIONS) $(OSMESA_OBJECTS) ; \ fi # Make an optional library with _just_ core objects libmesa: $(LIBDIR)/$(MESA_LIB) if [ ${MESA_LIB} ] ; then \ $(MAKELIB) $(MESA_LIB) $(MESA_MAJOR) \ $(MESA_MINOR) $(GL_TINY) $(CORE_OBJECTS) ; \ fi if [ ${MESA_LIB} ] ; then rm -f $(LIBDIR)/$(MESA_LIB)* ; fi if [ ${MESA_LIB} ] ; then mv $(MESA_LIB)* $(LIBDIR) ; fi $(LIBDIR)/$(MESA_LIB): $(CORE_OBJECTS) mesa.a: $(CORE_OBJECTS) rm -f $@ && ar rcv $@ $(CORE_OBJECTS) && ranlib $@ # Run 'make -f Makefile.X11 dep' to update the dependencies if you change # what's included by any source file. dep: $(CORE_SOURCES) $(DRIVER_SOURCES) $(OSMESA_DRIVER_SOURCES) $(ASM_SOURCES) makedepend -fdepend -Y $(INCLUDE_DIRS) -DGGI -DSVGA -DFX \ $(CORE_SOURCES) $(DRIVER_SOURCES) $(OSMESA_DRIVER_SOURCES) \ $(ASM_SOURCES) # Emacs tags tags: etags `find . -name \*.[ch]` `find ../include` # Remove .o and backup files clean: -rm -f *.a -rm -f */*.o */*~ */*.o */*~ -rm -f drivers/*/*.o drivers/*/*/*.o include $(TOP)/Make-config include depend