2025-07-17 16:07:26 +02:00
|
|
|
CC = cc
|
|
|
|
|
# -fno-omit-frame-pointer is to prevent malloc stacktraces from being truncated,
|
|
|
|
|
# see "My malloc stacktraces are too short" here:
|
|
|
|
|
# https://github.com/google/sanitizers/wiki/AddressSanitizer
|
|
|
|
|
SANITIZERS = -fsanitize=address,undefined -fno-omit-frame-pointer
|
|
|
|
|
ifeq ($(CFLAGS),)
|
2025-08-11 13:00:38 +02:00
|
|
|
CFLAGS = -Wall -Wextra -Werror -g -O2
|
2025-07-17 16:07:26 +02:00
|
|
|
endif
|
|
|
|
|
IFLAGS = -I./mlx -I./libft
|
|
|
|
|
|
|
|
|
|
SOURCEFILES = \
|
2025-07-31 13:31:05 +02:00
|
|
|
src/utils/inits.c \
|
2025-07-31 14:07:56 +02:00
|
|
|
src/utils/time.c \
|
2025-08-11 13:00:38 +02:00
|
|
|
src/utils/destroy_utils.c \
|
2025-07-17 14:33:55 +02:00
|
|
|
src/draw/draw_map.c \
|
|
|
|
|
src/draw/drawutils.c \
|
|
|
|
|
src/main.c \
|
2025-06-24 00:17:33 +02:00
|
|
|
src/map/checkers.c \
|
2025-08-06 11:24:15 +02:00
|
|
|
src/map/collision.c \
|
2025-07-17 14:33:55 +02:00
|
|
|
src/map/forbidden_characters.c \
|
|
|
|
|
src/map/populate_map.c \
|
2025-06-25 18:08:19 +02:00
|
|
|
src/map/setters.c \
|
2025-07-02 15:35:05 +02:00
|
|
|
src/utils/frees.c \
|
2025-07-15 10:33:25 +02:00
|
|
|
src/utils/hooks.c \
|
2025-07-17 14:33:55 +02:00
|
|
|
src/map/map_checker.c \
|
2025-07-24 14:50:25 +02:00
|
|
|
src/player/angle.c \
|
2025-07-29 14:58:30 +02:00
|
|
|
src/player/player.c \
|
|
|
|
|
src/player/move.c \
|
2025-08-07 13:45:34 +02:00
|
|
|
src/player/move_step.c \
|
2025-07-30 16:25:12 +02:00
|
|
|
src/raycast/ray.c \
|
2025-07-31 13:18:35 +02:00
|
|
|
src/raycast/walls.c \
|
2025-07-30 16:25:12 +02:00
|
|
|
src/renderer/render.c \
|
2025-08-18 13:21:52 +02:00
|
|
|
src/sprites/create_sprite.c \
|
|
|
|
|
src/sprites/move_sprites.c \
|
2025-08-06 14:47:29 +02:00
|
|
|
src/sprites/sort_sprites.c \
|
2025-08-06 14:06:15 +02:00
|
|
|
src/sprites/sprite_caster.c \
|
2025-07-17 14:33:55 +02:00
|
|
|
|
2025-07-17 16:07:26 +02:00
|
|
|
OBJECTS = $(SOURCEFILES:.c=.o)
|
|
|
|
|
NAME = cub3d
|
|
|
|
|
DEPS = $(OBJECTS:.o=.d)
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean fclean bonus re sane
|
2025-05-05 17:09:11 +02:00
|
|
|
|
|
|
|
|
all: $(OBJECTS) $(NAME)
|
|
|
|
|
|
2025-07-17 16:07:26 +02:00
|
|
|
-include $(DEPS)
|
|
|
|
|
|
2025-05-05 17:09:11 +02:00
|
|
|
$(NAME): $(OBJECTS)
|
2025-07-21 13:33:10 +02:00
|
|
|
if [[ "$$(echo $$LD_LIBRARY_PATH | grep -c minilibx)" == "0" ]]; then $(MAKE) CC=cc -C mlx/; fi
|
2025-07-17 16:07:26 +02:00
|
|
|
+$(MAKE) -C libft/
|
2025-07-24 14:36:40 +02:00
|
|
|
$(CC) $(CFLAGS) $(IFLAGS) $(OBJECTS) -o $(NAME) -Llibft -Lmlx -lft -lmlx -lz -lXext -lX11 -lm
|
2025-05-05 17:09:11 +02:00
|
|
|
|
2025-07-17 16:07:26 +02:00
|
|
|
%.o: %.c
|
|
|
|
|
$(CC) -c $(CFLAGS) $(IFLAGS) -o $*.o $*.c
|
|
|
|
|
$(CC) -MM $(CFLAGS) $(IFLAGS) -MT $*.o $*.c > $*.d
|
2025-05-05 17:09:11 +02:00
|
|
|
|
|
|
|
|
clean:
|
2025-07-17 16:07:26 +02:00
|
|
|
+make -C libft clean
|
|
|
|
|
find . -name '*.o' -print -delete
|
|
|
|
|
find . -name '*.d' -print -delete
|
2025-05-05 17:09:11 +02:00
|
|
|
|
|
|
|
|
fclean: clean
|
2025-07-17 16:07:26 +02:00
|
|
|
+make -C libft fclean
|
2025-05-05 17:09:11 +02:00
|
|
|
rm -f $(NAME)
|
|
|
|
|
|
2025-06-30 16:16:45 +02:00
|
|
|
bonus: CFLAGS += -D BONUS=1
|
2025-07-09 16:45:13 +02:00
|
|
|
bonus: all
|
2025-06-30 16:16:45 +02:00
|
|
|
|
2025-07-17 16:07:26 +02:00
|
|
|
sane: CFLAGS += $(SANITIZERS)
|
|
|
|
|
sane: all
|
2025-05-05 17:09:11 +02:00
|
|
|
|
2025-07-17 16:07:26 +02:00
|
|
|
re:
|
|
|
|
|
+make fclean
|
|
|
|
|
+make all
|