-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
38 lines (29 loc) · 791 Bytes
/
Makefile
File metadata and controls
38 lines (29 loc) · 791 Bytes
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
CC = cc
FLAGS = -Wall -Wextra -Werror
SRCS_F = src/
OBJS_F = obj/
NAME = philo
SRCS = main.c ft_atoi.c validate_data.c get_time_in_ms.c init.c\
monitor_dead.c routine.c utils_routine.c
# correspond every .c to .o
OBJS = $(SRCS:.c=.o)
# this is just a varaible to easier accessible.
OBJS_P = $(addprefix $(OBJS_F), $(OBJS))
all: $(NAME)
$(OBJS_F)%.o:$(SRCS_F)%.c | $(OBJS_F)
@echo "Compiling: $<"
@$(CC) $(FLAGS) -c $< -o $@
# Create obj/ directory if it doesn’t exist
$(OBJS_F):
@mkdir -p $(OBJS_F)
$(NAME): $(OBJS_P)
@$(CC) $(FLAGS) -o $(NAME) $(OBJS_P)
@echo "✅ successfully created!"
clean:
@rm -f $(OBJS_P)
@echo "🧹 Philo objects removed!"
fclean: clean
@rm -f $(NAME)
@echo "🗑️ Philo fully cleaned!"
re: fclean all
.PHONY: all clean fclean re