-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
100 lines (83 loc) · 2.54 KB
/
Copy pathMakefile
File metadata and controls
100 lines (83 loc) · 2.54 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: moduwole <moduwole@student.42wolfsburg. +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2023/07/10 00:56:42 by dgoremyk #+# #+# #
# Updated: 2023/10/02 06:15:37 by moduwole ### ########.fr #
# #
# **************************************************************************** #
NAME = cub3D
CC = gcc
CFLAGS = -Wall -Wextra -Werror -g -Imlx
RM = rm -f
SRC_PATH = src/
OBJ_PATH = obj/
HEADER = inc/cub3d.h
SRC = main.c \
init.c \
parsing.c \
save_cub.c \
retrieve_file_data.c \
add_colors.c \
add_map.c \
add_map2.c \
validate_map.c \
validate_walls.c \
validate_textures.c \
add_player_dir.c \
free.c \
exit.c \
utils.c \
utils2.c \
debug.c \
init_mlx.c \
init_textures.c \
render.c \
ray.c \
texture.c \
image.c \
get_input.c \
player_move.c \
validate_move.c \
player_rotate.c
SRCS = $(addprefix $(SRC_PATH), $(SRC))
OBJ = $(SRC:.c=.o)
OBJS = $(addprefix $(OBJ_PATH), $(OBJ))
LIBFT = ./libft/libft.a
# Detect the operating system
UNAME_S := $(shell uname -s)
# macOS
ifeq ($(UNAME_S),Darwin)
MLX_DIR = ./minilibx_opengl_20191021
MLXLIB = $(MLX_DIR)/libmlx.a
MLXFLAGS = -L$(MLX_DIR) -lmlx -framework OpenGL -framework AppKit
# Linux
else
MLX_DIR = ./minilibx-linux
MLXLIB = $(MLX_DIR)/libmlx.a
MLXFLAGS = -L$(MLX_DIR) -lmlx -lX11 -lXext -lm
endif
# endif marks the end of a conditional block in a Makefile
$(OBJ_PATH)%.o: $(SRC_PATH)%.c $(HEADER)
mkdir -p $(OBJ_PATH)
$(CC) $(CFLAGS) -c $< -o $@
all: $(NAME)
$(NAME): $(OBJS)
$(MAKE) -C libft
$(MAKE) -C $(MLX_DIR)
$(CC) $(OBJS) $(CFLAGS) $(LIBFT) $(MLXFLAGS) -o $(NAME)
@echo " ---------------------------------------------"
@echo " compilation successful using $(UNAME_S)"
@echo " ---------------------------------------------"
clean:
$(MAKE) clean -C $(MLX_DIR)
$(MAKE) clean -C libft
$(RM) $(OBJS)
fclean: clean
$(MAKE) fclean -C libft
$(RM) $(NAME)
re: fclean all
.PHONY: all clean fclean re