CPP05/common.mk
2026-03-27 18:31:28 +01:00

55 lines
1.7 KiB
Makefile

# **************************************************************************** #
# #
# :::::::: #
# common.mk :+: :+: #
# +:+ #
# By: whaffman <whaffman@student.codam.nl> +#+ #
# +#+ #
# 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