」 feat(Makefile): made the makefile cute :3 (and use cc cuz gcc is way faster than clang, GNU supremacy)

This commit is contained in:
yosyo
2024-06-03 15:49:39 +02:00
parent 06f2480711
commit 0e572cd344
2 changed files with 28 additions and 19 deletions

View File

@ -6,13 +6,15 @@
# By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ # # By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2024/04/24 10:49:52 by adjoly #+# #+# # # Created: 2024/04/24 10:49:52 by adjoly #+# #+# #
# Updated: 2024/05/21 20:56:16 by adjoly ### ########.fr # # Updated: 2024/06/03 15:44:04 by mmoussou ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
SHELL = bash
NAME = minishell NAME = minishell
CC = clang CC = cc
OBJSDIR = obj/ OBJSDIR = obj/
@ -28,29 +30,36 @@ OBJS = $(addprefix $(OBJSDIR), $(SRC:.c=.o))
FLAGS = -Werror -Wall -Wextra -g FLAGS = -Werror -Wall -Wextra -g
LIB = libft/libft.a \ LIB = libft/libft.a
$(NAME): $(OBJS) # --------------------------------
@make -sj$(nproc) -C libft
all: $(NAME)
$(LIB):
@make -sj$(nproc) -C $(LIBFT_DIR)
$(NAME): $(LIB) $(OBJS)
@printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m objects compiled."
@printf "\n \x1B[1;33m[  ]\x1B[0m compiling $(NAME)..."
@$(CC) $(FLAGS) $(OBJS) $(LIB) -o $(NAME) -lreadline @$(CC) $(FLAGS) $(OBJS) $(LIB) -o $(NAME) -lreadline
@echo "[✔] Compiled" @printf "\x1B[2K\r \x1B[1;33m[  ]\x1B[0m $(NAME) compiled.\n"
$(OBJSDIR)%.o: %.c $(OBJSDIR)%.o: %.c
@mkdir -p $(@D) @mkdir -p $(@D)
@$(CC) $(INCLUDE) $(FLAGS) $< -c -o $@ @$(CC) $(INCLUDE) $(FLAGS) $< -c -o $@
@echo "[✔] $< compiled" @printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m compiling objects... : $<"
all: $(NAME)
clean: clean:
@make -s -C libft clean @make -s -C libft clean
@rm -f $(OBJS) @rm -f $(OBJS)
@printf " \x1B[1;31m[  ]\x1B[0m deleted $(NAME).\n"
fclean: clean fclean: clean
@make -s -C libft fclean @make -s -C libft fclean
@rm -f $(NAME) @rm -f $(NAME)
@rm -Rf $(OBJSDIR) @rm -Rf $(OBJSDIR)
@echo "[X] Cleaned" @printf " \x1B[1;31m[  ]\x1B[0m deleted objects.\n"
re: fclean all re: fclean all

View File

@ -6,13 +6,13 @@
# By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ # # By: mmoussou <mmoussou@student.42angouleme.fr +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2024/01/22 07:21:18 by mmoussou #+# #+# # # Created: 2024/01/22 07:21:18 by mmoussou #+# #+# #
# Updated: 2024/05/25 14:22:48 by adjoly ### ########.fr # # Updated: 2024/06/03 15:42:56 by mmoussou ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
SHELL = bash SHELL = bash
CC = clang CC = cc
CFLAGS = -Wall -Werror -Wextra -pipe -fPIE CFLAGS = -Wall -Werror -Wextra -pipe -fPIE
@ -94,23 +94,23 @@ OBJS = $(SRCS:.c=.o)
all: $(NAME) all: $(NAME)
%.o: %.c %.o: %.c
@printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m Compiling Libft Objects... : $<" @printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m compiling libft objects... : $<"
@$(CC) $(CFLAGS) -I$(INCLUDE) $< -c -o $@ @$(CC) $(CFLAGS) -I$(INCLUDE) $< -c -o $@
$(NAME): $(OBJS) $(NAME): $(OBJS)
@printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m Libft Objects Compiled." @printf "\x1B[2K\r \x1B[1;32m[ 󱌣 ]\x1B[0m libft objects compiled."
@printf "\n \x1B[1;33m[ 󱉟 ]\x1B[0m Creating Libft Archive..." @printf "\n \x1B[1;33m[ 󱉟 ]\x1B[0m creating libft archive..."
@ar rcs $(NAME) $(OBJS) @ar rcs $(NAME) $(OBJS)
@printf "\x1B[2K\r \x1B[1;33m[ 󱉟 ]\x1B[0m Libft Archive Created.\n" @printf "\x1B[2K\r \x1B[1;33m[ 󱉟 ]\x1B[0m libft archive created.\n"
clean: clean:
@rm -f $(OBJS) @rm -f $(OBJS)
@printf " \x1B[1;31m[  ]\x1B[0m Deleted Libft Objects.\n" @printf " \x1B[1;31m[  ]\x1B[0m deleted libft objects.\n"
fclean: clean fclean: clean
@rm -f $(NAME) @rm -f $(NAME)
@printf " \x1B[1;31m[  ]\x1B[0m Deleted Libft Archive.\n" @printf " \x1B[1;31m[  ]\x1B[0m deleted libft archive.\n"
re: fclean all re: fclean all
.PHONY: all server client clean fclean re .PHONY: all clean fclean re