# **************************************************************************** # # # # :::::::: # # common.mk :+: :+: # # +:+ # # By: whaffman +#+ # # +#+ # # Created: 2025/03/21 15:00:16 by whaffman #+# #+# # # Updated: 2025/03/21 15:04:44 by whaffman ######## odam.nl # # # # **************************************************************************** # INC = -I./inc VPATH = src SRC = $(notdir $(wildcard src/*.cpp)) OBJ = $(SRC:.cpp=.o) CC = c++ CFLAGS = -Wall -Wextra -Werror -std=c++11 FORMATTER = clang-format FORMAT_FILES = $(wildcard src/*.[ch] src/*.[ch]pp inc/*.[ch] inc/*.[ch]pp) all: $(NAME) run: all ./$(NAME) $(NAME): $(OBJ) $(CC) $(CFLAGS) $(OBJ) -o $(NAME) %.o: %.cpp $(CC) $(CFLAGS) $(INC) -c $< -o $@ clean: rm -f $(OBJ) fclean: clean rm -f $(NAME) re: fclean all format: @if command -v $(FORMATTER) >/dev/null 2>&1; then \ if [ -n "$(FORMAT_FILES)" ]; then \ $(FORMATTER) -i --style=file $(FORMAT_FILES); \ printf "Formatted %s\n" "$(NAME)"; \ else \ printf "No files to format in %s\n" "$(NAME)"; \ fi; \ else \ printf "clang-format not found. Please install clang-format.\n"; \ exit 1; \ fi .PHONY: all clean fclean re run format