#
# Makefile for RayLab v1.1
# ------------------------
#
# This file is part of the RayLab 1.1 distribution, and it is released
# to the public domain.
#
# This makefile was made for gcc/cc for generic systems.
#
# How to compile:
#
#   Type 'make raylab' or just 'make' from shell.
#

CFLAGS    = -O3 -c -finline-functions -ffast-math -fno-unroll-loops \
            -fno-unroll-all-loops -fomit-frame-pointer -freg-struct-return
LFLAGS    = -s -o raylab -O
CC        = gcc
OBJ       = o

.c.o:
	$(CC) $(CFLAGS) $*.c


OBJS   = raylab.$(OBJ) trace.$(OBJ) camera.$(OBJ) intersct.$(OBJ) \
         algebra.$(OBJ) getworld.$(OBJ) pic.$(OBJ) iff.$(OBJ) tga.$(OBJ) \
         ppm.$(OBJ) texture.$(OBJ) objects.$(OBJ) preproc.$(OBJ) \
         getinput.$(OBJ) platform.$(OBJ) display.$(OBJ)

raylab: $(OBJS)
	$(CC) $(LFLAGS) $(OBJS) -lm


raylab.$(OBJ): raylab.c defs.h typedef.h

trace.$(OBJ): trace.c defs.h typedef.h

camera.$(OBJ): camera.c defs.h typedef.h

intersct.$(OBJ): intersct.c defs.h typedef.h

algebra.$(OBJ): algebra.c defs.h typedef.h

getworld.$(OBJ): getworld.c defs.h typedef.h

pic.$(OBJ): pic.c defs.h typedef.h

iff.$(OBJ): iff.c defs.h typedef.h

tga.$(OBJ): tga.c defs.h typedef.h

ppm.$(OBJ): ppm.c defs.h typedef.h

texture.$(OBJ): texture.c defs.h typedef.h

objects.$(OBJ): objects.c defs.h typedef.h

preproc.$(OBJ): preproc.c defs.h typedef.h

getinput.$(OBJ): getinput.c defs.h typedef.h

platform.$(OBJ): platform.c defs.h typedef.h

display.$(OBJ): display.c defs.h typedef.h

