2025-06-16 03:14:07 +01:00

39 lines
791 B
Makefile

# Compiler and linker settings
CXX = g++
LDFLAGS = -lSDL3 -lSDL3_image
CXXFLAGS = -pedantic -std=c++17 -I include -I /usr/include/SDL3_image -I /usr/include/SDL3
# Source and object files
SRC = $(wildcard src/*.cpp)
OBJ = $(addprefix build/, $(notdir $(SRC:.cpp=.o)))
# Target executable
TARGET = build/x86_64/main.x86_64
# Default target
all: clean dirs $(TARGET)
# development target with debugging
dev: CXXFLAGS += -g
dev: all
# Release target
release: CXXFLAGS += -O3
release: all
# Create build directory if it doesn't exist
dirs:
@mkdir -p build/x86_64
# Build target
$(TARGET): $(OBJ)
$(CXX) -o $@ $^ $(LDFLAGS)
# Build object files
build/%.o: src/%.cpp
$(CXX) -c -o $@ $< $(CXXFLAGS)
# Clean up build files
clean:
@rm -f $(OBJ) $(TARGET)
@echo "Cleaned up build files."