-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
98 lines (64 loc) · 2.17 KB
/
Makefile
File metadata and controls
98 lines (64 loc) · 2.17 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
97
98
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: jperpect <jperpect@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/05/08 14:51:15 by jperpect #+# #+# #
# Updated: 2025/04/01 16:54:28 by jperpct ### ########.fr #
# #
# **************************************************************************** #
FLGS = -Wall -Wextra -Werror
NAME = list.a
AR = ar rcs
Free_DIR = ../ft_free/
Free = $(Free_DIR)ft_free.a
SRCS = list_f.c list_f_2.c list_free.c \
OBJECT = $(SRCS:.c=.o)
CC = cc
RM = rm -f
COUNT_FILE = count.txt
# Verifica se o arquivo existe; se não, cria com valor inicial 0
ifeq ($(wildcard $(COUNT_FILE)),)
$(shell echo 0 > $(COUNT_FILE))
endif
COUNT = $(shell cat $(COUNT_FILE))
.SILENT:
all: git_free $(NAME)
git_free:
@if [! -d "$(Free_DIR)"]; then \
cd .. && git clone git@github.com:joao41-second/libft.git; \
fi
cd ../ft_free/ && make
$(NAME): $(OBJECT)
@$(AR) $@ $(Free) $^
@rm -f $(COUNT_FILE)
bonus: $(OBJECT_B) $(NAME)
@ar rcs $(NAME) $(Free) $^
@rm -f $(COUNT_FILE)
%.o:%.c $(NAME)
@cc -c $(FLGS) -o $@ $<
$(eval COUNT=$(shell echo $$(( $(COUNT) + 1 ))))
# Salva o novo valor de COUNT no arquivo
@$(MAKE) show_progress
@echo $(COUNT) > $(COUNT_FILE)
show_progress:
clear
@PERCENT=$$(($(COUNT) * 100 / $(words $(SRCS)))); \
PROG_LEN=$$(($$PERCENT / 10)); \
echo -n " $(NAME) ["; \
for i in `seq 1 $$PROG_LEN`; do \
echo -n "#"; \
done; \
for i in `seq $$PROG_LEN 10`; do \
echo -n " "; \
done; \
echo "] $$PERCENT%"
clean:
$(RM) $(OBJECT) $(OBJECT_B)
@rm -f $(COUNT_FILE)
fclean: clean
$(RM) $(NAME)
@rm -f $(COUNT_FILE)
re: fclean all