copy on git
This commit is contained in:
commit
42653de246
205 changed files with 7459 additions and 0 deletions
70
Makefile
Normal file
70
Makefile
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
CC := cc
|
||||
CFLAGS := -Wall -Wextra -Werror -fPIC -Iincludes -Ilibft
|
||||
|
||||
ifeq ($(HOSTTYPE),)
|
||||
HOSTTYPE := $(shell uname -m)_$(shell uname -s)
|
||||
endif
|
||||
|
||||
NAME := libft_malloc_$(HOSTTYPE).so
|
||||
LINK := libft_malloc.so
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Sources / objects
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
||||
SRCS_DIR := srcs
|
||||
SRCS := $(SRCS_DIR)/ft_malloc.c \
|
||||
$(SRCS_DIR)/ft_free.c \
|
||||
$(SRCS_DIR)/ft_calloc.c \
|
||||
$(SRCS_DIR)/ft_realloc.c \
|
||||
$(SRCS_DIR)/init_state.c \
|
||||
$(SRCS_DIR)/bonus_utils.c
|
||||
|
||||
OBJS := $(SRCS:.c=.o)
|
||||
|
||||
LIBFT_DIR := libft
|
||||
LIBFT_A := $(LIBFT_DIR)/libft.a
|
||||
|
||||
# --------------------------------------------------------------------------- #
|
||||
# Rules
|
||||
# --------------------------------------------------------------------------- #
|
||||
|
||||
.PHONY: all clean fclean re test
|
||||
|
||||
all: $(NAME) $(LINK)
|
||||
|
||||
# Build the shared library
|
||||
$(NAME): $(LIBFT_A) $(OBJS)
|
||||
$(CC) -shared -o $@ $(OBJS) -L$(LIBFT_DIR) -lft -lpthread
|
||||
|
||||
# Symlink libft_malloc.so -> libft_malloc_$HOSTTYPE.so
|
||||
$(LINK): $(NAME)
|
||||
ln -sf $(NAME) $(LINK)
|
||||
|
||||
# Build libft first (using its own Makefile)
|
||||
$(LIBFT_A):
|
||||
$(MAKE) -C $(LIBFT_DIR)
|
||||
|
||||
# Object files
|
||||
$(SRCS_DIR)/%.o: $(SRCS_DIR)/%.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS)
|
||||
$(MAKE) -C $(LIBFT_DIR) clean
|
||||
|
||||
fclean: clean
|
||||
rm -f $(NAME) $(LINK)
|
||||
$(MAKE) -C $(LIBFT_DIR) fclean
|
||||
|
||||
re: fclean all
|
||||
|
||||
# Simple helper target to remind how to test with LD_PRELOAD
|
||||
test: all
|
||||
@echo "Library built:"
|
||||
@echo " $(NAME)"
|
||||
@echo "Symlink:"
|
||||
@echo " $(LINK) -> $(NAME)"
|
||||
@echo ""
|
||||
@echo "Example usage (run any program with your malloc):"
|
||||
@echo " LD_PRELOAD=./$(LINK) ls"
|
||||
Loading…
Add table
Add a link
Reference in a new issue