-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
87 lines (69 loc) · 2.13 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
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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: kmira <kmira@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/07/07 18:32:39 by kmira #+# #+# #
# Updated: 2019/08/29 16:40:10 by kmira ### ########.fr #
# #
# **************************************************************************** #
NAME = libftprintf.a
FLAGS = -Wall -Wextra -Werror
INCLUDES = includes
LIBRARY = libft/libft.a
CONVERSION_FILES = \
c_conversion \
d_conversion \
f_conversion \
f_l_conversion \
f_utils \
i_conversion \
o_conversion \
p_conversion \
perc_conversion \
s_conversion \
u_conversion \
x_conversion
MAIN_FILES = \
apply_flags \
args_tools \
conversion_parser \
main \
utils \
SRCS_PATH = $(MAIN_FILES)
SRCS_PATH += $(addprefix conversions/, $(CONVERSION_FILES))
SRCS = $(addprefix srcs/, $(addsuffix .c, $(SRCS_PATH)))
OBJS = $(addsuffix .o, $(MAIN_FILES))
OBJS += $(addsuffix .o, $(CONVERSION_FILES))
GREEN = \033[0;32m
RED = \033[0;31m
RESET = \033[0m
all: $(NAME)
# ar -x $(LIBRARY)
# extracts the o files from an .a file
$(NAME): $(LIBRARY) $(OBJS)
@echo "$(GREEN)Making your printf.a"
@ar -rcs $(NAME) libft/*.o $(OBJS)
@echo "$(GREEN)DONE"
$(LIBRARY):
make -C libft/
$(OBJS):
@gcc $(FLAGS) -I$(INCLUDES) -c $(SRCS)
clean:
@echo "$(RED)Cleaning your .o files"
@make -C libft/ clean
@rm -f $(OBJS)
fclean: clean
@make fclean -C libft/
@echo "$(RED)Removing ft_printf.a"
@rm -f $(NAME)
re: fclean all
quick: clean
@rm -f $(NAME)
make all
@make clean
@clear
test: quick
@gcc -I$(INCLUDES) -o test.out minimain.c $(NAME)