newmen/versatile-diamond

View on GitHub
engine/Makefile

Summary

Maintainability
Test Coverage
NAME        := libengine

ARKSFLAGS    := -DNDEBUG -O2
# ARKSFLAGS    :=
STANDART    := -std=c++11

GCC_PATH    := /usr
CXX        := $(GCC_PATH)/bin/g++
CFLAGS        := $(STANDART) $(ARKSFLAGS) -Wall -I$(GCC_PATH)/include -I/usr/local/include -pthread

SRC_DIR        := cpp
OBJS_DIR    := obj

SOURCE_DIRS    := $(shell find $(SRC_DIR) -type d)
OBJECTS_DIRS    := $(SOURCE_DIRS:$(SRC_DIR)%=$(OBJS_DIR)%)

SOURCE_FILES    := $(wildcard $(addsuffix /*.cpp, $(SOURCE_DIRS)))
SOURCE_OBJECTS    := $(patsubst $(SRC_DIR)/%, $(OBJS_DIR)/%, $(SOURCE_FILES:%.cpp=%.o))
MD_FILES    := $(SOURCE_OBJECTS:%.o=%.d)

.PHONY: all dirs clean

all:    $(NAME)
$(NAME):    dirs $(MD_FILES) $(SOURCE_OBJECTS)

dirs:
    mkdir -p $(OBJECTS_DIRS)

$(OBJS_DIR)/%.d: $(SRC_DIR)/%.cpp
    $(CXX) -c $(STANDART) -MM -MF $@ $<

$(OBJS_DIR)/%.o: $(SRC_DIR)/%.cpp
    $(CXX) -c $(CFLAGS) -o $@ $<

clean:
    rm -rf $(OBJS_DIR)

include $(wildcard $(addsuffix /*.d, $(OBJECTS_DIRS)))