-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
46 lines (35 loc) · 804 Bytes
/
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
NAME = philo
CC = gcc
CCFLAGS = -Wall -Wextra -Werror -o2
LDFLAGS= -lpthread
DIR_H := include
H = philosophers.h
H := $(addprefix $(DIR_H)/, $(H))
DIR_SRC = src
SRC = main.c \
parser.c \
actions.c \
extra.c \
extra_thread.c \
lib.c \
lib2.c
SRC := $(addprefix $(DIR_SRC)/, $(SRC))
DIR_OBJ = obj
OBJ = $(SRC:%.c=%.o)
OBJ := $(patsubst $(DIR_SRC)/%, $(DIR_OBJ)/%, $(OBJ))
all: $(NAME)
$(NAME): $(OBJ)
@$(CC) $(CCFLAGS) $(OBJ) $(LDFLAGS) -o $(NAME)
@echo "--------------------------------"
@echo "${NAME} compiled"
@echo "--------------------------------"
$(DIR_OBJ)/%.o: $(DIR_SRC)/%.c $(H)
@mkdir -p $(dir $@)
@echo "[$<] ---> [$@]"
@$(CC) $(CCFLAGS) -I$(DIR_H) -c $< -o $@
clean:
@rm -rf $(DIR_OBJ)
fclean: clean
@rm -rf $(NAME)
re: fclean all
.PHONY: all clean fclean re