42_push_swap/Makefile

116 lines
2.8 KiB
Makefile
Raw Permalink Normal View History

2022-09-29 20:06:00 +02:00
NAME = push_swap
2022-10-01 15:05:04 +02:00
CFLAGS = -Ofast \
-march=native \
-pipe \
-Wall \
-Wextra \
-Wpedantic
CPPFLAGS = -I$(LFTDIR) \
-Iinclude \
-MMD \
-MP
LDFLAGS = -L$(LFTDIR) \
2022-10-01 18:07:24 +02:00
-L$(DIST_DIR)
LDLIBS = -lftstack \
2022-10-01 15:05:04 +02:00
-lftarray \
-lft
2022-09-29 20:06:00 +02:00
SANITIZE = -fsanitize=address,undefined
2022-10-01 15:05:04 +02:00
DEBUG = -O0 \
-g3 \
-ggdb
2022-09-29 20:06:00 +02:00
DIST_DIR = dist/
LFTDIR = libft/
LFT = $(addprefix $(LFTDIR), libft.a)
2022-10-01 15:05:04 +02:00
ARRAY_SRC = $(addprefix src/array/, \
ft_array_life.c \
func.c \
func_extra.c \
)
2022-09-29 20:06:00 +02:00
LARRAY = $(addprefix $(DIST_DIR), libftarray.a)
2022-10-01 15:05:04 +02:00
STACK_SRC = $(addprefix src/stack/, \
attr.c \
op_common.c \
op_extra.c \
stack_int.c \
stack_life.c \
)
2022-09-29 20:06:00 +02:00
LSTACK = $(addprefix $(DIST_DIR), libftstack.a)
2022-10-01 15:05:04 +02:00
PUSHWAP_SRC = $(addprefix src/pushswap/, \
exec.c \
2022-10-01 18:07:24 +02:00
move.c \
2022-10-01 15:05:04 +02:00
op.c \
op_push_swap.c \
2022-10-01 18:07:24 +02:00
presort.c \
2022-10-01 15:05:04 +02:00
push_swap_ctx.c \
push_swap_info.c \
push_swap_info_item.c \
push_swap_info_update.c \
sort.c \
)
2022-09-29 20:06:00 +02:00
LPUSHSWAP = $(addprefix $(DIST_DIR), libpushswap.a)
TEST_STACK_SRC = test/stack.c
TEST_STACK = $(addprefix $(DIST_DIR), test_stack)
TEST_PUSHSWAP_SRC = test/push_swap.c
TEST_PUSHSWAP = $(addprefix $(DIST_DIR), test_push_swap)
TUI_MONITOR_SRC = extra/main.c \
extra/tui.c
TUI_MONITOR = $(addprefix $(DIST_DIR), pushdemon)
ALL_TEST = $(TEST_STACK) $(TEST_PUSHSWAP)
ALL_SRC = $(ARRAY_SRC) $(STACK_SRC) $(TEST_STACK_SRC) \
$(TUI_MONITOR_SRC) $(PUSHWAP_SRC) $(TEST_PUSHSWAP_SRC)
ALL_OBJ = $(ALL_SRC:.c=.o)
DEPENDENCIES = $(ALL_SRC:.c=.d)
2022-09-25 18:47:09 +02:00
all: $(TUI_MONITOR) test;
2022-09-25 18:47:09 +02:00
clean:
$(MAKE) -C $(LFTDIR) clean
2022-09-29 16:50:39 +02:00
$(RM) $(ALL_OBJ) $(DEPENDENCIES)
2022-09-25 18:47:09 +02:00
fclean: clean
$(MAKE) -C $(LFTDIR) fclean
2022-09-29 20:06:00 +02:00
$(RM) -r $(DIST_DIR)
2022-09-25 18:47:09 +02:00
debug: CFLAGS += $(DEBUG)
debug: | fclean all
test: $(ALL_TEST)
sanitize: CFLAGS += $(DEBUG) $(SANITIZE)
sanitize: | fclean all
2022-09-25 18:47:09 +02:00
$(LFT):
$(MAKE) -C $(LFTDIR)
$(LARRAY): $(ARRAY_SRC:.c=.o)
2022-09-29 14:25:43 +02:00
mkdir -p $(DIST_DIR)
2022-09-25 18:47:09 +02:00
$(AR) -rs $@ $^
$(LSTACK): $(STACK_SRC:.c=.o)
2022-09-29 14:25:43 +02:00
mkdir -p $(DIST_DIR)
2022-09-25 18:47:09 +02:00
$(AR) -rs $@ $^
$(LPUSHSWAP): $(PUSHWAP_SRC:.c=.o)
2022-09-29 14:25:43 +02:00
mkdir -p $(DIST_DIR)
$(AR) -rs $@ $^
2022-09-25 18:47:09 +02:00
$(TEST_STACK): $(TEST_STACK_SRC:.c=.o) $(LSTACK) $(LARRAY) $(LFT)
mkdir -p $(DIST_DIR)
2022-10-01 18:07:24 +02:00
$(CC) -o $@ $(TEST_STACK_SRC:.c=.o) $(CFLAGS) $(LDFLAGS) $(LDLIBS)
2022-09-25 18:47:09 +02:00
2022-09-29 20:06:00 +02:00
$(TEST_PUSHSWAP): $(TEST_PUSHSWAP_SRC:.c=.o) $(LPUSHSWAP) $(LSTACK) $(LARRAY) $(LFT)
mkdir -p $(DIST_DIR)
2022-10-01 18:07:24 +02:00
$(CC) -o $@ $(TEST_PUSHSWAP_SRC:.c=.o) $(CFLAGS) $(LDFLAGS) -lpushswap $(LDLIBS)
2022-09-29 20:06:00 +02:00
$(TUI_MONITOR): $(TUI_MONITOR_SRC:.c=.o) $(LPUSHSWAP) $(LSTACK) $(LARRAY) $(LFT)
2022-09-29 14:25:43 +02:00
mkdir -p $(DIST_DIR)
2022-10-01 18:07:24 +02:00
$(CC) -o $@ $(TUI_MONITOR_SRC:.c=.o) $(CFLAGS) $(LDFLAGS) -lpushswap $(LDLIBS) $(shell pkg-config --libs ncurses)
2022-09-25 18:47:09 +02:00
.PHONY: all clean debug fclean test sanitize;
2022-09-25 18:47:09 +02:00
-include $(DEPENDENCIES)