-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
128 lines (110 loc) · 2.66 KB
/
Copy pathMakefile
File metadata and controls
128 lines (110 loc) · 2.66 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
TARGET := minishell
SRCS_DIR := .
OUT_DIR := build
SOURCES := ./src/dsa/vec_glob.c\
./src/dsa/vec_env.c\
./src/dsa/vec_redir.c\
./src/dsa/vec_nd.c\
./src/dsa/deque_tt.c\
./src/dsa/vec_nd2.c\
./src/dsa/vec_str2.c\
./src/dsa/vec_str.c\
./src/dsa/vec_env4.c\
./src/dsa/vec_env2.c\
./src/dsa/deque_tt2.c\
./src/dsa/vec_env3.c\
./src/dsa/vec_exe_res.c\
./src/glob/pattern_matcher.c\
./src/glob/qsort.c\
./src/glob/glob.c\
./src/glob/glob_tokenizer.c\
./src/executor/execute_simple_list.c\
./src/executor/execute_pipeline.c\
./src/executor/executor.c\
./src/executor/execute_simple_command.c\
./src/res_utils.c\
./src/history2.c\
./src/getpwd_hack.c\
./src/history.c\
./src/expander/expander_simple_cmd.c\
./src/expander/expander_tilde.c\
./src/expander/expander_split.c\
./src/expander/expander.c\
./src/expander/expander_redirect.c\
./src/expander/expander_assignment.c\
./src/parser/parser_command.c\
./src/parser/parser_simple_list.c\
./src/parser/parser_compund_list.c\
./src/parser/parser.c\
./src/reparser/reparser2.c\
./src/reparser/reparser3.c\
./src/reparser/reparser4.c\
./src/reparser/reparser.c\
./src/heredoc/heredoc3.c\
./src/heredoc/heredoc2.c\
./src/heredoc/heredoc.c\
./src/builtins/builtins_repart.c\
./src/builtins/cd.c\
./src/builtins/echo.c\
./src/builtins/echo_flags.c\
./src/builtins/echo_help.c\
./src/builtins/exit.c\
./src/builtins/home_setter.c\
./src/builtins/pwd.c\
./src/builtins/unset.c\
./src/builtins/env.c\
./src/builtins/export.c\
./src/errors2.c\
./src/free_utils.c\
./src/main.c\
./src/tree_utils.c\
./src/errors.c\
./src/buffered_readline_readline.c\
./src/exe_path.c\
./src/utils.c\
./src/buffered_readline_utils.c\
./src/lexer.c\
./src/init.c\
./src/print_utils.c\
./src/debug_tokens.c\
./src/signals.c\
./src/buffered_readline.c\
./src/get_more_tokens.c\
./src/prompt.c\
./src/lexer2.c\
./src/process_input.c
HEADERS := ./src/dsa/vec_glob.h\
./src/dsa/vec_str.h\
./src/dsa/vec_exe_res.h\
./src/dsa/vec_env.h\
./src/builtins/builtins.h\
./src/minishell.h
OBJS := ${SOURCES:%.c=${OUT_DIR}/%.o}
ifdef OPT
CFLAGS := -fPIE -Wall -Wextra -Werror -O3 -flto ${FLAGS}
else
CFLAGS := -Wall -Wextra -Werror -g3 -ggdb -fsanitize=address,leak ${FLAGS}
endif
LIBFT_A := src/libft/libft.a
LIBS := -L src/libft -lft -lreadline
CC := cc
all: ${TARGET} ${headers}
src/libft/libft.a: src/libft
cd src/libft && make
${TARGET}: Makefile build ${OBJS} ${LIBFT_A}
${CC} ${CFLAGS} -o ${TARGET} ${OBJS} ${LIBS}
${OUT_DIR}/%.o: ${SRCS_DIR}/%.c ${HEADERS}
mkdir -p $$(dirname $@)
${CC} ${CFLAGS} -c $< -o $@
${OUT_DIR}:
mkdir -p build
clean:
rm -rf ${OUT_DIR}
make -C src/libft fclean
fclean: clean
rm -rf ${TARGET}
re:: fclean
re:: all
run: all
./${TARGET}
.PHONY: test clean fclean re