fractol/Makefile
2023-12-12 17:47:59 +01:00

117 lines
3.7 KiB
Makefile
Executable File

# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: fgras-ca <marvin@42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/09/08 15:58:04 by fgras-ca #+# #+# #
# Updated: 2023/09/09 18:35:45 by ladebeze ### ########.fr #
# #
# **************************************************************************** #
LOGO = @echo " __, ____, ____, ____, ____ ____, ___, ____,";\
echo "(-| (-/_| (-| \ (-|_, (-|__) (-|_, (- / (-|_,";\
echo " _|__, _/ |, _|__/ _|__, _|__) _|__, _/__, _|__,";\
echo "( ( ( ( ( ( ( ("
DEF_COLOR = \033[0m
GRAY = \033[0;90m
RED = \033[0;91m
GREEN = \033[0;92m
YELLOW = \033[0;93m
BLUE = \033[0;94m
MAGENTA = \033[0;95m
CYAN = \033[0;96m
WHITE = \033[0;97m
ORANGE = \033[38;5;214m
NAME = fractol
NAME_BONUS = fractol_b
LIBFT = libft.a
MINILIB = libmlx.a
SRC = fractol.c \
check_arguments.c \
fractol_utils.c \
hook.c \
julia.c \
mandelbrot.c \
color.c \
SRC_BONUS = fractol_bonus.c \
check_arguments_bonus.c \
fractol_utils_bonus.c \
hook_bonus.c \
julia_bonus.c \
mandelbrot_bonus.c \
burning_bonus.c \
color_bonus.c \
SRC_DIR_LIBFT = libft/
SRC_DIR_MINILIB = minilibx-linux/
SRC_LIBFT = $(addprefix $(SRC_DIR_LIBFT), $(LIBFT))
SRC_MINILIB = $(addprefix $(SRC_DIR_MINILIB), $(MINILIB))
OBJS = ${SRC:.c=.o}
OBJSB = ${SRC_BONUS:.c=.o}
CC = cc
CFLAGS = -Wall -Wextra -Werror
MLX = -lX11 -lXext -lXrandr -lm
RM = rm -f
all : $(NAME)
$(NAME) : $(OBJS)
@echo "$(RED)Loading minilibX... $(DEF_COLOR)"
@make -C minilibx-linux
@echo "$(GREEN)minilibX...Done. $(DEF_COLOR)"
@echo "$(RED)Loading Libft... $(DEF_COLOR)"
@make -C libft
@echo "$(GREEN)Libft...Done. $(DEF_COLOR)"
@echo "$(RED)Compilation fractol... $(DEF_COLOR)"
$(CC) $(CFLAGS) $(OBJS) $(SRC_MINILIB) $(SRC_LIBFT) $(MLX) -o $(NAME)
@echo "$(GREEN)Compilation complete. $(ORANGE)Type "./fractol" for the menu!!$(DEF_COLOR)"
$(LOGO)
bonus : $(NAME_BONUS)
$(NAME_BONUS) : $(OBJSB)
@echo "$(RED)Loading minilibX... $(DEF_COLOR)"
@make -C minilibx-linux
@echo "$(GREEN)minilibX...Done. $(DEF_COLOR)"
@echo "$(RED)Loading Libft... $(DEF_COLOR)"
@make -C libft
@echo "$(GREEN)Libft...Done. $(DEF_COLOR)"
@echo "$(RED)Compilation fractol with bonus... $(DEF_COLOR)"
$(CC) $(CFLAGS) $(OBJSB) $(SRC_MINILIB) $(SRC_LIBFT) $(MLX) -o $(NAME_BONUS)
@echo "$(GREEN)Compilation complete. $(ORANGE)Type "./fractol_b" for the menu!!$(DEF_COLOR)"
$(LOGO)
clean :
@echo "$(RED)Cleaning Libft... $(DEF_COLOR)"
@make -C libft clean
@echo "$(GREEN)Libft cleaned!! $(DEF_COLOR)"
@echo "$(RED)Cleaning MinilibX... $(DEF_COLOR)"
@make -C minilibx-linux clean
@echo "$(GREEN)MinilibX cleaned!! $(DEF_COLOR)"
@echo "$(RED)Deleating files objects... $(DEF_COLOR)"
$(RM) $(OBJS) $(OBJSB)
@echo "$(GREEN)files deleted!! $(DEF_COLOR)"
$(LOGO)
fclean : clean
@echo "$(RED)fclean Libft... $(DEF_COLOR)"
@make -C ./libft fclean
@echo "$(GREEN)Libft cleaned!! $(DEF_COLOR)"
@echo "$(RED)Delete program name... $(DEF_COLOR)"
$(RM) $(NAME) $(NAME_BONUS)
@echo "$(GREEN)File program deleted!! $(DEF_COLOR)"
$(LOGO)
re : fclean all
rebonus : fclean bonus
.PHONY : all bonus clean fclean re rebonus