CC= gcc
LD= gcc

CFLAGS= -Wall -O3 -Wno-unused -Ilibimg/

# version chemin opaque
CSRC=main.c \
	visu_chemin.c \
	chemin_opaque.c \
	primitive.c \
	operation.c \
	camera.c \
	source.c \
	matiere.c \
	struct.c \
	libimg/img.c \
	libimg/tga.c \
	libimg/bmp.c

COBJ= $(CSRC:.c=.o)

CDEP= $(CSRC:.c=.d)

# version whitted opaque (lancer de rayons recursif classique)
WSRC=main.c \
	visu_whitted.c \
	whitted_opaque.c \
	primitive.c \
	operation.c \
	camera.c \
	source.c \
	matiere.c \
	struct.c \
	libimg/img.c \
	libimg/tga.c \
	libimg/bmp.c

WOBJ= $(WSRC:.c=.o)

WDEP= $(WSRC:.c=.d)

#
OBJ= $(COBJ) + $(WOBJ)

# numero de version auto
include build

BIN= visu wvisu

.PHONY: all
all: $(BIN)

visu: $(COBJ)
	@echo "... version suivi de chemins opaques: " $@
	$(LD) -o $@ $+ -lm

wvisu: $(WOBJ)
	@echo "... version classique (whitted): " $@
	$(LD) -o $@ $+ -lm

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

%.d: %.c
	$(CC) $(CFLAGS) -MM -MD $< -o $@

.PHONY: clean
clean: rebuild
	rm -f $(BIN) $(COBJ) $(CDEP) $(WOBJ) $(WDEP)

.PHONY: tarball
tarball:
	tar -zcf mimtd7_correction.tar.gz Makefile build *.c *.h libimg/*.h

build:
	@echo BUILD= 1 > build

rebuild: build
	@echo BUILD= `expr $(BUILD) + 1` > build


-include $(CDEP)
-include $(WDEP)

