# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: lfirmin lfirmim@student.42.fr> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/08/12 07:07:31 by lfirmin #+# #+# # # Updated: 2024/08/12 09:15:05 by lfirmin ### ########.fr # # # # **************************************************************************** # NAME = philo SRC_FILES = main.c parsing.c utils.c utils_2.c routine.c threads.c routine_utils.c init.c death.c routine_utils_2.c INCLUDES_FILES = include/philo.h SRC_DIR = srcs/ SRC = $(addprefix $(SRC_DIR), $(SRC_FILES)) OBJ_DIR = obj/ OBJ = $(addprefix $(OBJ_DIR), $(SRC_FILES:.c=.o)) CC = cc CFLAGS = -Wall -Werror -Wextra -g3 -pthread INCLUDE = -I include RM = rm -rf MKDIR = mkdir -p GREEN = \033[0;32m YELLOW = \033[0;33m CYAN = \033[0;36m RESET = \033[0m BOLD = \033[1m WHITE = \033[0;97m LOADING_CHARS = ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏ define PHILO_ART |||| _____ _ _ _ |||| |||| | __ \| | (_) | |||| \__/ | |__) | |__ _| | ___ \__/ || | ___/| '_ \| | |/ _ \ || || | | | | | | | | (_) | || || |_| |_| |_|_|_|\___/ || "" "" endef export PHILO_ART all: print_art $(NAME) print_art: @printf "$(YELLOW)%s$(RESET)\n" "$$PHILO_ART" $(NAME): $(OBJ) $(INCLUDES_FILES) @printf "$(BOLD)$(WHITE)Welcome to the $(GREEN)Philosophers$(WHITE) compilation process.\nPlease hold on as we prepare your program.\n\n$(RESET)" @printf "$(YELLOW)Compiling Philosophers, Please wait...$(RESET)" @for char in $(LOADING_CHARS); do \ printf "\r$(YELLOW)Compiling Philosophers, Please wait... $$char$(RESET)"; \ sleep 0.1; \ done @$(CC) $(CFLAGS) $(OBJ) $(INCLUDE) -o $(NAME) @printf "\r$(GREEN)Nice ! $(WHITE)Philosophers compiled successfully ! $(RESET)\n\n" @printf "$(BOLD)$(WHITE)Compilation complete !\n$(GREEN)Philosophers$(WHITE) is ready to use !\n" $(OBJ_DIR)%.o: $(SRC_DIR)%.c @$(MKDIR) $(OBJ_DIR) @$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ clean: @$(RM) $(OBJ_DIR) @printf "$(WHITE)Clean process completed for $(GREEN)Philosophers.$(RESET)\n" fclean: clean @$(RM) $(NAME) @$(RM) $(PRINTF) @$(RM) $(LIBFT) @printf "$(WHITE)Full clean process completed for $(GREEN)Philosophers.$(RESET)\n" re: fclean all .PHONY: all clean fclean re print_art norminette norminette: norminette srcs/* include/* | grep "Error"