diff --git a/makefile b/makefile index 0a14e43d858f7c4514c37be19b272e5525cb0b1a..a00133d48af6deca1730666732013fc6854425ba 100644 --- a/makefile +++ b/makefile @@ -1,10 +1,24 @@ -# Makefile for Simple Game - -# Compiler +ifeq ($(OS),Windows_NT) +CXX = g++ # or your Windows compiler +CXXFLAGS = -std=c++17 -Wall -Wreorder +RM = del /Q +else +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Linux) CXX = g++ +CXXFLAGS = -std=c++17 -Wall -Wreorder +RM = rm -f +endif +# Add more conditions for other platforms as needed +endif # Compiler flags -CXXFLAGS = -std=c++17 -Wall -Wreorder -g + +# DEBUG BUILD +CXXFLAGS += -g + +# Linker Flags +LDFLAGS = # Source directory SRC_DIR = src @@ -23,7 +37,7 @@ BIN_DIR = bin # Source files SRC_FILES = $(wildcard $(SRC_DIR)/**/*.cpp $(SRC_DIR)/*.cpp ) -SRC_FILES_ = $(wildcard $(SRC_DIR)/*.cpp) + # Test Files TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp) @@ -33,29 +47,29 @@ TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.cpp,$(BUILD_DIR)/%.o,$(TEST_FILES # Output executable TARGET = $(BIN_DIR)/game +TEST_TARGET = $(BIN_DIR)/test_runner all: $(TARGET) $(TARGET): $(OBJ_FILES) $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ_FILES) -$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp +$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/*.h @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) -I$(INC_DIR) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $< clean: rm -rf $(BIN_DIR)/* $(BUILD_DIR)/* test_runnr rm -rf ./*~ ./*.swp run_tests: $(TEST_OBJ_FILES) - $(CC) $(CFLAGS) $(INC_DIRS) -o test_runner $^ - ./test_runner + $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INC_DIRS) -o ${TEST_TARGET} $^ + ./${TEST_TARGET} $(BUILD_DIR)/%.o: $(TEST_DIR)/%.test.cpp @mkdir -p $(@D) - $(CC) $(CFLAGS) $(INC_DIRS) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INC_DIRS) -c -o $@ $< run: $(TARGET) ./$(TARGET) -