Skip to content
Snippets Groups Projects
Commit 37431ca2 authored by Alfred Burgess's avatar Alfred Burgess
Browse files

Expanded makefile

parent 5b3ffd72
No related merge requests found
# Makefile for Simple Game ifeq ($(OS),Windows_NT)
CXX = g++ # or your Windows compiler
# Compiler CXXFLAGS = -std=c++17 -Wall -Wreorder
RM = del /Q
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
CXX = g++ CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wreorder
RM = rm -f
endif
# Add more conditions for other platforms as needed
endif
# Compiler flags # Compiler flags
CXXFLAGS = -std=c++17 -Wall -Wreorder -g
# DEBUG BUILD
CXXFLAGS += -g
# Linker Flags
LDFLAGS =
# Source directory # Source directory
SRC_DIR = src SRC_DIR = src
...@@ -23,7 +37,7 @@ BIN_DIR = bin ...@@ -23,7 +37,7 @@ BIN_DIR = bin
# Source files # Source files
SRC_FILES = $(wildcard $(SRC_DIR)/**/*.cpp $(SRC_DIR)/*.cpp ) SRC_FILES = $(wildcard $(SRC_DIR)/**/*.cpp $(SRC_DIR)/*.cpp )
SRC_FILES_ = $(wildcard $(SRC_DIR)/*.cpp)
# Test Files # Test Files
TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp) 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 ...@@ -33,29 +47,29 @@ TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.cpp,$(BUILD_DIR)/%.o,$(TEST_FILES
# Output executable # Output executable
TARGET = $(BIN_DIR)/game TARGET = $(BIN_DIR)/game
TEST_TARGET = $(BIN_DIR)/test_runner
all: $(TARGET) all: $(TARGET)
$(TARGET): $(OBJ_FILES) $(TARGET): $(OBJ_FILES)
$(CXX) $(CXXFLAGS) -o $(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) @mkdir -p $(@D)
$(CXX) $(CXXFLAGS) -I$(INC_DIR) -c -o $@ $< $(CXX) $(CXXFLAGS) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $<
clean: clean:
rm -rf $(BIN_DIR)/* $(BUILD_DIR)/* test_runnr rm -rf $(BIN_DIR)/* $(BUILD_DIR)/* test_runnr
rm -rf ./*~ ./*.swp rm -rf ./*~ ./*.swp
run_tests: $(TEST_OBJ_FILES) run_tests: $(TEST_OBJ_FILES)
$(CC) $(CFLAGS) $(INC_DIRS) -o test_runner $^ $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INC_DIRS) -o ${TEST_TARGET} $^
./test_runner ./${TEST_TARGET}
$(BUILD_DIR)/%.o: $(TEST_DIR)/%.test.cpp $(BUILD_DIR)/%.o: $(TEST_DIR)/%.test.cpp
@mkdir -p $(@D) @mkdir -p $(@D)
$(CC) $(CFLAGS) $(INC_DIRS) -c -o $@ $< $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INC_DIRS) -c -o $@ $<
run: $(TARGET) run: $(TARGET)
./$(TARGET) ./$(TARGET)
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment