36 lines
678 B
Makefile
36 lines
678 B
Makefile
TARGET := program
|
|
SRC = \
|
|
$(wildcard src/*.cpp) \
|
|
$(wildcard src/*.hpp) \
|
|
|
|
BUILD := build
|
|
OBJECTS := $(patsubst src/%.cpp,$(BUILD)/%.o,$(SRC))
|
|
|
|
CXX := g++
|
|
CXXFLAGS := -pedantic-errors -Wall -Wextra -Werror
|
|
LDFLAGS := -lstdc++ -lm -lGL -lGLEW -lSDL2
|
|
INCLUDE := -Iinclude/
|
|
|
|
all: $(BUILD)/$(TARGET)
|
|
|
|
$(BUILD)/%.o: src/%.cpp
|
|
@mkdir -p $(@D)
|
|
$(CXX) $(CXXFLAGS) $(INCLUDE) -c $< -o $@
|
|
|
|
$(BUILD)/$(TARGET): $(OBJECTS)
|
|
@mkdir -p $(@D)
|
|
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
|
|
|
|
.PHONY: all run build clean debug release
|
|
|
|
run: all
|
|
@./$(BUILD)/$(TARGET)
|
|
|
|
debug: CXXFLAGS += -DDEBUG -g
|
|
debug: all
|
|
|
|
release: CXXFLAGS += -O2
|
|
release: all
|
|
|
|
clean:
|
|
-@rm -rvf $(BUILD)
|