-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
58 lines (46 loc) · 1.27 KB
/
Copy pathMakefile
File metadata and controls
58 lines (46 loc) · 1.27 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
SRCDIR = src/
OBJDIR = bin/
INCDIR = include/
MLXPATH = minilibx-linux/
MLX = $(MLXPATH)libmlx.a
######################################################################
SRCS = main.cpp Tup3.cpp Vec3.cpp Point3.cpp Color.cpp Ray.cpp Sphere.cpp \
HittableList.cpp Camera.cpp Lambertian.cpp Metal.cpp Img.cpp MLXRenderer.cpp \
Glass.cpp
OBJS = $(addprefix $(OBJDIR),$(SRCS:.cpp=.o))
DEPENDS = $(OBJS:.o=.d)
######################################################################
CC = clang++ -O3
OPTIONALDEFINE = -DCPP_TAG
CFLAGS = -Wall -Wextra -Werror -MMD -MP -std=c++20
LINK = -lmlx -lm -lXext -lX11
INCPATH = -I$(INCDIR) -I$(MLXPATH)
LIBPATH = -L$(MLXPATH)
NAME = RayTracing
VAL = valgrind --leak-check=full ./$(NAME) input.rt
RUN = ./$(NAME) input.rt #> img2.ppm && eog img2.ppm
######################################################################
all: $(NAME)
$(RUN)
$(NAME): $(OBJDIR) $(MLX) $(OBJS)
$(CC) $(OBJS) $(LIBPATH) $(LINK) -o $(NAME)
-include $(DEPENDS)
$(OBJDIR)%.o: $(SRCDIR)%.cpp
$(CC) -c $(CFLAGS) $(OPTIONALDEFINE) $(INCPATH) $< -o $@
$(MLX):
make -C $(MLXPATH)
$(OBJDIR):
@mkdir -p $(OBJDIR)
gencc
run:
$(RUN)
val:
$(VAL)
clean:
rm -rf $(OBJDIR)
fclean: clean
make clean -C $(MLXPATH)
rm -f $(NAME)
re: fclean
make -j
.PHONY: all clean fclean re