-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
116 lines (95 loc) · 3.15 KB
/
Makefile
File metadata and controls
116 lines (95 loc) · 3.15 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
105
106
107
108
109
110
111
112
113
114
115
116
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: yachoi <yachoi@student.42seoul.kr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/11/28 09:50:01 by yachoi #+# #+# #
# Updated: 2022/11/28 09:50:03 by yachoi ### ########.fr #
# #
# **************************************************************************** #
NAME = miniRT
CC = cc
CFLAGS = -Wall -Werror -Wextra
LDFLAGS = -lm -lft -lmlx -L$(LIBFT_DIR) -L$(MLX_DIR)
INCLUDES = -I$(HDRS_DIR) -I$(LIBFT_DIR) -I$(MLX_DIR)
RM = rm
RMFLAGS = -rf
LIBFT = $(LIBFT_DIR)libft.a
LIBFT_DIR = ./libft/
MLX = $(MLX_DIR)libmlx.dylib
MLX_DIR = ./minilibx/
MLX_HDRS = $(minilibx)/
HDRS_LIST = minirt.h \
parse.h \
vector.h \
draw.h \
edit.h \
utils.h
HDRS_DIR = ./include/
HDRS = $(addprefix $(HDRS_DIR), $(HDRS_LIST))
SRCS_DIR = ./source/
P_DIR = parse/
V_DIR = vector/
D_DIR = draw/
E_DIR = edit/
U_DIR = utils/
SRCS_LIST = minirt.c \
$(P_DIR)parse.c \
$(P_DIR)parse_description.c \
$(P_DIR)parse_convert.c \
$(P_DIR)parse_type_lights_cam.c \
$(P_DIR)parse_type_sphere.c \
$(P_DIR)parse_type_plane.c \
$(P_DIR)parse_type_cylinder.c \
$(V_DIR)vector_cal1.c \
$(V_DIR)vector_cal2.c \
$(V_DIR)vector_cal3.c \
$(V_DIR)ray_cal.c \
$(D_DIR)draw.c \
$(D_DIR)draw_hit.c \
$(D_DIR)draw_hit_cylinder.c \
$(D_DIR)draw_light.c \
$(D_DIR)draw_shadow.c \
$(D_DIR)draw_shadow_cylinder.c \
$(E_DIR)edit.c \
$(E_DIR)edit_light_camera.c \
$(E_DIR)edit_object.c \
$(E_DIR)edit_utils.c \
$(U_DIR)error.c \
$(U_DIR)free.c \
$(U_DIR)get_next_line.c \
$(U_DIR)check.c
SRCS = $(addprefix $(SRCS_DIR), $(SRCS_LIST))
OBJS_DIR = objects/
OBJS_LIST = $(patsubst %.c, %.o, $(SRCS_LIST))
OBJS = $(addprefix $(OBJS_DIR), $(OBJS_LIST))
all : $(NAME)
$(NAME) : $(LIBFT) $(MLX) $(OBJS_DIR) $(OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDES) $(OBJS) -o $(NAME)
$(OBJS_DIR) :
mkdir -p $(OBJS_DIR)
mkdir -p $(OBJS_DIR)$(P_DIR)
mkdir -p $(OBJS_DIR)$(V_DIR)
mkdir -p $(OBJS_DIR)$(D_DIR)
mkdir -p $(OBJS_DIR)$(E_DIR)
mkdir -p $(OBJS_DIR)$(U_DIR)
$(OBJS_DIR)%.o : $(SRCS_DIR)%.c $(HDRS)
$(CC) $(CFLAGS) -c $(INCLUDES) $< -o $@
$(LIBFT) :
$(MAKE) bonus -C $(LIBFT_DIR)
$(MLX) :
$(MAKE) -C $(MLX_DIR)
cp $(MLX) .
clean :
$(RM) $(RMFLAGS) $(OBJS_DIR) $(OBJS)
$(MAKE) -C $(LIBFT_DIR) clean
$(MAKE) -C $(MLX_DIR) clean
fclean : clean
$(RM) $(RMFLAGS) $(LIBFT)
$(RM) $(RMFLAGS) $(NAME)
$(RM) $(RMFLAGS) $(MLX)
$(RM) $(RMFLAGS) libmlx.dylib
re : fclean $(NAME)
.PHONY : all clean fclean re