-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
109 lines (94 loc) · 3.2 KB
/
Makefile
File metadata and controls
109 lines (94 loc) · 3.2 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
NAME = minishell
SRCS = ./srcs/parsing/ft_better_split.c \
./srcs/main/main.c \
./srcs/main/parse_commandline.c \
./srcs/main/prepare_command_list.c \
./srcs/parsing/expand_vars.c \
./srcs/parsing/ft_pipe_split.c \
./srcs/parsing/remove_quotes.c \
./srcs/parsing/syntax_handlers.c \
./srcs/parsing/parse_syntax.c \
./srcs/parsing/expand_utils.c \
./srcs/parsing/parse_declarations.c \
./srcs/execution/execute.c \
./srcs/execution/redirect.c \
./srcs/execution/pathfinders.c \
./srcs/execution/make_heredocs.c \
./srcs/execution/init_minishell.c \
./srcs/utils/pipe_utils.c \
./srcs/utils/redirect_utils.c \
./srcs/execution/execute_pipes.c \
./srcs/execution/get_commands.c \
./srcs/execution/execute_single_cmd.c \
./srcs/utils/heredoc_utils.c \
./srcs/execution/heredoc_parsing.c \
./srcs/utils/execution_utils.c \
./srcs/utils/heredoc_utils2.c \
./srcs/execution/signal_handling.c \
./srcs/execution/term_settings.c \
./srcs/execution/term_reset.c \
./srcs/execution/term_setchers.c \
./srcs/builtins/builtin_selector.c \
./srcs/builtins/pwd.c \
./srcs/builtins/cd.c \
./srcs/builtins/exit.c \
./srcs/builtins/echo.c \
./srcs/builtins/export.c \
./srcs/builtins/env.c \
./srcs/builtins/unset.c \
./srcs/env_handling/our_get_env.c \
./srcs/env_handling/init_env.c \
./srcs/utils/get_exported_vars.c \
./srcs/env_handling/env_checkers.c \
./srcs/env_handling/env_modifiers.c \
./srcs/env_handling/match_env_var.c \
./srcs/utils/split_var_by_name_value_pair.c \
./srcs/env_handling/env_selector.c \
./srcs/utils/command_options_checkers.c \
./srcs/env_handling/check_and_alter_env.c \
./get_next_line/get_next_line.c \
./get_next_line/get_next_line_utils.c \
./srcs/utils/print_builtins_usage.c \
./srcs/utils/print_builtins_errors.c \
./srcs/utils/print_minishell_errors.c
OBJS = $(SRCS:.c=.o)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
CC=clang
endif
ifeq ($(UNAME_S),Darwin)
CC= clang
endif
CFLAGS = -Wall -Wextra -Werror
GFLAG = -g3 -fsanitize=address
INCLUDES= -I includes/
all : $(NAME)
$(NAME) : $(OBJS)
@echo "make: compiling sources and libs..."
@$(MAKE) --quiet -C ./libs/libft+/
@$(CC) $(CFLAGS) -o $(NAME) $(OBJS) ./libs/libft+/libft+.a -lreadline
@echo "✔ Done"
%.o: %.c
@$(CC) -o $@ -c $^ $(CFLAGS) $(INCLUDES)
debug :
@echo "make: compiling sources and libs with fsanitize flag..."
@$(MAKE) --quiet -C ./libs/libft+/ debug
@$(CC) $(CFLAGS) $(GFLAG) -o $(NAME) $(SRCS) ./libs/libft+/libft+.a -lreadline
@echo "✔ Done"
debug_lldb :
@echo "make: compiling sources and libs with debug flag..."
@$(MAKE) --quiet -C ./libs/libft+/ debug_lldb
@$(CC) $(CFLAGS) -g -o $(NAME) $(SRCS) ./libs/libft+/libft+.a -lreadline
@echo "✔ Done"
clean :
@echo "make: cleaning object files..."
@rm -f $(OBJS)
@$(MAKE) --quiet -C ./libs/libft+/ clean
@echo "✔ Done"
fclean: clean
@echo "make: cleaning executable..."
@rm -f $(NAME)
@$(MAKE) --quiet -C ./libs/libft+/ fclean
@echo "✔ Done"
re: fclean all
.PHONY: all debug debug_lldb clean fclean re