ROOT_DIR := $(abspath ..) CXX := gcc CXXFLAGS := -std=c++17 \ -Wall \ -Wextra \ -Werror \ -I$(ROOT_DIR)/core/include \ -I$(ROOT_DIR)/logger/include \ -Ihelpers LDFLAGS := -lstdc++ BUILD_DIR := $(ROOT_DIR)/build RESULT_TEST_BIN := $(BUILD_DIR)/result_test LOGGER_TEST_BIN := $(BUILD_DIR)/logger_test SCOPED_FILE_TEST_BIN := $(BUILD_DIR)/scoped_file_test RESULT_TEST_SRC := core/result_test.cpp LOGGER_TEST_SRC := core/logger_test.cpp SCOPED_FILE_TEST_SRC := helpers/scoped_file_test.cpp LOGGER_SRC := $(ROOT_DIR)/logger/src/logger.cpp .PHONY: all test clean all: test test: $(RESULT_TEST_BIN) \ $(LOGGER_TEST_BIN) \ $(SCOPED_FILE_TEST_BIN) $(RESULT_TEST_BIN) $(LOGGER_TEST_BIN) $(SCOPED_FILE_TEST_BIN) $(RESULT_TEST_BIN): $(RESULT_TEST_SRC) @mkdir -p $(BUILD_DIR) $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) $(LOGGER_TEST_BIN): $(LOGGER_TEST_SRC) $(LOGGER_SRC) @mkdir -p $(BUILD_DIR) $(CXX) $(CXXFLAGS) $^ -o $@ $(LDFLAGS) $(SCOPED_FILE_TEST_BIN): $(SCOPED_FILE_TEST_SRC) @mkdir -p $(BUILD_DIR) $(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS) clean: rm -rf $(BUILD_DIR)