-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
96 lines (75 loc) · 3.71 KB
/
Makefile
File metadata and controls
96 lines (75 loc) · 3.71 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: padam <padam@student.42heilbronn.com> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/10/09 15:34:56 by padam #+# #+# #
# Updated: 2024/08/30 03:46:31 by padam ### ########.fr #
# #
# **************************************************************************** #
NAME = ft_ls
CC = cc
CFLAGS = $(INCLUDES) -Wall -Wextra -Werror -g
INCLUDES = -I./includes
LIBS = -lreadline
LIBFT_DIR = libft
SRC_PATH = src
OBJ_PATH = obj
OBJ_DIRS = info
SRCS_MAIN = main.c parser.c print.c list.c utils.c sort.c free.c
SRCS_INFO = info.c long.c
SRC_NAME = $(SRCS_MAIN) \
$(addprefix info/, $(SRCS_INFO)) \
RED = \033[1;31m
GREEN = \033[1;32m
BLUE = \033[1;34m
YELLOW = \033[1;33m
RESET = \033[0m
OBJ_NAME = $(SRC_NAME:.c=.o)
OBJS = $(addprefix $(OBJ_PATH)/,$(OBJ_NAME))
all: $(NAME)
$(NAME): ascii_art $(LIBFT_DIR)/libft.a $(OBJS)
@$(CC) -o $(NAME) $(CFLAGS) $(LIBS) $(OBJS) $(LIBFT_DIR)/libft.a
@printf "$(GREEN)%-100s\n\n$(RESET)" "$(NAME) compiled"
$(LIBFT_DIR)/libft.a:
@make -C $(LIBFT_DIR)
$(OBJ_PATH) :
@mkdir -p $(OBJ_PATH)
ifneq ($(OBJ_DIRS),)
@mkdir -p $(addprefix $(OBJ_PATH)/,$(OBJ_DIRS))
endif
$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c | $(OBJ_PATH)
@printf "%-100s\r" "$(CC) $(CFLAGS) -o $@"
@$(CC) $(CFLAGS) -o $@ -c $<
init_submodules:
git submodule update --init --recursive
update_submodules:
git submodule update --recursive --remote
clean:
@rm -rf $(OBJ_PATH)
@make -C $(LIBFT_DIR) clean
fclean: clean
@rm -f $(NAME)
@make -C $(LIBFT_DIR) fclean
re: fclean all
ascii_art:
@printf "$(RED) \n\
\n\
.----------------. .----------------. .----------------. .----------------. .----------------. \n\
| .--------------. || .--------------. || .--------------. || .--------------. || .--------------. | \n\
| | _________ | || | _________ | || | | || | _____ | || | _______ | | \n\
| | |_ ___ | | || | | _ _ | | || | | || | |_ _| | || | / ___ | | | \n\
| | | |_ \_| | || | |_/ | | \_| | || | | || | | | | || | | (__ \_| | | \n\
| | | _| | || | | | | || | | || | | | _ | || | '.___\`-. | | \n\
| | _| |_ | || | _| |_ | || | | || | _| |__/ | | || | |\`\____) | | | \n\
| | |_____| | || | |_____| | || | _______ | || | |________| | || | |_______.' | | \n\
| | | || | | || | |_______| | || | | || | | | \n\
| '--------------' || '--------------' || '--------------' || '--------------' || '--------------' | \n\
'----------------' '----------------' '----------------' '----------------' '----------------' \n\
\n\
\n\
$(BLUE)by: padam$(RESET) \n\
\n"
.PHONY: all, $(NAME), $(LIBFT_DIR)/libft.a, $(OBJ_PATH), $(OBJ_PATH), clean, fclean, re