added OSMESA_LIB_DEPS needed for some platforms
[mesa.git] / src / mesa / Makefile.X11
index 12790a56b74dc54beee40c63abe39e6b5e963e06..3031daf0687d0e89f8e1f5a75b2525b05a133cdc 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile for core Mesa library
+# Makefile for main Mesa library for Unix/X11-like systems
 
 
 ##### MACROS #####
 TOP = ../..
 
 GL_MAJOR = 1
-GL_MINOR = 4
+GL_MINOR = 5
 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
+# These may be overridden in Make-config
+GL_LIB_NAME = GL
+OSMESA_LIB_NAME = OSMesa
 
 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/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_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_program.c \
-       tnl/t_vb_render.c \
-       tnl/t_vb_texgen.c \
-       tnl/t_vb_texmat.c \
-       tnl/t_vb_vertex.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
-
-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)  \
-       $(SWRAST_SOURCES)       \
-       $(SWRAST_SETUP_SOURCES) \
-       $(TNL_SOURCES)          \
-       $(ASM_C_SOURCES)
+include sources
+
 
 # This will probably get set to $(X86_SOURCES) in Make-config:
 ASM_SOURCES =
@@ -240,38 +26,29 @@ ASM_SOURCES =
 DRIVER_SOURCES = \
        $(X11_DRIVER_SOURCES) \
        $(GLIDE_DRIVER_SOURCES) \
-       $(SVGA_DRIVER_SOURCES)
+       $(SVGA_DRIVER_SOURCES) \
+       $(FBDEV_DRIVER_SOURCES)
 
+# 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 #####
 
@@ -282,12 +59,28 @@ INCLUDE_DIRS = \
        $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
 
 
+# need some special rules here, unfortunately
 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
+       #rm -f x86/gen_matypes x86/*.o
 
 x86/common_x86_asm.o: x86/matypes.h
+x86/3dnow_normal.o: x86/matypes.h
+x86/3dnow_xform1.o: x86/matypes.h
+x86/3dnow_xform2.o: x86/matypes.h
+x86/3dnow_xform3.o: x86/matypes.h
+x86/3dnow_xform4.o: x86/matypes.h
+x86/mmx_blend.o: x86/matypes.h
+x86/sse_normal.o: x86/matypes.h
+x86/sse_xform1.o: x86/matypes.h
+x86/sse_xform2.o: x86/matypes.h
+x86/sse_xform3.o: x86/matypes.h
+x86/sse_xform4.o: x86/matypes.h
+x86/x86_cliptest.o: x86/matypes.h
+x86/x86_xform2.o: x86/matypes.h
+x86/x86_xform3.o: x86/matypes.h
+x86/x86_xform4.o: x86/matypes.h
 
 
 
@@ -297,14 +90,14 @@ 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
 $(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
@@ -312,12 +105,14 @@ $(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) ; \
+                       -l$(GL_LIB_NAME) $(OSMESA_LIB_DEPS) \
+                       -install $(LIBDIR) \
+                       $(MKLIB_OPTIONS) $(OSMESA_OBJECTS) ; \
        fi
 
 
 # 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) \
@@ -325,20 +120,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
@@ -348,9 +137,9 @@ tags:
 
 # Remove .o and backup files
 clean:
-       -rm *.a
+       -rm -f *.a
        -rm -f */*.o */*~ */*.o */*~
-       -rm -f drivers/*/*.o
+       -rm -f drivers/*/*.o drivers/*/*/*.o
 
 
 include $(TOP)/Make-config