-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
180 lines (155 loc) · 9.89 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: agoodwin <[email protected]> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2019/11/16 17:26:10 by agoodwin #+# #+# #
# Updated: 2020/06/13 20:33:40 by agoodwin ### ########.fr #
# #
# **************************************************************************** #
SRCS = src/minirt.c\
src/vector_ops0.c\
src/vector_ops1.c\
src/vector_ops2.c\
src/vector_ops3.c\
src/raytrace.c\
src/ray_ops.c\
src/color_ops0.c\
src/color_ops1.c\
src/ft_atof.c\
src/error.c\
src/parsing3.c\
src/parsing2.c\
src/parsing1.c\
src/parsing0.c\
src/window.c\
src/save_to_bmp0.c\
src/save_to_bmp1.c\
src/interact.c\
src/raytable.c\
SRCS += src/plane_ops.c\
src/sphere_ops.c\
src/hcyl_ops.c\
src/circle_ops.c\
src/cyl_ops.c\
src/square_ops.c\
src/triangle_ops.c
MKDIR_P = mkdir -p
RM = rm -f
NAME = miniRT
# **************************************************************************** #
# Directories
SRC_DIR = src
OBJ_DIR = obj
SDL_OBJ_DIR = obj_sdl
INC_DIR = include
# **************************************************************************** #
# LIBFT
LFT_NAME = libft.a
LFT_PATH = ./libft
LFT_LIB = -L$(LFT_PATH) -lft
LFT_INC = -I$(LFT_PATH)/
LFT_RULE = $(LFT_PATH)/$(LFT_NAME)
# **************************************************************************** #
OBJS = $(patsubst src/%.c, $(OBJ_DIR)/%.o, $(SRCS))
SDL_OBJS = $(patsubst src/%.c, $(SDL_OBJ_DIR)/%.o, $(SRCS))
LIB = $(LFT_LIB) -lm
LIB_MLX = -L. -lmlx -lX11 -lXext #-framework OpenGL -framework AppKit --shared
LIB_SDL = -lSDL2
INC = -I $(INC_DIR) $(LFT_INC)
# COLORS
RED = \033[0;31m
GREEN = \033[0;32m
YELLOW = \033[0;33m
BLUE = \033[0;34m
MAGENTA = \033[0;35m
CYAN = \033[0;36m
RESET = \033[0m
# **************************************************************************** #
CFLAGS = -Wall -Wextra -Werror
CC = clang
all: ${NAME}
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(INC_DIR)/
@$(MKDIR_P) $(OBJ_DIR)
@$(CC) $(CFLAGS) -c -o $@ $< $(INC)
@printf "$(CYAN)Compiling $(MAGENTA)$<$(RESET)\r"
$(SDL_OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(INC_DIR)/
@$(MKDIR_P) $(SDL_OBJ_DIR)
@$(CC) $(CFLAGS) -c -o $@ $< $(INC)
@printf "$(CYAN)Compiling $(MAGENTA)$<$(RESET)\r"
$(NAME): $(LFT_RULE) $(OBJS)
@printf "$(CYAN)Done creating $(NAME) object files!\n$(RESET)"
@$(CC) $(CFLAGS) $(OBJS) -o $@ $(INC) $(LIB) $(LIB_MLX)
@echo "$(CYAN)Created $(GREEN)$(NAME)$(CYAN)!! $(RESET)"
sdl: $(LFT_RULE) $(SDL_OBJS)
@printf "$(CYAN)Done creating $(NAME) object files!\n$(RESET)"
@$(CC) $(CFLAGS) $(SDL_OBJS) -o sdl_miniRT $(INC) $(LIB) $(LIB_SDL)
@echo "$(CYAN)Created $(GREEN)$(NAME)$(CYAN)!! $(RESET)"
$(LFT_RULE):
@make -C $(LFT_PATH)/
clean:
@${RM} ${OBJS} $(SDL_OBJS)
@$(MKDIR_P) $(OBJ_DIR) $(SDL_OBJ_DIR)
@rmdir -p $(OBJ_DIR) $(SDL_OBJ_DIR)
@echo "$(CYAN)CLEANING$(RESET)"
fclean: clean
@${RM} ${NAME}
@make -C $(LFT_PATH) fclean
@echo "$(CYAN)Everything is $(RED)c $(YELLOW)l $(GREEN)e $(CYAN)a $(MAGENTA)n $(RESET)"
re: clean all
re-sdl: clean sdl
re-libft:
@make -C $(LFT_PATH) re
together: all
@echo "$(CYAN)"
@echo "&&&&&&&&&&&&&&&(((((((((((((#((((((((((((((((((((((((((((((((((((((((((((((((%@@@@@@@@@@@@@%#######%&&&&&&&&&"
@echo "&&&&&&&&&&&&&&%(((#(((((((((((#((((((((##(((((((((((((((((((((((((((((((((((((((&@@@@@@@@@@@@@@@@%####&&&@&&&"
@echo "&&&&&&&&&&&&@@@@@@@%((#((((((#(((((((((#(((((((((((((((((((%@@@((((((((((((((((@@&@@@@@@@@@@@@@@@@@%#&&&@@&&&"
@echo "&&&&&&&&&&&@@@@@@@@@@@@@#((((#(((((((##((((((((((((#(#%@@@@@@@@@@@@((((((((((((#@@&@@@@@@@&@@@@@@@@@@@@@@@@@@"
@echo "&&&&&&&&&@@@@@@@@@@@@@@@@@@@&((((((((%&((((((((#%@@@@@@@@@@@@@@@@@@@@@#(((((((((((&@@@@@@@@#((((((&@@@@@@@@@&"
@echo "&&&&&&&&&@@@@@@@@@@@@@@@@@@@@&(#(((((&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%(((((((((((@@@@@@@%((((((((&@@@@@@@@@"
@echo "&&&&&&&&&&((((((((((%@@@@@@@@@@#((((((@@@@@@@@@@@@@@@@@@@@@@%%#((#%@@@@@##((((((((((@@@@@%((((((#((#@@@@@@@@@"
@echo "&&&&&&&&&&(((((((((((((#&@@@@@#((((@@@@@@@@@@@@@@%(#%%##((((((((#&@@@(((((((((#(#@@@&(#((((%((((&@@@@@@@@@&&@"
@echo "&&&&&&&&&&&(((((((((((((((#((@@@%(((((&@@@@@@(((##(((((((#(((((((((#@@(((((((((((&@&((((((#(((((%@@@@@@@@@@@@"
@echo "&&&&&&&&&&&&&%(#(((((((((###(((##(##(((((((((((((##(((((((((((##(((((((((&%(((((((((((@((((((##(((((%@@@@@@@@"
@echo "&&&&&&&&&&&&&&%(((((((((##((((((((##((((((((((((#(((((((((((((((#((((((((((((((((((((((((((((#((((((%@@&@@@@@"
@echo "&&&&&&&&&&&&&&&%(((((((#((#((((((((#(((((((((((((((((((((((((((((((((((((((((((((((((((((((((#(((((#@@@@&@@@@"
@echo "&&&&&&&&&&&&&&&&&((((#((((((((((((##((((((((((((((((((((((((((((((###(((((((((((((((((((((((((((((#@@@@@&@@@@"
@echo "&&&&&&&&&&&&&&(((((((((((((((((((#(((((((((((((((#(###%&@@@@@@#(##(((((((((((((((((((((((((((((#@@@@@@&@@@@&&"
@echo "&&&&&&&&&&&%#((((((@@@@&&&@@@@@@@%/#(((((((((((#(*******(@@@@@(((((((((((((((((((((((((##(((((%@@@@@@@@@@@@@&"
@echo "&&&&&&&&%#((((((((((((#(******@@@%##((((((((((#((((((((((((((((((((((((((((((((((((((((((###(##(#@@@@@@@@@@@@"
@echo "&&&&&&&%((((((((((((#(#((***(((((((%(((((((((((##(((((((((((((((((((((((((((((((((((((((((#((((((@@@@@@@@&@@@"
@echo "&&&&&&&&%(((((((((((((##(((((((((#(#((((((((((((((#((((((((((((((((((((((((((((((((((((((((%(((((&@@@@@@@@&@@"
@echo "&&&&&&&&&%((((((((((((((((((((((((##((((((((((((((((((((((((((((((((((((((((((((((((((((((((#((((#@@@@@@@@@@&"
@echo "&&&&&&&&&&%((((((((((((((((((((((((#((((((((((((((((((((((((((((((((((((((((((((((((((((((((#(((((&@@@@@@@@@@"
@echo "&&&&&&&&&&&%(((((((((((((((((((((((#((((((((((((((((((((((((((((((###(((((((((((((((((((((((#%((((#@@@@@@@@@@"
@echo "&&&&&&&&&&&((((((((((((((((((((((#((((((((((((((((((((((((((((##(((#((((((((((((((((((((((((#((((&@@@@@@@@@@@"
@echo "&&&&&&&&&&&&(((((((((((((((((((((#((((((((#((((((((((((#(#%#(###(((%#(((((((((((((((((((((((#((((#@@@@@@@@@@@"
@echo "&&&&&&&&&&&&&((((((((((((((((((#(#(((((((#(%((((((((((((((((((##(((##(((((((((((((((((((((((#%((((&@@@@@@@@@@"
@echo "&&&&&&&&&&&&&&&(((((((((((((((#((#(#((((((((((%#(((((((((((((((#%((((#((((((((((((((((((((((((((#(((#@@@@@@@@"
@echo "&&&&&&&&&&&&&&&%((((((((((((((#(#((#(((((((((((%((((((((((((((#%(((((((((((((((((((((((((((((((((#(((&@@@@@@@"
@echo "&&&&&&&&&&&&&&&&%(((((((((((((((#(#%(((((((######((((((((((((%%#(((((((((((((((((((((((((((((((((#(#(#@@@@@@@"
@echo "&&&&&&&&&&&&&&&&((((((((((((((((##(((((((##((((((((((((((#(%#(((((((((((((((((((((((((((((((((((%(((%@@@@@@@@"
@echo "&&&&&&&&&&&&&&&&&((((((((((((((((#((((((##((((((((((((((#*(#(((((((((((((((((((((((((((((((((((((#((#@@@@@@@@"
@echo "&&&&&&&&&&&&&&&&&&&((((((((((((((((#((((((##((((((((((((%**((((((((((((((((((((((((((((((((((((((((##((%@@@@@"
@echo "&&&&&&&&&&&&&&&&&@@#((((((((((((((((#(((((##((((((((###/**%(#(((((((((((((((((((((((((((((((((((((((#((#@@@@@"
@echo "&&&&&&&&&&&&&&&&@@@%(((((((((((((##(((((((((((((#(##****/#(((((((((((((((((((((((((((((((((((((((((((%((%@@@@"
@echo "&&&&&&&&&&&&&&&@@@@@#((((((((((#############%#/********#(((((((((((((((((((((((((((((((((((((((((((((%((#@@@@"
@echo "&&&&&&&&&&&&&&@@@@@@#(((((((((((********************/#((((((((((((((((((((((((((((((((((((((((((((###((((%@@@"
@echo "&&&&&&&&&&&&&@@@@@@@#(((####((((/***************/(#((((((((((((((((((((((((((((((((((((((((((((((##((((((#@@@"
@echo "&&&&&&&&&&&&@@@@@@@@#((((%(#((((((#############((((((((((((((((((((((((((((((((((((((((((((((((#%(((((((((%@@"
@echo "&&&&&&&&&&&@@@@@@@@@((((((%(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((%((((((((((((&@"
@echo "&&&&&&&&&&&@@@@@@@@&(((((((#((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((##(((((((((((((#@"
@echo "&&&&&&&&&&&@@@@@@@@%(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((#(%((((((((((((((((&"
@echo "&&&&&&&&&&&@@@@@@@@#(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((%((((((((((((((((((#"
@echo "&&&&&&&&&&&@@@@@@@@((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((##(((((((((((((((((((("
@echo "&&&&&&&&&&&@@@@@@@#((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((#%(((((((((((((((((((((("
@echo "&&&&&&&&&&@@@@@@@&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((#(((((((((((((((((((((((("
@echo "&&&&&&&&&@@@@@@@@#((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((##((((((((((((((((((((((((("
@echo "$(RESET)"
@echo "$(YELLOW)╔═╗┬ ┬ ┬ ┬┌─┐┌─┐┬ ┬ ┬┌┬┐┌─┐ ┌─┐┬ ┬ ┌─┐┌─┐┌┬┐┬┌┐┌┌─┐ ┌┬┐┌─┐┌─┐┌─┐┌┬┐┬ ┬┌─┐┬─┐$(RESET)"
@echo "$(YELLOW)║ ║├─┤ └┬┘├┤ ├─┤├─┤ │ │ └─┐ ├─┤│ │ │ │ │││││││││ ┬ │ │ ││ ┬├┤ │ ├─┤├┤ ├┬┘$(RESET)"
@echo "$(YELLOW)╚═╝┴ ┴ ┴ └─┘┴ ┴┴ ┴┘, ┴ ┴ └─┘ ┴ ┴┴─┘┴─┘ └─┘└─┘┴ ┴┴┘└┘└─┘ ┴ └─┘└─┘└─┘ ┴ ┴ ┴└─┘┴└─$(RESET)"
.PHONY: all clean fclean test re