#
# 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 for Amiga.
#
# How to compile (for an Amiga with 020+881 or better):
#
#   Type 'make' or 'make raylab' from shell.
#
# To compile for an Amiga without an FPU, just change the -m68xxx flags
# and replace 'algebra_881...' in the OBJS declaration with 'algebra...'
#


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

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

.s.o:
	$(ASM) $(AFLAGS) $*.s

OBJS   = raylab.$(OBJ) trace.$(OBJ) camera.$(OBJ) intersct.$(OBJ) \
         algebra_881.$(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

algebra_881.$(OBJ): algebra_881.s

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

