-# $Id: Makefile.X11,v 1.40 2001/01/24 00:04:58 brianp Exp $
-
-# Mesa 3-D graphics library
-# Version: 3.5
-# Copyright (C) 1995-2000 Brian Paul
-
-# Makefile for core library
+# Makefile for core Mesa library
##### MACROS #####
+TOP = ../..
+
GL_MAJOR = 1
-GL_MINOR = 2
+GL_MINOR = 4
GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
-VPATH = RCS
+GL_LIB_NAME = "GL" # may be overridden in Make-config
+OSMESA_LIB_NAME = "OSMesa" # may be overridden in Make-config
-INCDIR = ../include
-LIBDIR = ../lib
+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
-CORE_SOURCES = \
- api_loopback.c \
- api_noop.c \
- api_validate.c \
- accum.c \
- alpha.c \
- attrib.c \
- bitmap.c \
- blend.c \
- buffers.c \
- clip.c \
- colortab.c \
- config.c \
- context.c \
- convolve.c \
- copypix.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 \
- glapinoop.c \
- glthread.c \
- hash.c \
- highpc.c \
- hint.c \
- histogram.c \
- image.c \
- imports.c \
- light.c \
- lines.c \
- logic.c \
- lowpc.c \
- masking.c \
- matrix.c \
- mem.c \
- mmath.c \
- pixel.c \
- pixeltex.c \
- points.c \
- polygon.c \
- rastpos.c \
- readpix.c \
- scissor.c \
- state.c \
- stencil.c \
- teximage.c \
- texobj.c \
- texstate.c \
- texture.c \
- texutil.c \
- varray.c \
- vtxfmt.c \
- winpos.c \
- X86/x86.c \
- X86/common_x86.c \
- X86/3dnow.c \
- X86/katmai.c \
+SWRAST_SOURCES = \
swrast/s_aaline.c \
swrast/s_aatriangle.c \
swrast/s_accum.c \
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
- swrast/s_histogram.c \
+ swrast/s_imaging.c \
swrast/s_lines.c \
swrast/s_logic.c \
swrast/s_masking.c \
- swrast/s_pb.c \
+ swrast/s_nvfragprog.c \
swrast/s_pixeltex.c \
swrast/s_points.c \
- swrast/s_quads.c \
swrast/s_readpix.c \
- swrast/s_scissor.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/s_zoom.c
+
+SWRAST_SETUP_SOURCES = \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
- swrast_setup/ss_vb.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_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_material.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_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 = \
- FX/fxapi.c \
- FX/fxdd.c \
- FX/fxddspan.c \
- FX/fxddtex.c \
- FX/fxsetup.c \
- FX/fxtexman.c \
- FX/fxtris.c \
- FX/fxvb.c \
- FX/fxglidew.c \
- X/glxapi.c \
- X/fakeglx.c \
- X/xfonts.c \
- X/xm_api.c \
- X/xm_dd.c \
- X/xm_line.c \
- X/xm_span.c \
- X/xm_tri.c \
- SVGA/svgamesa.c \
- SVGA/svgamesa8.c \
- SVGA/svgamesa15.c \
- SVGA/svgamesa16.c \
- SVGA/svgamesa24.c \
- SVGA/svgamesa32.c \
- Trace/tr_context.c \
- Trace/tr_control.c \
- Trace/tr_error.c \
- Trace/tr_support.c \
- Trace/tr_wrapper.c \
- Trace/tr_write.c
-
-
-ASM_SOURCES =
-
-ADDITIONAL_OBJ =
-
-OBJECTS = $(ASM_SOURCES:.S=.o) \
- $(CORE_SOURCES:.c=.o) \
- $(DRIVER_SOURCES:.c=.o) \
- $(ADDITIONAL_OBJ)
-
-
-OSMESA_SOURCES = OSmesa/osmesa.c
-OSMESA_OBJECTS = OSmesa/osmesa.o
+ $(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 -I. -I$(INCDIR) $(CFLAGS) $< -o $@
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
.S.o:
- $(CC) -c -I. $(CFLAGS) $< -o $@
-
-
-# UGH! These rules shouldn't be needed but IRIX's make (and others?) needs them
-X/glxapi.o: X/glxapi.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/fakeglx.o: X/fakeglx.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xfonts.o: X/xfonts.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xm_api.o: X/xm_api.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xm_dd.o: X/xm_dd.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xm_span.o: X/xm_span.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xm_line.o: X/xm_line.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X/xm_tri.o: X/xm_tri.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-SVGA/svgamesa.o: SVGA/svgamesa.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-SVGA/svgamesa8.o: SVGA/svgamesa8.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-SVGA/svgamesa15.o: SVGA/svgamesa15.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-SVGA/svgamesa16.o: SVGA/svgamesa16.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-SVGA/svgamesa24.o: SVGA/svgamesa24.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-SVGA/svgamesa32.o: SVGA/svgamesa32.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-OSmesa/osmesa.o: OSmesa/osmesa.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-FX/fxapi.o: FX/fxapi.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxclip.o: FX/fxclip.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxdd.o: FX/fxdd.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxddspan.o: FX/fxddspan.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxddtex.o: FX/fxddtex.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxfastpath.o: FX/fxfastpath.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxpipeline.o: FX/fxpipeline.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxrender.o: FX/fxrender.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxsanity.o: FX/fxsanity.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxsetup.o: FX/fxsetup.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxtrifuncs.o: FX/fxtrifuncs.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxtexman.o: FX/fxtexman.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxvsetup.o: FX/fxvsetup.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-FX/fxglidew.o: FX/fxglidew.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-FX/X86/fx_3dnow_fastpath.o: FX/X86/fx_3dnow_fastpath.S
-
-X86/x86.o: X86/x86.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X86/common_x86.o: X86/common_x86.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X86/3dnow.o: X86/3dnow.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-X86/katmai.o: X86/katmai.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-GGI/ggimesa.o: GGI/ggimesa.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-
-Trace/tr_2string.o: Trace/tr_2string.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_attrib.o: Trace/tr_attrib.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_context.o: Trace/tr_context.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_control.o: Trace/tr_control.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_error.o: Trace/tr_error.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_print.o: Trace/tr_print.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
-Trace/tr_wrapper.o: Trace/tr_wrapper.c
- $(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -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"
+default:
+ @echo "Specify a target configuration"
-clean:
- -rm *.o *~ */*.o */*~ *.lo *.la
- -rm -rf .libs
-targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB)
+targets: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(OSMESA_LIB) $(LIBMESA)
+
# Make the GL library
$(LIBDIR)/$(GL_LIB): $(OBJECTS)
- $(MAKELIB) $(GL_LIB) $(GL_MAJOR) $(GL_MINOR) $(GL_TINY) $(OBJECTS)
- rm -f $(LIBDIR)/$(GL_LIB)*
- mv $(GL_LIB)* $(LIBDIR)
+ $(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 $(MAKELIB) $(OSMESA_LIB) $(MESA_MAJOR) $(MESA_MINOR) $(GL_TINY) $(OSMESA_OBJECTS) ; fi
- if [ ${OSMESA_LIB} ] ; then rm -f $(LIBDIR)/$(OSMESA_LIB)* ; fi
- if [ ${OSMESA_LIB} ] ; then mv $(OSMESA_LIB)* $(LIBDIR) ; 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
-include ../Make-config
+# 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
-include depend
+$(LIBDIR)/$(MESA_LIB): $(CORE_OBJECTS)
+
+mesa.a: $(CORE_OBJECTS)
+ rm -f $@ && ar rcv $@ $(CORE_OBJECTS) && ranlib $@
-#
-# Run 'make dep' to update the dependencies if you change what's included
-# by any source file.
-#
-dep: $(CORE_SOURCES) $(DRIVER_SOURCES) $(OSMESA_SOURCES)
- makedepend -fdepend -Y -I../include -DGGI -DSVGA -DFX $(CORE_SOURCES) $(DRIVER_SOURCES) $(OSMESA_SOURCES)
+# 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