MAKEFLAGS += -j CXX := c++ LD := $(CXX) CXXFLAGS := -g -O0 -Wall -Wextra -Werror -std=c++98 -MMD OBJ := $(patsubst src/%.cpp,build/%.o,$(wildcard src/*.cpp)) DEP := $(patsubst %.o,%.d,$(OBJ)) NAME := ircserv all: $(NAME) $(NAME): $(OBJ) @printf 'LD %s\n' "$@" @$(LD) -o $(NAME) $(OBJ) build/%.o: src/%.cpp @printf 'CXX %s\n' "$@" @mkdir -p $(@D) @$(CXX) $(CXXFLAGS) -c -o $@ $< clean: @printf 'RM build\n' @rm -rf build/ fclean: @printf 'RM build %s\n' "$(NAME)" @rm -rf build/ $(NAME) re: @make --no-print-directory fclean @make --no-print-directory all run: $(NAME) clear @./$(NAME) 6969 michel gdb: $(NAME) clear @gdb --args ./$(NAME) 6969 michel .PHONY: all clean fclean re run gdb -include $(DEP)