-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
96 lines (73 loc) · 2.15 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
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
NAME = cub3D
CC = cc
CFLAGS = -Wall -Wextra -Werror
DEBUG_FLAGS = -fsanitize=address
INC = -I./include
OBJ_DIR = obj
DEBUG_OBJ_DIR = debug_obj
OBJS = $(SRCS:%.c=$(OBJ_DIR)/%.o)
DEBUG_OBJS = $(SRCS:%.c=$(DEBUG_OBJ_DIR)/%.o)
RM = rm -rf
LIBFTDIR = libft
MLX_LIB = -L/usr/X11R6/lib -lX11 -lXext -framework OpenGL -framework AppKit ./minilibx_opengl_20191021/libmlx.a
MLX_DIR = minilibx_opengl_20191021
SRCS = src/main.c \
src/exit/exit_error.c \
src/check/check_error.c \
src/check/check_file_name.c \
src/check/check_mapfile.c \
src/mlx/run_mlx.c \
src/mlx/init/ft_init_mlx.c \
src/mlx/init/set_player.c \
src/mlx/init/set_wall_texture.c \
src/mlx/raycast/ft_raycast.c \
src/mlx/raycast/calc_wall_height.c \
src/mlx/draw/draw_wall_texture_ceiling_floor.c \
src/mlx/raycast/calc_dist_to_wall.c \
src/exit/ft_destroy.c \
src/mlx/press_key/ft_press_key.c \
src/exit/free.c \
src/check/check_texture.c \
src/check/check_map.c \
src/check/check_single_map.c \
src/check/check_floor_ceiling.c \
src/check/check_mapcontents.c \
src/check/check_mapcollect.c \
src/check/check_readable_texture.c \
src/check/check_direction.c \
src/mlx/press_key/move_back.c \
src/mlx/press_key/move_forward.c \
src/mlx/press_key/move_left.c \
src/mlx/press_key/move_right.c \
src/mlx/press_key/rotate_left.c \
src/mlx/press_key/rotate_right.c \
src/mlx/press_key/ft_release_key.c \
src/mlx/draw/draw_wall_texture.c \
src/mlx/draw/draw_floor.c \
src/mlx/draw/draw_ceiling.c \
all: $(NAME)
$(OBJ_DIR)/%.o: %.c
@mkdir -p $(@D)
$(CC) $(CFLAGS) $(INC) -c $< -o $@
$(DEBUG_OBJ_DIR)/%.o: %.c
@mkdir -p $(@D)
$(CC) $(CFLAGS) $(DEBUG_FLAGS) $(INC) -c $< -o $@
$(NAME): $(OBJS)
@make -C $(LIBFTDIR)
@make -C ${MLX_DIR}
$(CC) $(CFLAGS) -L $(LIBFTDIR) -lft -o $(NAME) $(OBJS) $(MLX_LIB)
clean:
@make fclean -C $(LIBFTDIR)
@make clean -C $(MLX_DIR)
$(RM) $(OBJS)
$(RM) $(OBJ_DIR)
fclean: clean
$(RM) $(NAME)
re: fclean all
debug: CFLAGS += $(DEBUG_FLAGS)
debug: re
lldb: $(DEBUG_OBJS)
@make -C $(LIBFTDIR)
$(CC) $(CFLAGS) $(DEBUG_FLAGS) -L $(LIBFTDIR) -lft -o $(NAME) $(DEBUG_OBJS)
@lldb ./$(NAME)
.PHONY: all clean fclean re lldb