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),) CFLAGS = -Wall -Wextra -Werror -g -O2 endif IFLAGS = -I./mlx -I./libft SOURCEFILES = \ src/hud/load_texture.c \ src/hud/hud.c \ src/utils/inits.c \ src/utils/time.c \ src/utils/destroy_utils.c \ src/draw/draw_map.c \ src/draw/drawutils.c \ src/main.c \ src/map/checkers.c \ src/map/collision.c \ src/map/forbidden_characters.c \ src/map/populate_map.c \ src/map/setters.c \ src/utils/frees.c \ src/utils/hooks.c \ src/map/map_checker.c \ src/player/angle.c \ src/player/player.c \ src/player/move.c \ src/player/move_step.c \ src/raycast/ray.c \ src/raycast/walls.c \ src/renderer/render.c \ src/sprites/create_sprite.c \ src/sprites/move_sprites.c \ src/sprites/sort_sprites.c \ src/sprites/sprite_caster.c \ OBJECTS = $(SOURCEFILES:.c=.o) NAME = cub3d DEPS = $(OBJECTS:.o=.d) .PHONY: all clean fclean bonus re sane all: $(OBJECTS) $(NAME) -include $(DEPS) $(NAME): $(OBJECTS) if [[ "$$(echo $$LD_LIBRARY_PATH | grep -c minilibx)" == "0" ]]; then $(MAKE) CC=cc -C mlx/; fi +$(MAKE) -C libft/ $(CC) $(CFLAGS) $(IFLAGS) $(OBJECTS) -o $(NAME) -Llibft -Lmlx -lft -lmlx -lz -lXext -lX11 -lm %.o: %.c $(CC) -c $(CFLAGS) $(IFLAGS) -o $*.o $*.c $(CC) -MM $(CFLAGS) $(IFLAGS) -MT $*.o $*.c > $*.d clean: +make -C libft clean find . -name '*.o' -print -delete find . -name '*.d' -print -delete fclean: clean +make -C libft fclean rm -f $(NAME) bonus: CFLAGS += -D BONUS=1 bonus: all sane: CFLAGS += $(SANITIZERS) sane: all re: +make fclean +make all