30 lines
524 B
Makefile
30 lines
524 B
Makefile
CXX := g++
|
|
CXXFLAGS := -std=c++20 -Wall -Wextra -Wpedantic -O2
|
|
LDFLAGS :=
|
|
SRC_DIR := src
|
|
BUILD_DIR := build
|
|
TARGET := app
|
|
|
|
SRCS := $(wildcard $(SRC_DIR)/*.cpp)
|
|
OBJS := $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRCS))
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(CXX) $(OBJS) $(LDFLAGS) -o $@
|
|
|
|
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BUILD_DIR)
|
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
.PHONY: clean run format
|
|
|
|
run: $(TARGET)
|
|
./$(TARGET)
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR) $(TARGET)
|
|
|
|
format:
|
|
clang-format -i $(SRCS)
|