Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
110 lines (89 loc) · 2.87 KB
/
Copy pathMakefile
File metadata and controls
110 lines (89 loc) · 2.87 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: ybouryal <ybouryal@student.1337.ma> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2025/09/21 12:45:24 by ybouryal #+# #+# #
# Updated: 2025/12/08 14:42:04 by mtarza ### ########.fr #
# #
# **************************************************************************** #
NAME := cub3d
SRC_DIR := src
ARENA_DIR := src/arena
GRAPHICS_DIR:= src/graphics
PARSER_DIR := src/parser
BUILD_DIR := build
LIBFT_DIR := libft
MLX_DIR := /usr/include/minilibx-linux/
SRCS := \
$(ARENA_DIR)/arena_init.c \
$(ARENA_DIR)/arena_mem.c \
$(ARENA_DIR)/arena_state.c \
$(SRC_DIR)/game.c \
$(SRC_DIR)/map.c \
$(SRC_DIR)/player.c \
$(SRC_DIR)/render.c \
$(GRAPHICS_DIR)/graphics.c \
$(GRAPHICS_DIR)/image.c \
$(GRAPHICS_DIR)/texture.c \
$(GRAPHICS_DIR)/window.c \
$(GRAPHICS_DIR)/renderer.c \
$(PARSER_DIR)/parse_args.c \
$(PARSER_DIR)/parse_color.c \
$(PARSER_DIR)/parse_map.c \
$(PARSER_DIR)/parser.c \
$(PARSER_DIR)/parse_texture.c \
$(PARSER_DIR)/utils_map.c \
$(PARSER_DIR)/utils_validate.c \
$(PARSER_DIR)/utils_color.c \
$(PARSER_DIR)/validate_map.c \
$(SRC_DIR)/main.c \
$(SRC_DIR)/hooks.c \
$(SRC_DIR)/ray.c \
$(SRC_DIR)/hit.c \
$(SRC_DIR)/hit_utils.c \
$(SRC_DIR)/settings.c \
$(SRC_DIR)/draw.c \
$(SRC_DIR)/draw_utils.c \
$(SRC_DIR)/utils.c
INCS := \
-I$(SRC_DIR) \
-I$(GRAPHICS_DIR) \
-I$(PARSER_DIR) \
-I$(ARENA_DIR) \
-I$(LIBFT_DIR) \
-I$(MLX_DIR)
LIBFT := $(LIBFT_DIR)/libft.a
MLX := $(MLX_DIR)/libmlx.a
OBJS := $(SRCS:.c=.o)
OBJ_FILES := $(addprefix $(BUILD_DIR)/, $(notdir $(OBJS)))
CC := cc
CFLAGS := -g -Wall -Werror -Wextra $(INCS)
LDFLAGS := -L$(LIBFT_DIR) -lft -L$(MLX_DIR) -lmlx -lXext -lX11 -lm
.PHONY: all clean fclean re libft mlx
all: $(NAME)
$(NAME): $(BUILD_DIR) $(LIBFT) $(OBJ_FILES)
$(CC) $(OBJ_FILES) $(LDFLAGS) -o $(NAME)
$(BUILD_DIR):
mkdir -p $(BUILD_DIR)
$(BUILD_DIR)/%.o: $(ARENA_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/%.o: $(GRAPHICS_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/%.o: $(PARSER_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD_DIR)/%.o: $(GAME_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(LIBFT):
$(MAKE) -C $(LIBFT_DIR)
clean:
$(MAKE) -C $(LIBFT_DIR) clean
rm -rf $(BUILD_DIR)
fclean: clean
$(MAKE) -C $(LIBFT_DIR) fclean
rm -f $(NAME)
re: fclean all