LIBDIR = $(TOP)/lib
+### Lists of source files
-CORE_SOURCES = \
- glapi/glapi.c \
- glapi/glthread.c \
+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/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/texstore.c \
main/texutil.c \
main/varray.c \
- main/vtxfmt.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_matrix.c \
math/m_translate.c \
math/m_vector.c \
- math/m_xform.c \
+ math/m_xform.c
+
+ARRAY_CACHE_SOURCES = \
array_cache/ac_context.c \
- array_cache/ac_import.c \
+ array_cache/ac_import.c
+
+SWRAST_SOURCES = \
swrast/s_aaline.c \
swrast/s_aatriangle.c \
swrast/s_accum.c \
swrast/s_texture.c \
swrast/s_texstore.c \
swrast/s_triangle.c \
- swrast/s_zoom.c \
+ swrast/s_zoom.c
+
+SWRAST_SETUP_SOURCES = \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
- swrast_setup/ss_vb.c \
+ swrast_setup/ss_vb.c
+
+TNL_SOURCES = \
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_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_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
- x86/common_x86.c \
- x86/x86.c \
- x86/3dnow.c \
- x86/sse.c \
- sparc/sparc.c
+ tnl/t_vtx_api.c \
+ tnl/t_vtx_eval.c \
+ tnl/t_vtx_exec.c
-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/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 \
- drivers/svga/svgamesa.c \
- drivers/svga/svgamesa8.c \
- drivers/svga/svgamesa15.c \
- drivers/svga/svgamesa16.c \
- drivers/svga/svgamesa24.c \
- drivers/svga/svgamesa32.c
-X86_SOURCES = \
+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/sse_xform4.S \
x86/sse_normal.S
-SPARC_SOURCES = \
+SPARC_SOURCES = \
sparc/clip.S \
sparc/glapi_sparc.S \
sparc/norm.S \
sparc/xform.S
-OSMESA_SOURCES = \
+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
+
+### 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 =
-OBJECTS = \
- $(CORE_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o) \
- $(DRIVER_SOURCES:.c=.o)
+ifndef SOLO
+# This should get set in Make-config someday:
+DRIVER_SOURCES = \
+ $(X11_DRIVER_SOURCES) \
+ $(GLIDE_DRIVER_SOURCES) \
+ $(SVGA_DRIVER_SOURCES)
+endif
+
+
+### Object files
CORE_OBJECTS = $(CORE_SOURCES:.c=.o)
-OSMESA_OBJECTS = $(OSMESA_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/swrast_setup
+
##### RULES #####
.c.o:
@echo "Specify a target configuration"
-targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB)
+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) \
- $(GL_LIB_DEPS) $(OBJECTS)
+ $(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) \
- $(OSMESA_OBJECTS) ; fi
+ 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 \
+ $(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_SOURCES) $(ASM_SOURCES)
- makedepend -fdepend -Y -I../include -DGGI -DSVGA -DFX $(CORE_SOURCES) $(DRIVER_SOURCES) $(OSMESA_SOURCES) $(ASM_SOURCES)
+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
etags `find . -name \*.[ch]` `find ../include`
-# Clean up .o and backup files
+# Remove .o and backup files
clean:
+ -rm -f *.a
-rm -f */*.o */*~ */*.o */*~
- -rm -f drivers/*/*.o
- -rm -f drivers/dri/*/*.o
+ -rm -f drivers/*/*.o drivers/*/*/*.o
include $(TOP)/Make-config