55 lines
1.7 KiB
Makefile
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
|