42_malloc/Makefile

41 lines
795 B
Makefile
Raw Permalink Normal View History

2024-07-30 03:28:43 -04:00
MAKEFLAGS += -j
CC := gcc
LD := $(CC)
CFLAGS := -g -O0 -Wall -Wextra -Werror -MMD
OBJ := $(patsubst src/%.c,build/%.o,$(wildcard src/*.c))
DEP := $(patsubst %.o,%.d,$(OBJ))
NAME := libmalloc.so
all: $(NAME)
$(NAME): $(OBJ)
@printf 'LD %s\n' "$@"
$(LD) -shared -o $(NAME) $(OBJ)
build/%.o: src/%.c
@printf 'CC %s\n' "$@"
@mkdir -p $(@D)
@$(CC) $(CFLAGS) -fPIC -c -o $@ $<
clean:
@printf 'RM build\n'
@rm -rf build/
fclean:
@printf 'RM build %s\n' "$(NAME)"
@rm -rf build/ $(NAME) bozo bozo.d
re:
@make --no-print-directory fclean
@make --no-print-directory all
test:
@make --no-print-directory all
@$(CC) $(CFLAGS) test/main.c -o bozo -L. -lmalloc
@export LD_LIBRARY_PATH=$(shell pwd) && valgrind ./bozo
.PHONY: all clean fclean re test
-include $(DEP)