-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
91 lines (83 loc) · 2.4 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
NAME := minishell
CC := gcc
CFLAG := -Wall -Werror -Wextra -I$(shell brew --prefix readline)/include
CDFLAGS := -lreadline -lhistory -L$(shell brew --prefix readline)/lib
SRCS := srcs/main.c \
srcs/common_utils.c \
srcs/lexar.c \
srcs/parser.c \
srcs/parser2.c \
srcs/tree.c \
srcs/syntax_error.c \
srcs/init/ms_init.c \
srcs/init/ms_init2.c \
srcs/init_heredocs.c \
srcs/handle_heredoc.c \
srcs/ms_exit.c \
srcs/execution/execute_input.c \
srcs/execution/execute_simple_cmd.c \
srcs/execution/execute_simple_cmd_utils.c \
srcs/execution/create_cmd_path.c \
srcs/execution/run_builtin_cmd.c \
srcs/execution/execution_utils.c \
srcs/builtin/ft_exit.c \
srcs/builtin/ft_export.c \
srcs/builtin/ft_cd.c \
srcs/builtin/ft_echo.c \
srcs/builtin/ft_env.c \
srcs/builtin/ft_unset.c \
srcs/builtin/ft_pwd.c \
srcs/builtin/ft_cd_utils.c \
srcs/builtin/canonical_path.c \
srcs/builtin/ft_export_utils.c \
srcs/builtin/env_utils.c \
srcs/builtin/env_utils2.c \
srcs/expansion/expansion.c \
srcs/expansion/expansion_node.c \
srcs/expansion/expansion_node2.c \
srcs/expansion/add_to_word.c \
srcs/expansion/add_to_word_utils.c \
srcs/expansion/eliminate_null_node.c \
srcs/expansion/split_argv_by_blank.c \
srcs/pipeline/execute_pipeline.c \
srcs/pipeline/pipeline_utils.c \
srcs/pipeline/run_pipe_cmd.c \
srcs/pipeline/run_child.c \
srcs/pipeline/run_pipe_utils.c \
srcs/redirection/ms_redirection.c \
srcs/redirection/set_redirection.c \
srcs/redirection/redirection_handling.c \
srcs/redirection/redirection_utils.c \
srcs/redirection/create_new_cmd.c
OBJS := $(SRCS:.c=.o)
INCS := ./incs
LIB := libft
LIBNAME := libft.a
%.o: %.c
$(CC) $(CFLAG) -c $< -o $@
all :$(NAME)
ifeq ($(shell uname),Linux)
$(NAME): $(OBJS)
$(MAKE) bonus -C $(LIB)
$(CC) $(CFLAG)-I$(INCS) -o $(NAME) $(OBJS) $(LIB)/$(LIBNAME) $(CDFLAGS)
else
$(NAME): $(OBJS)
$(MAKE) bonus -C $(LIB)
$(CC) $(CFLAG) $(CDFLAGS) -I$(INCS) -o $(NAME) $(OBJS) $(LIB)/$(LIBNAME)
endif
ifeq ($(shell uname),Linux)
debug: $(OBJS)
$(MAKE) bonus -C $(LIB)
$(CC) $(CFLAG)-I$(INCS) -o $(NAME) $(OBJS) $(LIB)/$(LIBNAME) $(CDFLAGS) -fsanitize=address
else
debug: $(OBJS)
$(MAKE) bonus -C $(LIB)
$(CC) $(CFLAG) $(CDFLAGS) -I$(INCS) -o $(NAME) $(OBJS) $(LIB)/$(LIBNAME) -fsanitize=address
endif
clean:
rm -f $(OBJS)
$(MAKE) clean -C $(LIB)
fclean: clean
rm -f $(NAME)
$(MAKE) fclean -C $(LIB)
re: fclean all