CXX := gcc CXXFLAGS := -std=c++17 \ -Wall \ -Wextra \ -Werror \ -Icore/include \ -Ilogger/include \ -Itests/helpers LDFLAGS := -lstdc++ BUILD_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 := tests/app/core/result_test.cpp LOGGER_TEST_SRC := tests/app/core/logger_test.cpp SCOPED_FILE_TEST_SRC := tests/helpers/scoped_file_test.cpp LOGGER_SRC := 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)