# $Id: Makefile.X11,v 1.20 2000/07/14 14:55:04 brianp Exp $

# Mesa 3-D graphics library
# Version:  3.3
# Copyright (C) 1995-2000  Brian Paul

# Makefile for core library


##### MACROS #####

GL_MAJOR = 1
GL_MINOR = 2
GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY)

VPATH = RCS

INCDIR = ../include
LIBDIR = ../lib


CORE_SOURCES = \
	aatriangle.c \
	accum.c \
	alpha.c \
	alphabuf.c \
	attrib.c \
	bbox.c \
	bitmap.c \
	blend.c \
	buffers.c \
	clip.c \
	colortab.c \
	config.c \
	context.c \
	copypix.c \
	cva.c \
	debug_xform.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 \
	hint.c \
	image.c \
	imaging.c \
	light.c \
	lines.c \
	logic.c \
	masking.c \
	matrix.c \
	mem.c \
	mmath.c \
	pb.c \
	pipeline.c \
	pixel.c \
	pixeltex.c \
	points.c \
	polygon.c \
	quads.c \
	rastpos.c \
	readpix.c \
	rect.c \
	scissor.c \
	shade.c \
	span.c \
	stages.c \
	state.c \
	stencil.c \
	teximage.c \
	texobj.c \
	texstate.c \
	texture.c \
	texutil.c \
	translate.c \
	triangle.c \
	varray.c \
	vb.c \
	vbcull.c \
	vbfill.c \
	vbindirect.c \
	vbrender.c \
	vbxform.c \
	vector.c \
	vertices.c \
	winpos.c \
	xform.c \
	zoom.c \
	X86/x86.c \
	X86/common_x86.c \
	X86/3dnow.c \
	X86/katmai.c

DRIVER_SOURCES = \
	X/glxapi.c \
	X/fakeglx.c \
	X/xfonts.c \
	X/xmesa1.c \
	X/xmesa2.c \
	X/xmesa3.c \
	X/xmesa4.c \
	OSmesa/osmesa.c \
	SVGA/svgamesa.c \
	SVGA/svgamesa8.c \
	SVGA/svgamesa15.c \
	SVGA/svgamesa16.c \
	SVGA/svgamesa24.c \
	SVGA/svgamesa32.c \
	FX/fxapi.c \
	FX/fxclip.c \
	FX/fxcva.c \
	FX/fxdd.c \
	FX/fxddspan.c \
	FX/fxddtex.c \
	FX/fxfastpath.c \
	FX/fxpipeline.c \
	FX/fxrender.c \
	FX/fxsanity.c \
	FX/fxsetup.c \
	FX/fxtexman.c \
	FX/fxtrifuncs.c \
	FX/fxvsetup.c \
	FX/fxglidew.c

ASM_SOURCES = 

ADDITIONAL_OBJ = 

OBJECTS = $(ASM_SOURCES:.S=.o) \
	$(CORE_SOURCES:.c=.o) \
	$(DRIVER_SOURCES:.c=.o) \
	$(ADDITIONAL_OBJ)


##### RULES #####

.c.o:
	$(CC) -c -I. -I$(INCDIR) $(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/xmesa1.o: X/xmesa1.c
	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xmesa2.o: X/xmesa2.c
	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xmesa3.o: X/xmesa3.c
	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
X/xmesa4.o: X/xmesa4.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/fxcva.o: FX/fxcva.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
GGI/ggimesa.o: GGI/ggimesa.c
	$(CC) -c -I. -I$(INCDIR) $(CFLAGS) $< -o $@
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 $@

##### TARGETS #####

#default:
#	@echo "Specify a target configuration"

clean:
	-rm *.o *~ */*.o */*~ *.lo *.la
	-rm -rf .libs

targets: $(LIBDIR)/$(GL_LIB)

# Make the library
$(LIBDIR)/$(GL_LIB): $(OBJECTS)
	$(MAKELIB) $(GL_LIB) $(GL_MAJOR) $(GL_MINOR) $(GL_TINY) $(OBJECTS)
	rm -f $(LIBDIR)/$(GL_LIB)*
	mv $(GL_LIB)* $(LIBDIR)


include ../Make-config

include depend



#
# Run 'make dep' to update the dependencies if you change what's included
# by any source file.
# 
dep: $(CORE_SOURCES) $(DRIVER_SOURCES)
	makedepend -fdepend -Y -I../include -DGGI -DSVGA -DFX $(CORE_SOURCES) $(DRIVER_SOURCES)

tags:
	etags `find . -name \*.[ch]` `find ../include`
