
RELEASE = -O3
DEBUG = -g

OBJ = junk/
JUNK = junk/

LIB1=libcommon
LIB2=libimage
LIB3=libvolume

CXXFLAGS = -pipe -Wall -Wextra $(DEBUG) -Wold-style-cast -Woverloaded-virtual -Wfloat-equal -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wshadow -Wredundant-decls -Winit-self -Wswitch-default -Wswitch-enum -Wundef -Wlogical-op -Winline -Wno-unused-variable -Wno-unused-parameter
INCPATH = -I$(LIB1) -I$(LIB2) -I$(LIB3) -Ilocal

GPP = g++ 
EXEC = tp_cpe

LINKLIB = -lm

F00=main
F01=exception_cpe
F02=color
F03=image
F04=image_io
F05=pos2
F06=fonction_transfert
F07=volume




EVERYTHING_FLAG= $(F00).o $(F01).o $(F02).o $(F03).o $(F04).o $(F05).o $(F06).o $(F07).o

EVERYTHING = $(OBJ)$(F00).o $(OBJ)$(F01).o $(OBJ)$(F02).o $(OBJ)$(F03).o $(OBJ)$(F04).o $(OBJ)$(F05).o $(OBJ)$(F06).o $(OBJ)$(F07).o 


all: $(EXEC)


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

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


$(OBJ)$(F00).o: local/$(F00).cpp
	@echo --------- build [$(F00)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) local/$(F00).cpp -o $(OBJ)$(F00).o
	@echo OK [$(F00)]
	@echo

$(OBJ)$(F01).o: $(LIB1)/$(F01).cpp
	@echo --------- build [$(F01)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB1)/$(F01).cpp -o $(OBJ)$(F01).o
	@echo OK [$(F01)]
	@echo

$(OBJ)$(F02).o: $(LIB2)/$(F02).cpp
	@echo --------- build [$(F02)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB2)/$(F02).cpp -o $(OBJ)$(F02).o
	@echo OK [$(F02)]
	@echo

$(OBJ)$(F03).o: $(LIB2)/$(F03).cpp
	@echo --------- build [$(F03)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB2)/$(F03).cpp -o $(OBJ)$(F03).o
	@echo OK [$(F03)]
	@echo

$(OBJ)$(F04).o: $(LIB2)/$(F04).cpp
	@echo --------- build [$(F04)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB2)/$(F04).cpp -o $(OBJ)$(F04).o
	@echo OK [$(F04)]
	@echo

$(OBJ)$(F05).o: $(LIB2)/$(F05).cpp
	@echo --------- build [$(F05)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB2)/$(F05).cpp -o $(OBJ)$(F05).o
	@echo OK [$(F05)]
	@echo

$(OBJ)$(F06).o: $(LIB3)/$(F06).cpp
	@echo --------- build [$(F06)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB3)/$(F06).cpp -o $(OBJ)$(F06).o
	@echo OK [$(F06)]
	@echo


$(OBJ)$(F07).o: $(LIB3)/$(F07).cpp
	@echo --------- build [$(F07)] ----------
	$(GPP) -c  $(CXXFLAGS) $(INCPATH) $(LIB3)/$(F07).cpp -o $(OBJ)$(F07).o
	@echo OK [$(F07)]
	@echo




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

