mirror of
https://codeberg.org/ACME-Corporation/cub3d.git
synced 2025-12-06 01:48:08 +01:00
build: overhaul Makefile
This commit is contained in:
parent
6322d05b22
commit
4a2ad1fa58
6 changed files with 33 additions and 16 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,4 +1,5 @@
|
||||||
cub3d
|
cub3d
|
||||||
*.o
|
*.o
|
||||||
|
*.d
|
||||||
libft.a
|
libft.a
|
||||||
vgcore.*
|
vgcore.*
|
||||||
|
|
|
||||||
40
Makefile
40
Makefile
|
|
@ -1,6 +1,13 @@
|
||||||
CC = cc
|
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
|
SANITIZERS = -fsanitize=address,undefined -fno-omit-frame-pointer
|
||||||
CFLAGS=-Wall -Wextra -Werror -g $(SANITIZERS) -I mlx
|
ifeq ($(CFLAGS),)
|
||||||
|
CFLAGS = -Wall -Wextra -Werror -g
|
||||||
|
endif
|
||||||
|
IFLAGS = -I./mlx -I./libft
|
||||||
|
|
||||||
SOURCEFILES = \
|
SOURCEFILES = \
|
||||||
src/draw/draw_map.c \
|
src/draw/draw_map.c \
|
||||||
src/draw/drawutils.c \
|
src/draw/drawutils.c \
|
||||||
|
|
@ -13,31 +20,40 @@ SOURCEFILES=\
|
||||||
src/utils/hooks.c \
|
src/utils/hooks.c \
|
||||||
src/map/map_checker.c \
|
src/map/map_checker.c \
|
||||||
|
|
||||||
OBJECTS=$(patsubst src/%.c,objects/%.o,$(SOURCEFILES))
|
OBJECTS = $(SOURCEFILES:.c=.o)
|
||||||
OBJDIR=objects
|
|
||||||
NAME = cub3d
|
NAME = cub3d
|
||||||
|
DEPS = $(OBJECTS:.o=.d)
|
||||||
|
|
||||||
|
.PHONY: all clean fclean bonus re sane
|
||||||
|
|
||||||
all: $(OBJECTS) $(NAME)
|
all: $(OBJECTS) $(NAME)
|
||||||
|
|
||||||
|
-include $(DEPS)
|
||||||
|
|
||||||
$(NAME): $(OBJECTS)
|
$(NAME): $(OBJECTS)
|
||||||
if [[ "$$(echo $$LD_LIBRARY_PATH | grep -c minilibx)" == "0" ]]; then $(MAKE) -C mlx/; fi
|
if [[ "$$(echo $$LD_LIBRARY_PATH | grep -c minilibx)" == "0" ]]; then $(MAKE) -C mlx/; fi
|
||||||
$(MAKE) -C libft/
|
+$(MAKE) -C libft/
|
||||||
cp libft/libft.a .
|
$(CC) $(CFLAGS) $(IFLAGS) $(OBJECTS) -o $(NAME) -Llibft -Lmlx -lft -lmlx -lz -lXext -lX11
|
||||||
$(CC) $(CFLAGS) $(OBJECTS) -o $(NAME) -L. -lft -Lmlx -lmlx -lz -lXext -lX11
|
|
||||||
|
|
||||||
$(OBJDIR)/%.o: src/%.c
|
%.o: %.c
|
||||||
$(CC) $(CFLAGS) -Imlx -c $< -o $@
|
$(CC) -c $(CFLAGS) $(IFLAGS) -o $*.o $*.c
|
||||||
|
$(CC) -MM $(CFLAGS) $(IFLAGS) -MT $*.o $*.c > $*.d
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJECTS)
|
+make -C libft clean
|
||||||
|
find . -name '*.o' -print -delete
|
||||||
|
find . -name '*.d' -print -delete
|
||||||
|
|
||||||
fclean: clean
|
fclean: clean
|
||||||
|
+make -C libft fclean
|
||||||
rm -f $(NAME)
|
rm -f $(NAME)
|
||||||
|
|
||||||
bonus: CFLAGS += -D BONUS=1
|
bonus: CFLAGS += -D BONUS=1
|
||||||
|
|
||||||
bonus: all
|
bonus: all
|
||||||
|
|
||||||
re: fclean all
|
sane: CFLAGS += $(SANITIZERS)
|
||||||
|
sane: all
|
||||||
|
|
||||||
.PHONY: all clean fclean bonus re
|
re:
|
||||||
|
+make fclean
|
||||||
|
+make all
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue