-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
113 lines (90 loc) · 3.02 KB
/
Makefile
File metadata and controls
113 lines (90 loc) · 3.02 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
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: allefebv <allefebv@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/05/21 12:50:11 by rkirszba #+# #+# #
# Updated: 2019/09/26 19:35:43 by allefebv ### ########.fr #
# #
# **************************************************************************** #
NAME = fdf
LIB_PATH = ./libft
SRC_PATH = src
SRC_NAME = fdf.c\
parsing.c\
init_fdf.c\
init_fdf_colors.c\
init_fdf_mlx.c\
reinit_matrices.c\
reinit_matrices_rot.c\
reinit_matrices_proj.c\
projection_process.c\
draw_background.c\
draw_object.c\
draw_menu.c\
draw_object_utils.c\
events_handlers.c\
key_events_handlers.c\
key_events_handlers2.c\
key_events_handlers3.c\
free_functions.c\
errors.c
HEADER_PATH = ./includes/
HEADEAR_NAME = fdf.h
HEADER = $(addprefix $(HEADER_PATH), $(HEADER_NAME))
LIB_PATH = ./libft
LIB_HEADER_NAME = libft.h
LIB_HEADER_PATH = $(addprefix $(LIB_PATH)/, includes)
LIB_NAME = libft.a
LIB_HEADER = $(addprefix $(LIB_HEADER_PATH)/, $(LIB_HEADER_NAME))
LIB = $(addprefix $(LIB_PATH)/, $(LIB_NAME))
LIB_MLX_PATH = ./libmlx
LIB_MLX_HEADER_NAME = libmlx.h
LIB_MLX_HEADER_PATH = $(addprefix $(LIB_MLX_PATH)/, includes)
LIB_MLX_NAME = libmlx.a
LIB_MLX_HEADER = $(addprefix $(LIB_MLX_HEADER_PATH)/, $(LIB_MLX_HEADER_NAME))
LIB_MLX = $(addprefix $(LIB_MLX_PATH)/, $(LIB_MLX_NAME))
OBJ_PATH = obj
OBJ_NAME = $(SRC_NAME:.c=.o)
CC = gcc
CCFLAGS = -Wall\
-Wextra\
-Werror
CPPFLAGS = -I $(HEADER_PATH) -MMD
MLX_FLAGS = -L /usr/local/lib -lmlx -framework OpenGL -framework AppKit
SRC = $(addprefix $(SRC_PATH)/,$(SRC_NAME))
OBJ = $(addprefix $(OBJ_PATH)/,$(OBJ_NAME))
all: libs $(NAME)
libs:
@make -C libft/
@make -C libmlx/
$(NAME): $(OBJ)
@make -C libft/
@make -C libmlx/
$(CC) $(CCFLAGS) $^ -o $@ $(LIB) $(LIB_MLX) $(MLX_FLAGS)
@echo "made fdf"
$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c | $(OBJ_PATH)
$(CC) $(CCFLAGS) $(CPPFLAGS) -I$(LIB_HEADER_PATH) -I$(LIB_MLX_HEADER_PATH) -o $@ -c $<
$(OBJ_PATH):
@mkdir $(OBJ_PATH) 2> /dev/null || true
clean:
@echo "cleaned fdf"
@make clean -C libft/
@make clean -C libmlx/
@rm -f $(OBJ) $(OBJ:.o=.d)
@rmdir $(OBJ_PATH) 2> /dev/null || true
fclean: clean
@echo "fcleaned fdf"
@make fclean -C libft/
@make fclean -C libmlx/
@rm -f $(NAME)
re: fclean
$(MAKE) all
norme:
norminette $(SRC)
norminette $(HEADER_PATH)
.PHONY: lib make clean fclean re san
.SILENT: $(OBJ) $(NAME) all clean fclean re
-include $(OBJ:.o=.d)