-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (55 loc) · 1.43 KB
/
Makefile
File metadata and controls
72 lines (55 loc) · 1.43 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
# Variables
CC = cc
CFLAGS = -Wall -Wextra -Werror
LEAKS = -fsanitize=address
NAME = libftprintf.a
LIBFT_DIR = libft
LIBFT = $(LIBFT_DIR)/libft.a
TEST = test/test.a
SRCS = $(shell find src -type f -name "*.c")
# SRCS_BONUS = $(shell find src -type f -name "*_bonus.c")
TEST_SRCS = $(shell find test -type f -name "test_all.c")
TEST_SRCS_ONE = $(shell find test -type f -name "assert_*.c")
OBJ_DIR = obj
OBJS = $(SRCS:src/%.c=$(OBJ_DIR)/%.o)
BONUS_OBJS = $(SRCS_BONUS:src/%.c=$(OBJ_DIR)/%.o)
TEST_OBJS = $(TEST_SRCS:%.c=$(OBJ_DIR)/%.o)
TEST_OBJS_ONE = $(TEST_SRCS_ONE:%.c=$(OBJ_DIR)/%.o)
# Rules
all: $(LIBFT) $(NAME)
$(LIBFT):
$(MAKE) -C $(LIBFT_DIR) both
$(NAME): $(LIBFT) $(OBJS)
@cp $(LIBFT) $(NAME)
@ar rcs $(NAME) $(OBJS)
bonus: $(LIBFT) $(OBJS)
@cp $(LIBFT) $(NAME)
@ar rcs $(NAME) $(OBJS)
$(OBJ_DIR)/%.o: src/%.c
@mkdir -p $(dir $@)
@$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJS)
rm -rf $(OBJ_DIR)
rm -f *.o
fclean: clean
rm -f $(NAME)
rm -f *.a
re: fclean all
clear:
clear
test: clear $(NAME)
$(CC) $(CFLAGS) $(LEAKS) $(TEST_SRCS) $(NAME) -o $(TEST)
@./$(TEST)
@rm -f $(TEST)
one: clear $(NAME)
@echo "Test unitario:"
@$(CC) $(CFLAGS) $(LEAKS) $(TEST_SRCS_ONE) $(NAME) -o $(TEST)
@./$(TEST)
@rm -f $(TEST)
debug: clear $(NAME)
$(CC) -g3 $(CFLAGS) $(LEAKS) $(TEST_SRCS_ONE) $(NAME) -o $(TEST)
gdb -tui $(TEST)
# @rm -f $(TEST)
# Phony
.PHONY: all clean fclean re test bonus clear one debug