From ecc150c626a3722e26c4efd23d5e7ef735b060fe Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Fri, 12 Dec 2003 15:31:50 +0000 Subject: [PATCH] improved makefiles --- src/mesa/Makefile.OSMesa16 | 260 +++--------------------------------- src/mesa/Makefile.X11 | 262 ++----------------------------------- src/mesa/Makefile.solo | 70 ++++++++++ 3 files changed, 104 insertions(+), 488 deletions(-) create mode 100644 src/mesa/Makefile.solo diff --git a/src/mesa/Makefile.OSMesa16 b/src/mesa/Makefile.OSMesa16 index 08156fcb4ad..7417e2d82c7 100644 --- a/src/mesa/Makefile.OSMesa16 +++ b/src/mesa/Makefile.OSMesa16 @@ -1,10 +1,7 @@ - -# Mesa 3-D graphics library -# Version: 5.1 -# Copyright (C) 1995-2003 Brian Paul - -# Makefile for building Mesa for 16/32-bit/channel rendering with the OSMesa -# driver. +# Makefile for building the OSMesa library with deep color channel support. +# This is a bit different from the normal libOSMesa.so library in that +# the libs made here will contain a full Mesa implementation (i.e. the +# OSMesa lib won't piggyback on libGL.so) ##### MACROS ##### @@ -15,228 +12,35 @@ 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 = "OSMesa16" # 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 - -### Groups of files - -CORE_SOURCES = \ - $(MAIN_SOURCES) \ - $(GLAPI_SOURCES) \ - $(MATH_SOURCES) \ - $(ARRAY_CACHE_SOURCES) \ - $(TNL_SOURCES) \ - $(SWRAST_SOURCES) \ - $(SWRAST_SETUP_SOURCES) \ - $(ASM_C_SOURCES) +include sources + # This will probably get set to $(X86_SOURCES) in Make-config: ASM_SOURCES = -OSMESA_DRIVER_SOURCES = \ - drivers/osmesa/osmesa.c +# All the sources we care about: +SOURCES = \ + $(CORE_SOURCES) \ + $(ASM_SOURCES) \ + $(OSMESA_DRIVER_SOURCES) -### Object files - -CORE_OBJECTS = $(CORE_SOURCES:.c=.o) ASM_OBJECTS = $(ASM_SOURCES:.S=.o) OSMESA_OBJECTS = $(OSMESA_DRIVER_SOURCES:.c=.o) +# All the objects we want to make: OBJECTS = \ $(CORE_OBJECTS) \ $(ASM_OBJECTS) \ $(OSMESA_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 ##### @@ -247,13 +51,6 @@ INCLUDE_DIRS = \ $(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 ##### @@ -262,38 +59,21 @@ default: @echo "Specify a target configuration" -targets: $(LIBDIR)/$(OSMESA16_LIB) - -# Make the 16-bit/channel OSMesa library -$(LIBDIR)/$(OSMESA16_LIB): $(OBJECTS) - $(TOP)/bin/mklib $(MAKELIB_FLAGS) -o $(OSMESA_LIB_NAME) -major $(GL_MAJOR) \ - -minor $(GL_MINOR) -patch $(GL_TINY) -install $(LIBDIR) \ - $(GL_LIB_DEPS) $(OBJECTS) +targets: $(LIBDIR)/$(OSMESA_LIB) +# Make the 16-bit/channel or 32-bit/channel OSMesa library +$(LIBDIR)/$(OSMESA_LIB): $(OBJECTS) + $(TOP)/bin/mklib $(MAKELIB_FLAGS) -o $(OSMESA_LIB_NAME) \ + -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \ + -install $(LIBDIR) $(GL_LIB_DEPS) $(OBJECTS) -# # Run 'make dep' to update the dependencies if you change what's included # by any source file. -# -dep: $(CORE_SOURCES) $(OSMESA_DRIVER_SOURCES) $(ASM_SOURCES) - makedepend -fdepend -Y $(INCLUDE_DIRS) -DGGI -DSVGA -DFX \ - $(CORE_SOURCES) $(OSMESA_DRIVER_SOURCES) \ - $(ASM_SOURCES) - -dep: $(CORE_SOURCES) - makedepend -fdepend -Y -I../include $(CORE_SOURCES) - -tags: - etags `find . -name \*.[ch]` `find ../include` - +dep: $(SOURCES) + makedepend -fdepend -Y $(INCLUDE_DIRS) $(SOURCES) -# Remove .o and backup files -clean: - -rm -f *.a - -rm -f */*.o */*~ */*.o */*~ - -rm -f drivers/*/*.o drivers/*/*/*.o include $(TOP)/Make-config diff --git a/src/mesa/Makefile.X11 b/src/mesa/Makefile.X11 index e99da96b617..1923e14738e 100644 --- a/src/mesa/Makefile.X11 +++ b/src/mesa/Makefile.X11 @@ -1,4 +1,4 @@ -# Makefile for core Mesa library +# Makefile for main Mesa library for Unix/X11-like systems ##### MACROS ##### @@ -12,271 +12,42 @@ 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) +include 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 +# All the sources we care about: +SOURCES = \ + $(CORE_SOURCES) \ + $(ASM_SOURCES) \ + $(DRIVER_SOURCES) -### Object files -CORE_OBJECTS = $(CORE_SOURCES:.c=.o) +ASM_OBJECTS = $(ASM_SOURCES:.S=.o) DRIVER_OBJECTS = $(DRIVER_SOURCES:.c=.o) -ASM_OBJECTS = $(ASM_SOURCES:.S=.o) - OSMESA_OBJECTS = $(OSMESA_DRIVER_SOURCES:.c=.o) +# All the objects we want to make: 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 ##### @@ -302,7 +73,7 @@ default: @echo "Specify a target configuration" -targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB) $(LIBMESA) +targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB) # Make the GL library @@ -323,6 +94,7 @@ $(LIBDIR)/$(OSMESA_LIB): $(OSMESA_OBJECTS) # Make an optional library with _just_ core objects +# XXX this should probably be moved into a separate makefile libmesa: $(LIBDIR)/$(MESA_LIB) if [ ${MESA_LIB} ] ; then \ $(MAKELIB) $(MESA_LIB) $(MESA_MAJOR) \ @@ -330,20 +102,14 @@ libmesa: $(LIBDIR)/$(MESA_LIB) 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) +dep: $(SOURCES) + makedepend -fdepend -Y $(INCLUDE_DIRS) -DGGI -DSVGA -DFX $(SOURCES) # Emacs tags diff --git a/src/mesa/Makefile.solo b/src/mesa/Makefile.solo new file mode 100644 index 00000000000..349c42f9c51 --- /dev/null +++ b/src/mesa/Makefile.solo @@ -0,0 +1,70 @@ +# Makefile for linux-solo (i.e. stand-alone DRI drivers for miniglx environment) +# We just generate a mesa.a file which is all the core Mesa sources. This will +# get linked into the DRI hardware drivers (name *_dri.so). + + +TOP = ../.. + +include sources + +# The objects we want to make: +OBJECTS = \ + $(CORE_OBJECTS) + + +##### 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: mesa.a + + +# Make archive of core object files for linux-solo DRI drivers +mesa.a: $(OBJECTS) + rm -f $@ + ar rcv $@ $(OBJECTS) + ranlib $@ + + + +# Run 'make -f Makefile.solo dep' to update the dependencies if you change +# what's included by any source file. +dep: $(CORE_SOURCES) $(ASM_SOURCES) + makedepend -fdepend -Y $(INCLUDE_DIRS) $(CORE_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 -- 2.30.2