CCPP= g++
CXXFLAGS= -W -Wall -O3 -funroll-loops
#CXXFLAGS= -W -Wall -g
LDFLAGS= -lpsapi
EXEC= cfun.exe
SRC_DIR= src
OBJ_DIR= obj
SRC= $(wildcard $(SRC_DIR)/*.cpp)
OBJ= $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
DEPS= $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.d)
RM= del

all: $(EXEC)

$(EXEC): $(OBJ)
	$(CCPP) -o $@ $^ $(LDFLAGS)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
	$(CCPP) -o $@ -c $< $(CXXFLAGS)


$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
	$(CCPP) -MM $^ -MF $@ -MT $(@:%.d=%.o) $(CXXFLAGS)
	
clean:
	$(RM) $(OBJ_DIR)\*.o
	$(RM) $(OBJ_DIR)\*.d

fullclean:
	$(RM) $(OBJ_DIR)\*.o
	$(RM) $(OBJ_DIR)\*.d
	$(RM) $(EXEC)
	
include $(DEPS)
