-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
104 lines (86 loc) · 2.76 KB
/
Makefile
File metadata and controls
104 lines (86 loc) · 2.76 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: lsohler <lsohler@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/08/08 12:31:06 by lsohler #+# #+# #
# Updated: 2023/08/29 17:22:29 by lsohler ### ########.fr #
# #
# **************************************************************************** #
# PROJET #
NAME = minishell
# HEADER #
INCLUDES = includes/
HEADER_SRCS = minishell.h
HEADER = $(addprefix $(INCLUDES), $(HEADER_SRCS))
# SOURCES #
SRCS_F = lexer.c main.c parser.c
SRCS_DIR = srcs/
SRCS_2 = $(addprefix $(SRCS_DIR), $(SRCS_F))
SRCS = srcs/lexer.c\
srcs/main.c\
srcs/parser.c\
srcs/operator.c\
srcs/expander.c\
srcs/wildcard.c\
srcs/ast.c\
srcs/executor_print.c\
srcs/checker.c\
srcs/free.c\
\
srcs/mslib/token.c\
\
srcs/builtin/echo.c\
srcs/builtin/cd.c\
srcs/builtin/pwd.c\
srcs/builtin/export.c\
srcs/builtin/unset.c\
srcs/builtin/env.c\
srcs/builtin/exit.c\
srcs/builtin/builtin.c\
OBJS = $(SRCS:.c=.o)
# LIBFT #
LIBFT = libft.a
LIBFT_DIR = libft/
LIBFTS = -L $(LIBFT_DIR) -l ft
# UTILS #
CC = gcc
FLAGS = -Wall -Werror -Wextra
SANITIZE = -fsanitize=address -g3
SANITIZETHREAD = -fsanitize=thread -g3
RM = rm -rf
# ------- GARDER POUR ECOLE -------
LDLIBS := -lreadline -L ${HOME}/.brew/opt/readline/lib -I ${HOME}/.brew/opt/readline/include
# ------- GARDER POUR ECOLE -------
#LDLIBS := -lreadline -L$(READLINE_DIR)/lib -I $(READLINE_DIR)/include -Wl,-rpath,$(READLINE_DIR)/lib -Llibft -lft
# COLORS #
RED = \033[1;31m
GREEN = \033[1;32m
YELLOW = \033[1;33m
DEFAULT = \033[0m
BLUE = \033[0;34m
# COMMANDS #
%.o: %.c
@$(CC) $(FLAGS) -I $(INCLUDES) -I $(LIBFT_DIR) -c $< -o $@
$(NAME): $(LIBFT) $(OBJS)
@
@$(CC) $(FLAGS) ${LDLIBS} -I $(INCLUDES) $(LIBFTS) $(OBJS) -o $(NAME)
@echo "$(GREEN)$(NAME) compiled!$(DEFAULT)"
all: $(NAME)
norm:
norminette *.c includes/ libft/
clean:
@$(RM) $(OBJS)
@make clean -s -C $(LIBFT_DIR)
@echo "$(YELLOW)object files cleaned!$(DEFAULT)"
fclean: clean
@$(RM) $(NAME)
@$(RM) $(addprefix $(LIBFT_DIR), $(LIBFT))
@echo "$(RED)$(NAME) cleaned!$(DEFAULT)"
$(LIBFT):
@make -s -C $(LIBFT_DIR)
@echo "$(GREEN)Libft OK !$(DEFAULT)"
re: fclean all
.PHONY: all clean fclean re