-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
129 lines (111 loc) · 3.44 KB
/
Makefile
File metadata and controls
129 lines (111 loc) · 3.44 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
117
118
119
120
121
122
123
124
125
126
127
128
129
# **************************************************************************** #
# #
# :::::::: #
# Makefile :+: :+: #
# +:+ #
# By: emlicame <emlicame@student.42.fr> +#+ #
# +#+ #
# Created: 2023/02/21 12:19:59 by emlicame #+# #+# #
# Updated: 2023/12/21 12:58:51 by emlicame ######## odam.nl #
# #
# **************************************************************************** #
NAME := cub3D
HEADERS := include/cub3D.h \
include/cub3D_defines.h \
include/colors.h \
include/cub3D_structures.h
HEADERS_B := include/cub3D_bonus.h \
include/cub3D_defines_bonus.h \
include/colors.h \
include/cub3D_structures_bonus.h
SRC := main.c \
casting_get.c \
casting_rays.c \
casting_utils.c \
check_map_syntax.c \
drawing_basic.c \
get_next_line.c \
get_next_line_utils.c \
hooks.c \
info_file_safety_check.c \
map_equalizer.c \
map_validation.c \
parsing.c \
parsing_init.c \
rgb_validation.c \
textures.c
SRC_B := main_bonus.c \
casting_get_bonus.c \
casting_rays_bonus.c \
casting_utils_bonus.c \
check_map_syntax_bonus.c \
drawing_basic_bonus.c \
drawing_bonus.c \
drawing_get_bonus.c \
get_next_line_bonus.c \
get_next_line_utils_bonus.c \
hooks_bonus.c \
info_file_safety_check_bonus.c \
map_equalizer_bonus.c \
map_validation_bonus.c \
parsing_bonus.c \
parsing_init_bonus.c \
rgb_validation_bonus.c \
textures_bonus.c
OBJ := $(SRC:%.c=obj/%.o)
OBJ_B := $(SRC_B:%.c=obj/%.o)
LIBFT := libft/libft.a
LIBFT_DIR := libft/
MLX := MLX42/build/libmlx42.a
# MLX_FLAGS := -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit // flags for MacOs
# flags for Linunx
MLX_FLAGS := -ldl -lglfw -pthread -lm
MLX_DIR := MLX42/
INC := -I include -I libft -I $(MLX_DIR)include
CC = gcc
CFLAGS = -Wall -Wextra -Werror
CFLAGS += -g -fsanitize=address
BONUS = 0
#//= Colors =//#
BOLD := \033[1m
BLACK := \033[30;1m
RED := \033[31;1m
GREEN := \033[32;1m
YELLOW := \033[33;1m
BLUE := \033[34;1m
MAGENTA := \033[35;1m
CYAN := \033[36;1m
WHITE := \033[37;1m
RESET := \033[0m
all: $(NAME)
@echo "$(BOLD)$(CYAN)Cube3D Done $(RESET)$(BOLD)$(YELLOW)It's just a 🐐$(RESET)"
ifeq ($(BONUS),1)
$(NAME): $(OBJ_B) $(MLX) $(LIBFT)
@$(CC) $(CFLAGS) $(INC) $(MLX_FLAGS) $^ -o $@
else
$(NAME): $(OBJ) $(MLX) $(LIBFT)
@$(CC) $(CFLAGS) $(INC) $(MLX_FLAGS) $^ -o $@
endif
bonus:
@make "BONUS = 1"
ifeq ($(BONUS),1)
obj/%.o: src/%.c $(HEADERS_B)
@mkdir -p obj
@$(CC) $(CFLAGS) $(INC) -o $@ -c $<
else
obj/%.o: src/%.c $(HEADERS)
@mkdir -p obj
@$(CC) $(CFLAGS) $(INC) -o $@ -c $<
endif
$(MLX):
@cmake $(MLX_DIR) -B $(MLX_DIR)/build && make -C $(MLX_DIR)/build -j4
$(LIBFT):
@make -C $(LIBFT_DIR)
clean:
@rm -rf obj
@make fclean -C $(LIBFT_DIR)
@rm -rf $(MLX_DIR)/build
fclean: clean
@rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re