blob: b440e1364364e56b5cd4501656390b18eaac6a7e [file] [log] [blame]
# Mesa 3-D graphics library
# Version: 4.1
#
# Copyright (C) 2001 Wind River Systems, Inc
# The MIT License
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
# Makefile for core library
# This makefile can moved all objects files in MESA_OBJ for use with
# ld in windShell or create a library from objects files in their
# associated .c folder.
#
# For an easy inclusion of lib$(CPU)$(TOOL)GL.a in vxworks image, this
# makefile collects together all .o in an only file
# (obj$(CPU)$(TOOL)GL.o). This operation is unnecessary for
# lib$(CPU)$(TOOL)OSMesa.a and lib$(CPU)$(TOOL)UglMesa.a because they
# already contain only one file.
#
##### MACROS #####
MESA_MAJOR=4
MESA_MINOR=1
MESA_TINY=0
VERSION=$(MESA_MAJOR).$(MESA_MINOR)
GL_MAJOR = 1
GL_MINOR = 2
GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)
##### RULES #####
include ..\rules.windml
#### GL #####
GL_SOURCES = \
api_arrayelt.c \
api_loopback.c \
api_noop.c \
api_validate.c \
accum.c \
arbprogram.c \
attrib.c \
blend.c \
bufferobj.c \
buffers.c \
clip.c \
colortab.c \
context.c \
convolve.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 \
glthread.c \
hash.c \
hint.c \
histogram.c \
image.c \
imports.c \
light.c \
lines.c \
matrix.c \
pixel.c \
points.c \
polygon.c \
rastpos.c \
state.c \
stencil.c \
texcompress.c \
texformat.c \
teximage.c \
texobj.c \
texstate.c \
texstore.c \
texutil.c \
varray.c \
vtxfmt.c \
X86/x86.c \
X86/common_x86.c \
X86/3dnow.c \
X86/sse.c \
math/m_debug_clip.c \
math/m_debug_norm.c \
math/m_debug_vertex.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/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_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/ss_context.c \
swrast_setup/ss_triangle.c \
swrast_setup/ss_vb.c \
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_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c
GL_OBJECTS = $(GL_SOURCES:.c=.o)
GL_OBJNAME = $(MESA_LIBDIR)/objMesaGL.o
#### X86 #####
x86_files = \
X86/common_x86_asm.S \
X86/glapi_x86.S \
X86/x86_cliptest.S \
X86/x86_vertex.S \
X86/x86_xform2.S \
X86/x86_xform3.S \
X86/x86_xform4.S \
x3dnow_files = \
X86/3dnow_normal.S \
X86/3dnow_vertex.S \
X86/3dnow_xform1.S \
X86/3dnow_xform2.S \
X86/3dnow_xform3.S \
X86/3dnow_xform4.S
sse_files = \
X86/sse_normal.S \
X86/sse_vertex.S \
X86/sse_xform1.S \
X86/sse_xform2.S \
X86/sse_xform3.S \
X86/sse_xform4.S
mmx_files = X86/mmx_blend.S
X86_OBJNAME = $(MESA_LIBDIR)/objMesaX86.o
##### UGL #####
UGL_SOURCES = \
windml/ugl_api.c \
windml/ugl_dd.c \
windml/ugl_span.c \
windml/ugl_line.c \
windml/ugl_tri.c \
windml/tornado/torMesaUGLInit.c
UGL_OBJECTS = $(UGL_SOURCES:.c=.o)
UGL_OBJNAME = $(MESA_LIBDIR)/objMesaUGL.o
##### OS #####
OS_SOURCES = OSmesa/osmesa.c windml/tornado/torMesaOSInit.c
OS_OBJECTS = $(OS_SOURCES:.c=.o)
OS_OBJNAME = $(MESA_LIBDIR)/objMesaOS.o
##### GLUTSHAPES #####
GLUTSHAPES_SOURCES = \
windml/ugl_glutshapes.c \
windml/tornado/torGLUTShapesInit.c
GLUTSHAPES_OBJECTS = $(GLUTSHAPES_SOURCES:.c=.o)
GLUTSHAPES_OBJNAME = $(MESA_LIBDIR)/objGLUTShapes.o
SOURCES = $(GL_SOURCES) $(UGL_SOURCES) $(OS_SOURCES) \
$(GLUTSHAPES_SOURCES)
##### TARGETS #####
all: depend.$(CPU)$(TOOL) cfgX86 $(X86_OBJNAME) $(GL_OBJNAME)\
$(UGL_OBJNAME) $(OS_OBJNAME) $(GLUTSHAPES_OBJNAME)
#histogram.o:
# $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $<
#image.o:
# $(CC) $(CFLAGS) -O1 $(OPTION_OBJECT_ONLY) $(OPTION_OBJECT_NAME)$@ $<
cfgX86:
ifdef HAVE_3DNOW
x3dnow_sources = $(x3dnow_files)
CFLAGS_3DNOW = -DUSE_3DNOW_ASM
HAVE_X86 = 1
endif
ifdef HAVE_SSE
sse_sources = $(sse_files)
CFLAGS_SSE = -DUSE_SSE_ASM
HAVE_X86 = 1
endif
ifdef HAVE_MMX
mmx_sources = $(mmx_files)
CFLAGS_MMX = -DUSE_MMX_ASM
HAVE_X86 = 1
endif
ifdef HAVE_X86
x86_sources = $(x86_files)
CFLAGS_X86 = -DUSE_X86_ASM
endif
X86_SOURCES = $(x86_sources) $(mmx_sources) \
$(x3dnow_sources) $(sse_sources)
X86_OBJECTS = $(X86_SOURCES:.S=.o)
CFLAGS_USE_X86 = $(CFLAGS_3DNOW) $(CFLAGS_SSE) $(CFLAGS_MMX) $(CFLAGS_X86)
#X86/matypes.h: mtypes.h tnl/t_context.h X86/gen_matypes.c
# $(CC) -I ./ X86/gen_matypes.c -o X86/gen_matypes
# ./X86/gen_matypes > X86/matypes.h
# $(RM) X86/gen_matypes
# $(RM) X86/gen_matypes.o
# Make the Mesax86 library
$(X86_OBJNAME): $(X86_OBJECTS)
ifdef HAVE_X86
# $(LD) -r $(X86_OBJECTS) -o $(MESA_OBJNAME)
$(LD) -r $(X86_OBJECTS) -o $(X86_OBJNAME)
# $(AR) rus $(MESA_LIBNAME) $(X86_OBJNAME)
# $(RM) $(X86_OBJNAME)
endif
# Make the GL library
$(GL_OBJNAME): $(GL_OBJECTS)
# $(LD) -r $(GL_OBJECTS) -o $(MESA_OBJNAME)
$(LD) -r $(GL_OBJECTS) -o $(GL_OBJNAME)
# $(AR) rus $(MESA_LIBNAME) $(GL_OBJNAME)
# $(AR) rus $(VX_LIBNAME) $(GL_OBJNAME)
# $(RM) $(GL_OBJNAME)
# Make the UGLMesa library
$(UGL_OBJNAME): $(UGL_OBJECTS)
# $(LD) -r $(UGL_OBJECTS) -o $(MESA_OBJNAME)
$(LD) -r $(UGL_OBJECTS) -o $(UGL_OBJNAME)
# $(AR) rus $(MESA_LIBNAME) $(UGL_OBJNAME)
# $(AR) rus $(VX_LIBNAME) $(UGL_OBJNAME)
# $(RM) $(UGL_OBJNAME)
# Make the OSMesa library
$(OS_OBJNAME): $(OS_OBJECTS)
# $(LD) -r $(OS_OBJECTS) -o $(MESA_OBJNAME)
$(LD) -r $(OS_OBJECTS) -o $(OS_OBJNAME)
# $(AR) rus $(MESA_LIBNAME) $(OS_OBJNAME)
# $(AR) rus $(VX_LIBNAME) $(OS_OBJNAME)
# $(RM) $(OS_OBJNAME)
# Make the GLUT Shapes library
$(GLUTSHAPES_OBJNAME): $(GLUTSHAPES_OBJECTS)
# $(LD) -r $(GLUTSHAPES_OBJECTS) -o $(MESA_OBJNAME)
$(LD) -r $(GLUTSHAPES_OBJECTS) -o $(GLUTSHAPES_OBJNAME)
# $(AR) rus $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME)
# $(AR) rus $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME)
# $(RM) $(GLUTSHAPES_OBJNAME)
depend.$(CPU)$(TOOL):
ifeq ($(WIND_HOST_TYPE),x86-win32)
@ $(RM) $@
@ $(ECHO) Creating depend.$(CPU)$(TOOL)
ifneq ($(SOURCES),)
@ for %f in ($(SOURCES)) do \
$(CC) -MM $(CFLAGS) %f >>$@
endif
else
Makefile
@ $(RM) $@
@ $(ECHO) "Creating depend.$(CPU)$(TOOL)"
ifneq ($(SOURCES),)
@ for FILE in $(filter-out $(NODEPENDOBJS), $(SOURCES)); \
do \
$(CC) -MM $(CFLAGS) $$FILE \
| $(TCL) $(BIN_DIR)/depend.tcl $(TGT_DIR) >>$@; \
done
endif
endif
.PHONY = clean
clean:
# $(AR) d $(MESA_LIBNAME) $(GL_OBJNAME)
# $(AR) d $(MESA_LIBNAME) $(UGL_OBJNAME)
# $(AR) d $(MESA_LIBNAME) $(OS_OBJNAME)
# $(AR) d $(MESA_LIBNAME) $(GLUTSHAPES_OBJNAME)
# $(AR) d $(VX_LIBNAME) $(GL_OBJNAME)
# $(AR) d $(VX_LIBNAME) $(UGL_OBJNAME)
# $(AR) d $(VX_LIBNAME) $(OS_OBJNAME)
# $(AR) d $(VX_LIBNAME) $(GLUTSHAPES_OBJNAME)
$(RM) $(GL_OBJECTS)
$(RM) $(UGL_OBJECTS)
$(RM) $(OS_OBJECTS)
$(RM) $(GLUTSHAPES_OBJECTS)
$(RM) $(GL_OBJNAME)
$(RM) $(UGL_OBJNAME)
$(RM) $(OS_OBJNAME)
$(RM) $(GLUTSHAPES_OBJNAME)
$(RM) depend.$(CPU)$(TOOL)
include depend.$(CPU)$(TOOL)