1
+ # **************************************************************************** #
2
+ # #
3
+ # ::: :::::::: #
4
+ # Makefile :+: :+: :+: #
5
+ # +:+ +:+ +:+ #
6
+ # By: llord <llord@student.42.fr> +#+ +:+ +#+ #
7
+ # +#+#+#+#+#+ +#+ #
8
+ # Created: 2021/09/22 12:48:17 by llord #+# #+# #
9
+ # Updated: 2022/04/23 11:28:27 by llord ### ########.fr #
10
+ # #
11
+ # **************************************************************************** #
12
+
13
+ # Standard
14
+
15
+ NAME = libft.a
16
+ # INCLUDES = ../include
17
+ SRCS_DIR = ./
18
+ OBJS_DIR = obj/
19
+ CC = gcc
20
+ CFLAGS = -Wall -Werror -Wextra -I
21
+ RM = rm -f
22
+ AR = ar rc
23
+
24
+ # Colors
25
+
26
+ DEF_COLOR = \033[0;39m
27
+ GRAY = \033[0;90m
28
+ RED = \033[0;91m
29
+ GREEN = \033[0;92m
30
+ YELLOW = \033[0;93m
31
+ BLUE = \033[0;94m
32
+ MAGENTA = \033[0;95m
33
+ CYAN = \033[0;96m
34
+ WHITE = \033[0;97m
35
+
36
+ # Sources
37
+
38
+ FTFD_DIR = ft_fd/
39
+ FTFD = ft_putchar_fd ft_putendl_fd ft_putnbr_fd ft_putstr_fd
40
+
41
+ FTIS_DIR = ft_is/
42
+ FTIS = ft_isalnum ft_isalpha ft_isascii ft_isdigit ft_isprint
43
+
44
+ FTLST_DIR = ft_lst/
45
+ FTLST = ft_lstadd_back ft_lstadd_front ft_lstclear ft_lstdelone \
46
+ ft_lstiter ft_lstlast ft_lstmap ft_lstnew ft_lstsize
47
+
48
+ FTMEM_DIR = ft_mem/
49
+ FTMEM = ft_bzero ft_calloc ft_memchr ft_memcmp ft_memcpy ft_memmove ft_memset
50
+
51
+ FTPUT_DIR = ft_put/
52
+ FTPUT = ft_putbase ft_putnbr ft_putstr
53
+
54
+ FTSTR_DIR = ft_str/
55
+ FTSTR = ft_split ft_strchr ft_strdup ft_striteri ft_strjoin \
56
+ ft_strlcat ft_strlcpy ft_strlen ft_strmapi ft_strncmp \
57
+ ft_strnstr ft_strrchr ft_strtrim ft_substr
58
+
59
+ FTTO_DIR = ft_to/
60
+ FTTO = ft_atoi ft_itoa ft_tolower ft_toupper
61
+
62
+ SRC_FILES+ =$(addprefix $(FTFD_DIR ) ,$(FTFD ) )
63
+ SRC_FILES+ =$(addprefix $(FTIS_DIR ) ,$(FTIS ) )
64
+ SRC_FILES+ =$(addprefix $(FTLST_DIR ) ,$(FTLST ) )
65
+ SRC_FILES+ =$(addprefix $(FTMEM_DIR ) ,$(FTMEM ) )
66
+ SRC_FILES+ =$(addprefix $(FTPUT_DIR ) ,$(FTPUT ) )
67
+ SRC_FILES+ =$(addprefix $(FTSTR_DIR ) ,$(FTSTR ) )
68
+ SRC_FILES+ =$(addprefix $(FTTO_DIR ) ,$(FTTO ) )
69
+
70
+ SRCS = $(addprefix $(SRCS_DIR ) , $(addsuffix .c, $(SRC_FILES ) ) )
71
+ OBJS = $(addprefix $(OBJS_DIR ) , $(addsuffix .o, $(SRC_FILES ) ) )
72
+
73
+ # ##
74
+
75
+ OBJSF = .cache_exists
76
+
77
+ all : $(NAME )
78
+
79
+ $(NAME ) : $(OBJS )
80
+ @$(AR ) $(NAME ) $(OBJS )
81
+ @echo " $( GREEN) Libft compiled!$( DEF_COLOR) "
82
+
83
+ $(OBJS_DIR ) % .o : $(SRCS_DIR ) % .c | $(OBJSF )
84
+ @echo " $( YELLOW) Compiling: $< $( DEF_COLOR) "
85
+ @$(CC ) $(CFLAGS ) $(SRCS_DIR ) -c $< -o $@
86
+ # @$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
87
+
88
+ $(OBJSF ) :
89
+ @mkdir -p $(OBJS_DIR )
90
+ @mkdir -p $(OBJS_DIR )$(FTFD_DIR )
91
+ @mkdir -p $(OBJS_DIR )$(FTIS_DIR )
92
+ @mkdir -p $(OBJS_DIR )$(FTLST_DIR )
93
+ @mkdir -p $(OBJS_DIR )$(FTMEM_DIR )
94
+ @mkdir -p $(OBJS_DIR )$(FTPUT_DIR )
95
+ @mkdir -p $(OBJS_DIR )$(FTSTR_DIR )
96
+ @mkdir -p $(OBJS_DIR )$(FTTO_DIR )
97
+
98
+ clean :
99
+ @$(RM ) -rf $(OBJS_DIR )
100
+ @$(RM ) -f $(OBJSF )
101
+ @echo " $( BLUE) libft objects files cleaned!$( DEF_COLOR) "
102
+
103
+ fclean : clean
104
+ @$(RM ) -f $(NAME )
105
+ @echo " $( CYAN) libft executable files cleaned!$( DEF_COLOR) "
106
+
107
+ re : fclean all
108
+ @echo " $( GREEN) Cleaned and rebuilt everything for libft!$( DEF_COLOR) "
109
+
110
+ norm :
111
+ @norminette $(SRCS ) | grep -v Norme -B1 || true
112
+ # @norminette $(INCLUDES) | grep -v Norme -B1 || true
113
+
114
+
115
+ .PHONY : all clean fclean re norm
0 commit comments