# Variables
MESA = /softs_linux/Mesa-5.0
INCPATH	= -I$(MESA)/include
LIBPATH	= -L$(MESA)/lib
LIBS        = -lglut -lGLU -lGL -lm
CFLAGS	= $(INCPATH) -g 
LFLAGS	= $(LIBPATH) $(LIBS)

# Main targets
all: hello double bezcurve bezmesh quadric cube model planet light movelight smooth colormat material anti accpersp fog checker mipmap matgray
hello: hello.o
	gcc -o hello hello.o $(LFLAGS)
double: double.o
	gcc -o double double.o $(LFLAGS)
bezcurve: bezcurve.o
	gcc -o bezcurve bezcurve.o $(LFLAGS)
bezmesh: bezmesh.o
	gcc -o bezmesh bezmesh.o $(LFLAGS)
quadric: quadric.o
	gcc -o quadric quadric.o $(LFLAGS)
cube: cube.o
	gcc -o cube cube.o $(LFLAGS)
model: model.o
	gcc -o model model.o $(LFLAGS)
planet: planet.o
	gcc -o planet planet.o $(LFLAGS)
light: light.o
	gcc -o light light.o $(LFLAGS)
movelight: movelight.o
	gcc -o movelight movelight.o $(LFLAGS)
smooth: smooth.o
	gcc -o smooth smooth.o $(LFLAGS)
colormat: colormat.o
	gcc -o colormat colormat.o $(LFLAGS)
material: material.o
	gcc -o material material.o $(LFLAGS)
anti: anti.o
	gcc -o anti anti.o $(LFLAGS)
accpersp: accpersp.o
	gcc -o accpersp accpersp.o $(LFLAGS)
fog: fog.o
	gcc -o fog fog.o $(LFLAGS)
checker: checker.o
	gcc -o checker checker.o $(LFLAGS)
mipmap: mipmap.o
	gcc -o mipmap mipmap.o $(LFLAGS)
matgray: matgray.o
	gcc -o matgray matgray.o $(LFLAGS)

# Source targets
hello.o: hello.c
	gcc -c hello.c $(CFLAGS)
double.o: double.c
	gcc -c double.c $(CFLAGS)
bezcurve.o: bezcurve.c
	gcc -c bezcurve.c $(CFLAGS)
bezmesh.o: bezmesh.c
	gcc -c bezmesh.c $(CFLAGS)
quadric.o: quadric.c
	gcc -c quadric.c $(CFLAGS)
cube.o: cube.c
	gcc -c cube.c $(CFLAGS)
model.o: model.c
	gcc -c model.c $(CFLAGS)
planet.o: planet.c
	gcc -c planet.c $(CFLAGS)
light.o: light.c
	gcc -c light.c $(CFLAGS)
movelight.o: movelight.c
	gcc -c movelight.c $(CFLAGS)
smooth.o: smooth.c
	gcc -c smooth.c $(CFLAGS)
colormat.o: colormat.c
	gcc -c colormat.c $(CFLAGS)
material.o: material.c
	gcc -c material.c $(CFLAGS)
anti.o: anti.c
	gcc -c anti.c $(CFLAGS)
accpersp.o: accpersp.c
	gcc -c accpersp.c $(CFLAGS)
fog.o: fog.c
	gcc -c fog.c $(CFLAGS)
checker.o: checker.c
	gcc -c checker.c $(CFLAGS)
mipmap.o: mipmap.c
	gcc -c mipmap.c $(CFLAGS)
matgray.o: matgray.c
	gcc -c matgray.c $(CFLAGS)

# Clean up
clean:
	rm -f *.o *~

realclean: clean
	rm -f hello double bezcurve bezmesh quadric cube model planet light movelight smooth colormat material anti accpersp fog checker mipmap matgray
