
RELEASE = -O3

OBJ = junk/
JUNK = junk/

SRC = src/
H = header/


CFLAGS = -pipe -Wall -Wextra
INCPATH = -I${H}

GPP = g++ 
EXEC = visu

LINKLIB =  -lm


F1=main
F2=Volume
F3=Texture
F4=fonction_transfert
F5=exception_cpe
F6=color


EVERYTHING = $(OBJ)$(F1).o $(OBJ)$(F2).o $(OBJ)$(F3).o $(OBJ)$(F4).o $(OBJ)$(F5).o $(OBJ)$(F6).o 


all: $(EXEC)


$(EXEC): $(EVERYTHING)
	@echo 
	@echo ================ [LINKAGE ...]  ================ 
	@echo

	$(GPP) $(EVERYTHING) -o $(EXEC) $(LINKLIB)
	@echo
	@echo [OK]
	@echo 
	@echo ================ [progam compiled succesfully] ================ 
	@echo


$(OBJ)$(F1).o: $(SRC)$(F1).cpp
	@echo --------- build [$(F1)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F1).cpp -o $(OBJ)$(F1).o
	@echo OK [$(F1)]
	@echo

$(OBJ)$(F2).o: $(SRC)$(F2).cpp $(H)$(F2).hpp
	@echo --------- build [$(F2)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F2).cpp -o $(OBJ)$(F2).o
	@echo OK [$(F2)]
	@echo

$(OBJ)$(F3).o: $(SRC)$(F3).cpp $(H)$(F3).hpp
	@echo --------- build [$(F3)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F3).cpp -o $(OBJ)$(F3).o
	@echo OK [$(F3)]
	@echo

$(OBJ)$(F4).o: $(SRC)$(F4).cpp $(H)$(F4).hpp
	@echo --------- build [$(F4)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F4).cpp -o $(OBJ)$(F4).o
	@echo OK [$(F4)]
	@echo

$(OBJ)$(F5).o: $(SRC)$(F5).cpp $(H)$(F5).hpp
	@echo --------- build [$(F5)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F5).cpp -o $(OBJ)$(F5).o
	@echo OK [$(F5)]
	@echo

$(OBJ)$(F6).o: $(SRC)$(F6).cpp $(H)$(F6).hpp
	@echo --------- build [$(F6)] ----------
	$(GPP) -c  $(CFLAGS) $(INCPATH) $(SRC)$(F6).cpp -o $(OBJ)$(F6).o
	@echo OK [$(F6)]
	@echo

clean:
	rm -f *~ *.o $(OBJ)*.o $(SRC)*~ $(H)*~ *# $(H)*# $(SRC)*# 
	@echo
	@echo cleaning done
	@echo

