PROG=Opgave6_Kroes_VanVeen

MKDIR=mkdir
PACK=tar -czvf
CC=gcc
CP=cp
RM=rm -rf

WARNING_FLAGS=-Wall -Wextra -Werror-implicit-function-declaration -Wshadow -Wstrict-prototypes -pedantic-errors
CFLAGS=-g -O2 -std=c99 $(WARNING_FLAGS)
LDFLAGS=-g -lGL -lglut -lGLU

.c.o:
	$(CC) -c $(CFLAGS) $<

all: main
main: intersection.o main.o plymodel.o rply.o scene.o shaders.o v3math.o
	$(CC) $(LDFLAGS) -o main intersection.o main.o plymodel.o rply.o scene.o shaders.o v3math.o

clean:
	rm -f $(PROG).tar.gz
	rm -f *.o
	rm -f main

tarball:
	$(MAKE) clean
	$(MKDIR) $(PROG)
	$(CP) * $(PROG) 2> /dev/null || true
	$(RM) $(PROG)/*.pdf
	$(PACK) $(PROG).tar.gz $(PROG)/* ../scenes
	$(RM) $(PROG)

shaders.o      : constants.h intersection.h scene.h shaders.h v3math.h shaders.c
scene.o        : plymodel.h scene.h scene.c
intersection.o : types.h intersection.h
shaders.o      : types.h shaders.h
intersection.o : constants.h intersection.h scene.h v3math.h intersection.c
scene.o        : types.h scene.h
constants.o    : types.h constants.h
rply.o         : rply.h rply.c
v3math.o       : v3math.h
types.o        : v3math.h types.h
plymodel.o     : plymodel.h rply.h v3math.h plymodel.c
v3math.o       : v3math.h v3math.c
rply.o         : rply.h
plymodel.o     : types.h plymodel.h
main.o         : constants.h intersection.h plymodel.h scene.h shaders.h v3math.h main.c
