-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
59 lines (43 loc) · 1.21 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
NAME = ft_ls
CC = gcc
FLAG = -Wall -Wextra -Werror -g3
DIRLIB = ./Libft/
FILELIB = libft.a
NAMELFT = $(addprefix $(DIRLIB), $(FILELIB))
SRC_DIR = src/
OBJ_DIR = obj/
#Source
FILES = main list_utils utils print_time print_size print_owner_group \
print_permission_link get_dir_files ft_ls print_filename \
print_total print_location parser quick_sort sort_list
SRCS = $(addprefix $(SRC_DIR), $(addsuffix .c, $(FILES)))
OBJS = $(addprefix $(OBJ_DIR), $(addsuffix .o, $(FILES)))
INCLUDE = -I ./include -I ./Libft
HNAME = ft_ls
HEADER = $(addsuffix .h, $(HNAME))
OBJF = .cache_exits
$(OBJF) :
@mkdir -p $(OBJ_DIR)
vpath %.c $(SRC_DIR) $(SRC_DIR)print
vpath %.h include/
all : $(NAME)
$(NAME) : $(OBJS)
make -C $(DIRLIB)
$(CC) $(FLAG) $(OBJS) $(NAMELFT) $(INCLUDE) -o $(NAME)
@echo "$(GREEN)Compiled!$(DEF_COLOR)"
@echo "Launch the program with $(RED)./${NAME} $(DEF_COLOR)"
$(OBJ_DIR)%.o : %.c $(HEADER) Makefile | $(OBJF)
$(CC) $(FLAG) $(INCLUDE) -c $< -o $@
clean :
@ make clean -sC $(DIRLIB)
@rm -rf $(OBJ_DIR)
@rm -rf $(OBJF)
fclean : clean
@ make fclean -sC $(DIRLIB)
@rm -rf $(NAME)
re : fclean all
.PHONY : all clean fclean re
# Color
DEF_COLOR = \033[0;39m
RED = \033[0;91m
GREEN = \033[0;92m