2024-03-18 11:25:15 +01:00
|
|
|
CXX = g++
|
|
|
|
CXXFLAGS = -std=c++20 -O3 -Wall -Wextra -Wpedantic
|
|
|
|
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system
|
|
|
|
|
|
|
|
NAME = osu++
|
|
|
|
|
2024-04-24 19:30:34 +02:00
|
|
|
INCLUDE = include
|
|
|
|
CXXFLAGS += -I$(INCLUDE)
|
|
|
|
|
2024-03-18 11:25:15 +01:00
|
|
|
SRC = src
|
|
|
|
BIN = target
|
2024-04-24 19:30:34 +02:00
|
|
|
PREPROCESSED = preprocessed
|
2024-03-18 11:25:15 +01:00
|
|
|
|
|
|
|
_PROG = HitObjectDrawable.cpp main.cpp osuparser.cpp TextureManager.cpp
|
|
|
|
PROG = $(addprefix $(SRC)/, $(_PROG))
|
|
|
|
|
|
|
|
OBJ = $(_PROG:.cpp=.o)
|
|
|
|
|
|
|
|
.PHONY: all clean
|
|
|
|
|
|
|
|
all: dirs $(NAME)
|
|
|
|
|
|
|
|
dirs:
|
|
|
|
mkdir -p $(BIN)
|
2024-04-24 19:30:34 +02:00
|
|
|
mkdir -p $(PREPROCESSED)
|
2024-03-18 11:25:15 +01:00
|
|
|
|
|
|
|
$(NAME): $(OBJ)
|
|
|
|
$(CXX) $(addprefix $(BIN)/, $^) $(LDFLAGS) -o $(BIN)/$@
|
|
|
|
|
2024-04-24 19:53:08 +02:00
|
|
|
%.o: $(SRC)/%.cpp
|
2024-03-18 11:25:15 +01:00
|
|
|
$(CXX) -c $< $(CXXFLAGS) -o $(BIN)/$@
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf $(addprefix $(BIN)/, $(OBJ))
|
|
|
|
rm -rf $(BIN)/$(NAME)
|
2024-04-24 19:30:34 +02:00
|
|
|
rm -rf $(BIN)
|
|
|
|
rm -rf $(PREPROCESSED)
|
|
|
|
|
2024-04-24 20:03:18 +02:00
|
|
|
_PP_HXX = osuparser.hpp config.hpp
|
|
|
|
_PP_CXX = osuparser.cpp
|
|
|
|
_PP = $(_PP_HXX) $(_PP_CXX)
|
|
|
|
PP = $(addprefix $(PREPROCESSED)/, $(_PP))
|
|
|
|
|
2024-04-25 11:49:09 +02:00
|
|
|
# PP_DEBUG gets rid of all the macros we don't need
|
|
|
|
# when debugging the preprocessed output
|
2024-04-24 20:14:35 +02:00
|
|
|
pp: dirs $(PP)
|
2024-04-24 20:03:18 +02:00
|
|
|
|
|
|
|
$(PREPROCESSED)/%.hpp: $(INCLUDE)/%.hpp
|
2024-04-25 11:49:09 +02:00
|
|
|
$(CXX) -DPP_DEBUG $(CXXFLAGS) -E $< > $@
|
2024-04-24 20:09:04 +02:00
|
|
|
clang-format -i $@
|
2024-04-24 20:03:18 +02:00
|
|
|
|
|
|
|
$(PREPROCESSED)/%.cpp: $(SRC)/%.cpp
|
2024-04-25 11:49:09 +02:00
|
|
|
$(CXX) -DPP_DEBUG $(CXXFLAGS) -E $< > $@
|
2024-04-24 20:09:04 +02:00
|
|
|
clang-format -i $@
|