diff --git a/Makefile b/Makefile index 292c628..6b6b99a 100644 --- a/Makefile +++ b/Makefile @@ -6,69 +6,160 @@ # By: rparodi +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2023/11/12 11:05:05 by rparodi #+# #+# # -# Updated: 2023/12/27 18:32:57 by raphael ### ########.fr # +# Updated: 2024/10/31 12:39:34 by rparodi ### ########.fr # # # # **************************************************************************** # -NAME=libft.a -CC=clang -CFLAGS=-Wall -Wextra -Werror -g2 -RM=rm -f -LDFLAGS=-L. -LDLIBS=-lft -SRC = ft_atoi.c ft_bzero.c ft_isalnum.c ft_isalpha.c ft_isascii.c ft_isdigit.c ft_isprint.c ft_memchr.c ft_memcmp.c ft_memcpy.c ft_memmove.c ft_memset.c ft_strchr.c ft_strlcat.c ft_strlcpy.c ft_strlen.c ft_strncmp.c ft_strnstr.c ft_strrchr.c ft_tolower.c ft_toupper.c ft_calloc.c ft_strdup.c ft_substr.c ft_strjoin.c ft_strtrim.c ft_split.c ft_itoa.c ft_strmapi.c ft_striteri.c ft_putchar_fd.c ft_putstr_fd.c ft_putendl_fd.c ft_putnbr_fd.c -SRCBonus = ft_lstnew.c ft_lstadd_front.c ft_lstsize.c ft_lstlast.c ft_lstadd_back.c ft_lstdelone.c ft_lstclear.c ft_lstiter.c ft_lstmap.c -OBJ = $(SRC:.c=.o) -OBJBonus = $(SRCBonus:.c=.o) +# Variables +# Name +NAME=libft.a + +# Commands +CC = cc +RM = rm -rf + +# Flags +CFLAGS = -Werror -Wextra -Wall +CFLAGS += -g3 -MMD +# CFLAGS += -lm + +# CFLAGS += -fsanitize=address +# CFLAGS += -fsanitize=thread + +LDFLAGS = -L. +LDLIBS = -lft + +INCLUDES = ./includes/ + +SRC = char/ft_isdigit.c \ + char/ft_isascii.c \ + char/ft_isprint.c \ + char/ft_toupper.c \ + char/ft_isalpha.c \ + char/ft_isalnum.c \ + char/ft_tolower.c \ + memory/ft_memcmp.c \ + memory/ft_bzero.c \ + memory/ft_memcpy.c \ + memory/ft_memchr.c \ + memory/ft_memset.c \ + memory/ft_memmove.c \ + memory/ft_calloc.c \ + print/ft_putstr_fd.c \ + print/ft_putnbr_fd.c \ + print/ft_putendl_fd.c \ + print/ft_putchar_fd.c \ + list/ft_lstadd_back.c \ + list/ft_lstnew.c \ + list/ft_lstlast.c \ + list/ft_lstclear.c \ + list/ft_lstiter.c \ + list/ft_lstmap.c \ + list/ft_lstsize.c \ + list/ft_lstadd_front.c \ + list/ft_lstdelone.c \ + str/ft_strnstr.c \ + str/ft_strlcpy.c \ + str/ft_strlen.c \ + str/ft_strchr.c \ + str/ft_striteri.c \ + str/ft_strjoin.c \ + str/ft_split.c \ + str/ft_strrchr.c \ + str/ft_substr.c \ + str/ft_strncmp.c \ + str/ft_strmapi.c \ + str/ft_strtrim.c \ + str/ft_strlcat.c \ + str/ft_strdup.c \ + convert/ft_atoi.c \ + convert/ft_itoa.c + +# Objects +OBJDIRNAME = ./objects +OBJ = $(addprefix $(OBJDIRNAME)/,$(SRC:.c=.o)) + +# Colors GREEN = \033[32m GREY = \033[0;90m RED = \033[0;31m GOLD = \033[38;5;220m END = \033[0m -all: header $(NAME) - @printf '\n$(GREY) Compilation$(END)$(GREEN) Done$(END)\n' +# Rules +# All (make all) +all: header $(NAME) footer + +# Bonus (make bonus) +bonus: header $(OBJ) $(LIB_OBJ) footer + @mkdir -p $(OBJDIRNAME) + @mkdir -p $(OBJDIRNAME)/$(SRCDIRNAME) + @printf '$(GREY) Creating $(END)$(GREEN)$(OBJDIRNAME)$(END)\n' + @printf '$(GREY) Be Carefull ur in $(END)$(GREEN)Debug Mode$(END)\n' + @cc $(CFLAGS) -D BONUS=1 -o $(NAME) $(OBJ) $(LIB_OBJ) + +# Clean (make clean) +clean: + @printf '$(GREY) Removing $(END)$(RED)Objects$(END)\n' + @printf '$(GREY) Removing $(END)$(RED)Objects Folder$(END)\n' + @$(RM) $(OBJDIRNAME) + +# Clean (make fclean) +fclean: clean + @printf '$(GREY) Removing $(END)$(RED)Program$(END)\n' + @$(RM) $(NAME) + @echo "" + +# Restart (make re) +re: header fclean all + +# Dependences for all +$(NAME): $(OBJ) + @mkdir -p $(OBJDIRNAME) + @printf '$(GREY) Creating $(END)$(GREEN)$(OBJDIRNAME)$(END)\n' + @ar rc $(NAME) $(OBJ) + @ranlib $(NAME) + +# Creating the objects +$(OBJDIRNAME)/%.o: %.c + @mkdir -p $(dir $@) + @printf '$(GREY) Compiling $(END)$(GREEN)$<$(END)\n' + @cc $(CFLAGS) -o $@ -c $< -I$(INCLUDES) + +# Header header: @clear - @printf '\n$(GOLD) ******* ***** ******* $(END)\n' + @printf '\n\n' + @printf '$(GOLD) ******* ****** ******* $(END)\n' @printf '$(GOLD) ****** *** ******* $(END)\n' - @printf '$(GOLD) ******* ******* $(END)\n' - @printf '$(GOLD) ****** ******* $(END)\n' - @printf '$(GOLD) ******* ******* $(END)\n' - @printf '$(GOLD) ******************** ******* * $(END)\n' - @printf '$(GOLD) ******************** ******* *** $(END)\n' - @printf '$(GOLD) ******* ******* ****** $(END)\n' - @printf '$(GOLD) ******* $(END)\n' - @printf '$(GOLD) ******* $(END)\n\n' - @printf '$(GREY) Made by rparodi$(END)\n\n\n' + @printf '$(GOLD) ******* * ******* $(END)\n' + @printf '$(GOLD) ****** ******* $(END)\n' + @printf '$(GOLD) ******* ******* $(END)\n' + @printf '$(GOLD) ******************* ******* * $(END)\n' + @printf '$(GOLD) ******************* ******* *** $(END)\n' + @printf '$(GOLD) ****** ******* ****** $(END)\n' + @printf '$(GOLD) ****** $(END)\n' + @printf '$(GOLD) ****** $(END)\n' + @printf '$(GREY) Made by rparodi$(END)\n\n' -$(NAME): $(OBJ) $(OBJBonus) - @printf '$(GREY) Compiling $(END)$(GOLD)$(NAME)$(END)\n' - @ar rc $(NAME) $(OBJ) $(OBJBonus) - @ranlib $(NAME) +# Footer +footer: + @printf "\n" + @printf "$(GOLD) ,_ _,$(END)\n" + @printf "$(GOLD) | \\___//|$(END)\n" + @printf "$(GOLD) |=6 6=|$(END)\n" + @printf "$(GOLD) \\=._Y_.=/$(END)\n" + @printf "$(GOLD) ) \` ( ,$(END)\n" + @printf "$(GOLD) / \\ (('$(END)\n" + @printf "$(GOLD) | | ))$(END)\n" + @printf "$(GOLD) /| | | |\\_//$(END)\n" + @printf "$(GOLD) \\| |._.| |/-\`$(END)\n" + @printf "$(GOLD) '\"' '\"'$(END)\n" + @printf ' $(GREY)The compilation is$(END) $(GOLD)finish$(END)\n $(GREY)Have a good $(END)$(GOLD)correction !$(END)\n' -%.o: %.c - @printf '$(GREY) Compiling $(END)$(GREEN)$<$(END)\n' - @$(CC) -I. -o $@ -c $? $(CFLAGS) +# Phony +.PHONY: all bonus clean fclean re -bonus: $(OBJ) $(OBJBonus) - @printf '$(GREY) Compiling $(END)$(GOLD)$(NAME)$(END)\n' - @ar rc $(NAME) $(OBJ) $(OBJBonus) - @ranlib $(NAME) - - -dev: all bonus clean - -clean: - @printf '$(GREY) Removing $(END)$(RED)Object$(END)\n' - @$(RM) $(OBJ) $(OBJBonus) - -fclean: clean - @printf '$(GREY) Removing $(END)$(RED)Program$(END)\n' - @$(RM) $(NAME) - -re: fclean all - -.PHONY: all clean bonus fclean re dev header +-include ${OBJ:.o=.d} diff --git a/ft_isalnum.c b/char/ft_isalnum.c similarity index 100% rename from ft_isalnum.c rename to char/ft_isalnum.c diff --git a/ft_isalpha.c b/char/ft_isalpha.c similarity index 100% rename from ft_isalpha.c rename to char/ft_isalpha.c diff --git a/ft_isascii.c b/char/ft_isascii.c similarity index 100% rename from ft_isascii.c rename to char/ft_isascii.c diff --git a/ft_isdigit.c b/char/ft_isdigit.c similarity index 100% rename from ft_isdigit.c rename to char/ft_isdigit.c diff --git a/ft_isprint.c b/char/ft_isprint.c similarity index 100% rename from ft_isprint.c rename to char/ft_isprint.c diff --git a/ft_tolower.c b/char/ft_tolower.c similarity index 100% rename from ft_tolower.c rename to char/ft_tolower.c diff --git a/ft_toupper.c b/char/ft_toupper.c similarity index 100% rename from ft_toupper.c rename to char/ft_toupper.c diff --git a/ft_atoi.c b/convert/ft_atoi.c similarity index 100% rename from ft_atoi.c rename to convert/ft_atoi.c diff --git a/ft_itoa.c b/convert/ft_itoa.c similarity index 100% rename from ft_itoa.c rename to convert/ft_itoa.c diff --git a/libft.h b/includes/libft.h similarity index 100% rename from libft.h rename to includes/libft.h diff --git a/ft_lstadd_back.c b/list/ft_lstadd_back.c similarity index 100% rename from ft_lstadd_back.c rename to list/ft_lstadd_back.c diff --git a/ft_lstadd_front.c b/list/ft_lstadd_front.c similarity index 100% rename from ft_lstadd_front.c rename to list/ft_lstadd_front.c diff --git a/ft_lstclear.c b/list/ft_lstclear.c similarity index 100% rename from ft_lstclear.c rename to list/ft_lstclear.c diff --git a/ft_lstdelone.c b/list/ft_lstdelone.c similarity index 100% rename from ft_lstdelone.c rename to list/ft_lstdelone.c diff --git a/ft_lstiter.c b/list/ft_lstiter.c similarity index 100% rename from ft_lstiter.c rename to list/ft_lstiter.c diff --git a/ft_lstlast.c b/list/ft_lstlast.c similarity index 100% rename from ft_lstlast.c rename to list/ft_lstlast.c diff --git a/ft_lstmap.c b/list/ft_lstmap.c similarity index 100% rename from ft_lstmap.c rename to list/ft_lstmap.c diff --git a/ft_lstnew.c b/list/ft_lstnew.c similarity index 100% rename from ft_lstnew.c rename to list/ft_lstnew.c diff --git a/ft_lstsize.c b/list/ft_lstsize.c similarity index 100% rename from ft_lstsize.c rename to list/ft_lstsize.c diff --git a/ft_bzero.c b/memory/ft_bzero.c similarity index 100% rename from ft_bzero.c rename to memory/ft_bzero.c diff --git a/ft_calloc.c b/memory/ft_calloc.c similarity index 100% rename from ft_calloc.c rename to memory/ft_calloc.c diff --git a/ft_memchr.c b/memory/ft_memchr.c similarity index 100% rename from ft_memchr.c rename to memory/ft_memchr.c diff --git a/ft_memcmp.c b/memory/ft_memcmp.c similarity index 100% rename from ft_memcmp.c rename to memory/ft_memcmp.c diff --git a/ft_memcpy.c b/memory/ft_memcpy.c similarity index 100% rename from ft_memcpy.c rename to memory/ft_memcpy.c diff --git a/ft_memmove.c b/memory/ft_memmove.c similarity index 100% rename from ft_memmove.c rename to memory/ft_memmove.c diff --git a/ft_memset.c b/memory/ft_memset.c similarity index 100% rename from ft_memset.c rename to memory/ft_memset.c diff --git a/ft_putchar_fd.c b/print/ft_putchar_fd.c similarity index 100% rename from ft_putchar_fd.c rename to print/ft_putchar_fd.c diff --git a/ft_putendl_fd.c b/print/ft_putendl_fd.c similarity index 100% rename from ft_putendl_fd.c rename to print/ft_putendl_fd.c diff --git a/ft_putnbr_fd.c b/print/ft_putnbr_fd.c similarity index 100% rename from ft_putnbr_fd.c rename to print/ft_putnbr_fd.c diff --git a/ft_putstr_fd.c b/print/ft_putstr_fd.c similarity index 100% rename from ft_putstr_fd.c rename to print/ft_putstr_fd.c diff --git a/ft_split.c b/str/ft_split.c similarity index 100% rename from ft_split.c rename to str/ft_split.c diff --git a/ft_strchr.c b/str/ft_strchr.c similarity index 100% rename from ft_strchr.c rename to str/ft_strchr.c diff --git a/ft_strdup.c b/str/ft_strdup.c similarity index 100% rename from ft_strdup.c rename to str/ft_strdup.c diff --git a/ft_striteri.c b/str/ft_striteri.c similarity index 100% rename from ft_striteri.c rename to str/ft_striteri.c diff --git a/ft_strjoin.c b/str/ft_strjoin.c similarity index 100% rename from ft_strjoin.c rename to str/ft_strjoin.c diff --git a/ft_strlcat.c b/str/ft_strlcat.c similarity index 100% rename from ft_strlcat.c rename to str/ft_strlcat.c diff --git a/ft_strlcpy.c b/str/ft_strlcpy.c similarity index 100% rename from ft_strlcpy.c rename to str/ft_strlcpy.c diff --git a/ft_strlen.c b/str/ft_strlen.c similarity index 100% rename from ft_strlen.c rename to str/ft_strlen.c diff --git a/ft_strmapi.c b/str/ft_strmapi.c similarity index 100% rename from ft_strmapi.c rename to str/ft_strmapi.c diff --git a/ft_strncmp.c b/str/ft_strncmp.c similarity index 100% rename from ft_strncmp.c rename to str/ft_strncmp.c diff --git a/ft_strnstr.c b/str/ft_strnstr.c similarity index 100% rename from ft_strnstr.c rename to str/ft_strnstr.c diff --git a/ft_strrchr.c b/str/ft_strrchr.c similarity index 100% rename from ft_strrchr.c rename to str/ft_strrchr.c diff --git a/ft_strtrim.c b/str/ft_strtrim.c similarity index 100% rename from ft_strtrim.c rename to str/ft_strtrim.c diff --git a/ft_substr.c b/str/ft_substr.c similarity index 100% rename from ft_substr.c rename to str/ft_substr.c diff --git a/subject_english.pdf b/subject_english.pdf deleted file mode 100644 index e73d651..0000000 Binary files a/subject_english.pdf and /dev/null differ