64 lines
915 B
Makefile
64 lines
915 B
Makefile
NAME = philo
|
|
|
|
CC = clang
|
|
|
|
CFLAGS = -Wall -Wextra -Werror $(INCLUDES) -g3
|
|
|
|
VPATH = $(DIR_SRCS)
|
|
DIR_SRCS = srcs
|
|
|
|
INCLUDES = -I$(HEADERS_D)
|
|
|
|
HEADERS_D = .
|
|
HEADERS = philo.h \
|
|
philo_struct.h \
|
|
philo_proto.h \
|
|
philo_macro.h
|
|
|
|
LIBS = -lpthread
|
|
|
|
SRCS = main.c \
|
|
init.c \
|
|
launch.c \
|
|
exec.c \
|
|
utils.c \
|
|
generic.c
|
|
|
|
DIR_OBJS = builds
|
|
OBJS = $(SRCS:%.c=$(DIR_OBJS)/%.o)
|
|
|
|
# --------------------
|
|
# ------ RULES -------
|
|
# --------------------
|
|
|
|
all: $(NAME)
|
|
|
|
$(DIR_OBJS)/%.o: %.c | $(DIR_OBJS)
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(DIR_OBJS):
|
|
mkdir $@
|
|
|
|
$(OBJS): $(HEADERS:%=$(HEADERS_D)/%)
|
|
|
|
$(NAME): $(OBJS)
|
|
$(CC) $(OBJS) -o $(NAME) $(LIBS)
|
|
|
|
clean:
|
|
rm -rf $(OBJS)
|
|
rm -rf $(DIR_OBJS)
|
|
|
|
fclean: clean
|
|
rm -f $(NAME)
|
|
|
|
re: fclean all
|
|
|
|
valgrind: $(NAME)
|
|
valgrind --leak-check=full --leak-resolution=low --show-reachable=yes ./$(NAME)
|
|
|
|
run: $(NAME)
|
|
./$(NAME)
|
|
|
|
.PHONY : all clean fclean re bonus subsystem run valgrind
|
|
|