CC = cc CFLAGS = -Wall -Wextra -Werror $(EXTRA) SRCDIR = src OBJDIR = obj BINDIR = bin NAME_PRELOAD = $(BINDIR)/test_preload NAME_SHOW = $(BINDIR)/test_show SRCS = test_preload.c OBJS = $(SRCS:%.c=$(OBJDIR)/%.o) MALLOC_LIB = ../lib/libft_malloc.so MALLOC_INC = ../inc $(NAME_PRELOAD): $(OBJS) | $(BINDIR) $(CC) $(CFLAGS) -o $@ $(OBJS) $(NAME_SHOW): $(OBJDIR)/test_show.o $(MALLOC_LIB) | $(BINDIR) $(CC) $(CFLAGS) -o $@ $(OBJDIR)/test_show.o -L ../lib -lft_malloc -Wl,-rpath,'$$ORIGIN/../../lib' $(OBJDIR)/test_show.o: $(SRCDIR)/test_show.c | $(OBJDIR) $(CC) $(CFLAGS) -I $(MALLOC_INC) -c $< -o $@ all: $(NAME_PRELOAD) $(NAME_SHOW) $(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR) $(CC) $(CFLAGS) -c $< -o $@ $(OBJDIR): mkdir -p $(OBJDIR) $(BINDIR): mkdir -p $(BINDIR) test: $(NAME_PRELOAD) $(NAME_SHOW) @echo "=== system malloc ===" @$(NAME_PRELOAD) @echo "" @echo "=== ft_malloc ===" @LD_PRELOAD=$(MALLOC_LIB) $(NAME_PRELOAD) @echo "" @echo "=== show_alloc_mem ===" @$(NAME_SHOW) clean: rm -rf $(OBJDIR) $(BINDIR) .PHONY: all test clean