-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
117 lines (91 loc) · 3.25 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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: mhernand <mhernand@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/06/05 07:58:15 by mhernand #+# #+# #
# Updated: 2019/11/08 11:47:36 by sabonifa ### ########.fr #
# #
# **************************************************************************** #
NAME = rtv1
CFLAGS = -Wall -Werror -Wextra -Ofast
INC = -I includes/
CC = gcc
SRC_DIR = srcs
OBJ_DIR = objects
SRCS = main.c\
handle/touch.c\
parser_files/parser.c\
parser_files/verify_specs_setup.c\
parser_files/spec_reset.c\
parser_files/verify_shapes.c\
parser_files/verify_onearg.c\
parser_files/verify_threeargs.c\
parser_files/verify_uniform_args.c\
parser_files/verify_obj_voc.c\
parser_files/verify_obj_voc_checker.c\
parser_files/verify_spec_voc.c\
parser_files/debugger.c\
parser_files/debugger_two.c\
parser_files/debugger_three.c\
parser_files/verify_oneargs_partwo.c\
parser_files/verify_threeargs_partwo.c\
parser_files/verify_threeargs_parthree.c\
parser_files/verify_threeargs_partfour.c\
parser_files/verify_threeargs_partfive.c\
parser_files/globals_and_set_vocab.c\
parser_files/verify_shapes_two.c\
parser_files/create_links.c\
parser_files/last_checks.c\
raycasting_files/color_op.c\
raycasting_files/get_normal.c\
raycasting_files/intersec_functions.c\
raycasting_files/intersec_functions_2.c\
raycasting_files/raycast.c\
raycasting_files/shading.c\
raycasting_files/vector_op.c\
raycasting_files/vector_op_2.c\
raycasting_files/object_manipulation.c\
raycasting_files/start_rtv1.c\
raycasting_files/matrix_check.c
SUB_FOLD = parser_files handle raycasting_files
BUILD_DIR = $(addprefix $(OBJ_DIR)/, $(SUB_FOLD))
SRC = $(addprefix $(SRC_DIR)/,$(SRCS))
OBJ = $(addprefix $(OBJ_DIR)/, $(OBJS))
OBJS = $(SRCS:.c=.o)
L_FOLD = libft/
L_TARG = libft
M_FOLD = minilibx_macos/
LIBMLX = -L ./minilibx_macos/ -lmlx -framework OpenGL -framework Appkit
superfast:
@make -j8 all
all: objects
@make $(NAME)
objects :
@mkdir -p $(BUILD_DIR)
$(NAME):$(OBJ) | $(L_TARG)
@$(CC) $(CFLAGS) $(INC) libft/libft.a $(LIBMLX) $(OBJ) -o $(NAME)
@touch .gitignore
@printf "\033[32m[ ✔ ] $(NAME)\n\033[0m"
@echo $(OBJ) > .gitignore
@echo $(NAME) >> .gitignore
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@$(CC) $(CFLAGS) $(INC) -c $< -o $@
@printf "\033[32m[ ✔ ] %s\n\033[0m" "$<"
$(L_TARG):
@make -C $(L_FOLD) all
@make -C $(M_FOLD)
clean:
@make -C $(L_TARG) clean
@make -C $(M_FOLD) clean
@rm -rf $(OBJ)
@rm -rf $(OBJ_DIR) 2> /dev/null || true
@printf '\033[31m[ ✔ ] %s\n\033[0m' "RTv1 is clean !"
fclean: clean
@printf '\033[31m[ ✔ ] %s\n\033[0m' "... and fclean too !"
@make -C $(L_TARG) fclean
@rm -rf $(NAME)
re: fclean all
.PHONY: all clean fclean all libft