-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (53 loc) · 2.39 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: gkrusta <gkrusta@student.42malaga.com> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/09/22 13:19:25 by pvilchez #+# #+# #
# Updated: 2023/11/26 13:48:11 by gkrusta ### ########.fr #
# #
# **************************************************************************** #
NAME = minishell
CC = gcc -g
CFLAGS = -Wall -Wextra -Werror
REMOVE = rm -rf
LREADLINE = -L /Users/$(USER)/.brew/opt/readline/lib -lreadline
OBJ_PATH = obj
SRC_PATH = src
INC_PATH = include
LIBFT_PATH = assets/libft
LIBFT_LIB_PATH = assets/libft/libft.a
HEADERS = -I $(LIBFT_PATH)/include/ -I ./include -I /Users/$(USER)/.brew/opt/readline/include
SRC_FILES = b_cd_utils.c b_cd.c b_echo.c b_env_utils.c b_env.c b_env_update.c \
b_export_utils_b.c b_export_utils.c b_export.c b_pwd.c b_unset.c \
e_execute_nodes.c e_execute_nodes_utils.c e_make_nodes_utils.c \
e_make_nodes_utils_b.c e_make_nodes.c e_nodes_utils.c e_path_utils.c \
minishell.c e_end_child.c\
p_dollar_sign.c p_split_utils.c p_split.c p_trim.c p_trim_utils.c \
r_redir_heredoc.c r_redir.c b_exit.c e_signals.c\
SRC := $(addprefix $(SRC_PATH)/, $(SRC_FILES))
OBJ = $(SRC:$(SRC_PATH)/%.c=$(OBJ_PATH)/%.o)
ORANGE = \033[1;38;5;208m
RESET = \033[0m
U_LINE = \033[4m
YELLOW = \033[1;38;5;226m
all: $(LIBFT_LIB_PATH) $(NAME)
$(NAME): $(OBJ)
@$(CC) $(OBJ) $(LIBFT_LIB_PATH) $(HEADERS) $(LREADLINE) -o $@
@echo "\n$(ORANGE)$(U_LINE)$(NAME): Mandatory Compiled$(RESET) \n"
$(LIBFT_LIB_PATH):
@$(MAKE) -C $(LIBFT_PATH)
$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c
@mkdir -p $(OBJ_PATH)
@$(CC) $(CFLAGS) -o $@ -c $< $(HEADERS)
@echo "$(YELLOW)$(NAME) Compiling:$(RESET) $(notdir $<)"
clean:
@$(REMOVE) $(OBJ_PATH)
@$(MAKE) -C $(LIBFT_PATH) clean
fclean: clean
@$(REMOVE) $(NAME)
@$(MAKE) -C $(LIBFT_PATH) fclean
re: fclean all
.PHONY: all clean fclean re $(LIBFT_LIB_PATH)