-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
107 lines (89 loc) · 2.61 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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
##
## EPITECH PROJECT, 2021
## Project_2021
## File description:
## Project makefile
##
DSRC = ./src/
SRC_FILES_NM = nm/main.c \
nm/nm.c \
nm/nm_archi.c \
elf/load_file.c \
elf/elf_header.c \
elf/sym_type64.c \
elf/sym_type32.c \
sections/section_list.c \
sections/section_str.c \
sections/section_sym.c \
list/sym_list.c \
list/sort_list.c \
symbols/display_symbols.c \
symbols/save_symbols.c \
symbols/sort_symbols.c \
archive/archive.c \
archive/archive_section_generator.c \
archive/load_from_archive.c \
archive/archive_app_nm.c \
tools/my_str_to_word_array.c \
tools/str_to_number.c
SRC_NM = $(addprefix $(DSRC), $(SRC_FILES_NM))
OBJ_NM = $(SRC_NM:.c=.o)
NAME_NM = my_nm
SRC_FILES_OBJD = objdump/main.c \
objdump/file_header.c \
objdump/objdump.c \
objdump/objdump_archi.c \
objdump/show_sections.c \
objdump/print_section_content.c \
elf/load_file.c \
elf/elf_header.c \
sections/section_list.c \
sections/section_str.c \
archive/archive.c \
archive/archive_section_generator.c \
archive/load_from_archive.c \
archive/archive_app_objdump.c \
tools/str_to_number.c \
SRC_OBJD = $(addprefix $(DSRC), $(SRC_FILES_OBJD))
OBJ_OBJD = $(SRC_OBJD:.c=.o)
NAME_OBJD = my_objdump
CFLAGS += -W -Wall -Wextra $(INCLUDE) $(DEBUG) # -Werror
DEBUG = -g
INCLUDE = -I./includes
all: nm objdump
nm: $(OBJ_NM)
@gcc -o $(NAME_NM) $(OBJ_NM) && \
$(ECHO) $(BOLD_T)$(GREEN_C)"\n[✔] COMPILED:" $(DEFAULT)$(LIGHT_GREEN) "$(NAME_NM)\n"$(DEFAULT) || \
$(ECHO) $(BOLD_T)$(RED_C)"[✘] "$(UNDLN_T)"BUILD FAILED:" $(LIGHT_RED) "$(NAME_NM)\n"$(DEFAULT)
objdump: $(OBJ_OBJD)
@gcc -o $(NAME_OBJD) $(OBJ_OBJD) && \
$(ECHO) $(BOLD_T)$(GREEN_C)"\n[✔] COMPILED:" $(DEFAULT)$(LIGHT_GREEN) "$(NAME_OBJD)\n"$(DEFAULT) || \
$(ECHO) $(BOLD_T)$(RED_C)"[✘] "$(UNDLN_T)"BUILD FAILED:" $(LIGHT_RED) "$(NAME_OBJD)\n"$(DEFAULT)
clean:
rm -f $(OBJ_NM) $(OBJ_OBJD)
rm -f *.gcda
rm -f *.gcno
fclean: clean
rm -f $(NAME_NM) $(NAME_OBJD)
re: fclean all
nm_re: fclean nm
obj_re: fclean objdump
reall: fclean all
#tests_run:
#@gcc -o $(NAME) $(SRC_UT) -I./ -lcriterion --coverage && ./$(NAME)
.PHONY : clean fclean re
ECHO = /bin/echo -e
DEFAULT = "\e[0m"
BOLD_T = "\e[1m"
DIM_T = "\e[2m"
UNDLN_T = "\e[4m"
BLACK_C = "\e[30m"
RED_C = "\e[31m"
GREEN_C = "\e[32m"
YELLO_C = "\e[33m"
BLUE_C = "\e[34m"
MAGEN_C = "\e[35m"
CYAN_C = "\e[36m"
WHITE_C = "\e[97m"
DEFAULT_C = "\e[39m"
LINE_RETURN = $(ECHO) ""