-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
74 lines (53 loc) · 1.66 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
NAME = minishell
CC = gcc
CFLAGS = -Wextra -Wall -Werror
INCLUDES = ./includes
HEADER = $(INCLUDES)/minishell.h \
$(INCLUDES)/struct.h \
$(INCLUDES)/parser.h \
$(INCLUDES)/core.h \
HEADERS = minitalk.h \
struct.h \
parser.h \
core.h \
MAIN = main
PARSER = parse quotes utils_1 utils_2 section section_utils section_types
CORE = init dict_utils dict_utils_2 exec_command binary signal utils validator clean env_utils
BUILTINS = echo pwd env export cd unset exit
PIPE = pipe utils redirect redirect_utils
SRCS = $(addsuffix .c, $(addprefix srcs/, $(MAIN))) \
$(addsuffix .c, $(addprefix srcs/parser/, $(PARSER))) \
$(addsuffix .c, $(addprefix srcs/core/, $(CORE))) \
$(addsuffix .c, $(addprefix srcs/builtins/, $(BUILTINS))) \
$(addsuffix .c, $(addprefix srcs/pipe/, $(PIPE))) \
OBJS = $(SRCS:.c=.o)
LIBFT_HEADER = ./libft/libft.h
LIBFT = ./libft/libft.a
LIBFT_FLAGS = -L libft -lft
MAC_LIBFT_FLAGS = -L libft -lft
USR = $(shell whoami)
LRD_INC = -I/Users/$(USR)/.brew/opt/readline/include
LLRD_INC = -I/usr/local/Cellar/readline/8.1/include
LRD_LIB = -lreadline -L/Users/$(USR)/.brew/opt/readline/lib
LLRD_LIB = -lreadline -L/usr/local/Cellar/readline/8.1/lib
EXTLIB_FLAGS = -ltermcap -lreadline
$(NAME):
$(OBJS): %.o: %.c $(HEADER)
$(CC) $(CFLAGS) -c $< -I $(INCLUDES) $(LRD_INC) -o $@
$(LIBFT):
$(MAKE) -C ./libft
all: $(NAME)
minishell: $(OBJS) $(LIBFT) $(HEADER)
$(CC) $(OBJS) $(LIBFT_FLAGS) $(EXTLIB_FLAGS) $(LRD_LIB) -o $@
clean:
$(RM) $(OBJS)
$(MAKE) clean -C ./libft
fclean: clean
$(RM) minishell
$(MAKE) fclean -C ./libft
re:
$(MAKE) fclean
$(MAKE) all
norm:
norminette $(SRC) | grep "Error"
norminette $(INCLUDES) | grep "Error"