CC := g++ BUILD_DIR := build CCOPTS := -Wall -Wextra -ggdb -pedantic-errors SRC_DIR := ./ OUTPUT := $(shell basename $(CURDIR)).elf SRCFILES := $(wildcard ./$(SRC_DIR)/*.cpp) OBJFILES := $(patsubst ./$(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRCFILES)) make: BUILD_DIR $(OBJFILES) $(CC) $(CCOPTS) -o $(OUTPUT) $(OBJFILES) debug: gdb -x debug.gdb $(OUTPUT) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp $(CC) $(CCOPTS) -c $< -o $@ BUILD_DIR: mkdir -p $(BUILD_DIR) clean: rm -rf build/ $(OUTPUT)