76 lines
1.9 KiB
Makefile
Executable File
76 lines
1.9 KiB
Makefile
Executable File
# **************************************************************************** # #
|
|
# ::: :::::::: #
|
|
# Makefile :+: :+: :+: #
|
|
# +:+ +:+ +:+ #
|
|
# By: tomoron <marvin@42.fr> +#+ +:+ +#+ #
|
|
# +#+#+#+#+#+ +#+ #
|
|
# Created: 2023/07/28 00:35:01 by tomoron #+# #+# #
|
|
# Updated: 2024/12/03 15:25:19 by tomoron ### ########.fr #
|
|
# #
|
|
# **************************************************************************** #
|
|
|
|
HOSTTYPE ?= $(shell uname -m)_$(shell uname -s)
|
|
|
|
NAME := libft_malloc_$(HOSTTYPE).so
|
|
|
|
CC = cc
|
|
|
|
SRCS_NAMES = malloc.c \
|
|
malloc_utils.c\
|
|
show_alloc_mem.c\
|
|
free.c\
|
|
realloc.c\
|
|
utils.c\
|
|
env_debug.c\
|
|
program_end.c\
|
|
hex_dump.c\
|
|
show_alloc_mem_ex.c
|
|
|
|
SRCS_DIR = srcs
|
|
|
|
OBJS_DIR := .objs
|
|
|
|
SRCS = $(addprefix $(SRCS_DIR)/, $(SRCS_NAMES))
|
|
|
|
OBJS = $(addprefix $(OBJS_DIR)/, $(SRCS_NAMES:.c=.o))
|
|
|
|
FLAGS = -Wall -Wextra -Werror -Wno-unused-result -Wno-free-nonheap-object -g
|
|
|
|
LFT = libft/libft.a
|
|
|
|
LFT_DIR = libft/
|
|
|
|
all: libft_malloc.so
|
|
|
|
tests: $(OBJS_DIR) libft_malloc.so $(LFT) tests.c
|
|
$(CC) -o tests $(FLAGS) tests.c -L. -lft_malloc $(LFT) -Wl,-rpath=.
|
|
|
|
libft_malloc.so: $(NAME)
|
|
ln -sf "$(NAME)" libft_malloc.so
|
|
|
|
$(LFT):
|
|
make -j$(shell nproc) -C $(LFT_DIR)
|
|
|
|
$(NAME): $(OBJS_DIR) $(OBJS) $(LFT)
|
|
$(CC) -shared -o "$(NAME)" $(OBJS) $(LFT)
|
|
|
|
$(OBJS_DIR):
|
|
mkdir -p $(OBJS_DIR)
|
|
|
|
$(OBJS_DIR)/%.o: $(SRCS_DIR)/%.c
|
|
$(CC) -fPIC $(FLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -rf $(OBJS_DIR)
|
|
make -C $(LFT_DIR) fclean
|
|
|
|
fclean: clean
|
|
rm -f "$(NAME)"
|
|
rm -f libft_malloc.so
|
|
rm -f tests
|
|
|
|
re: fclean all
|
|
|
|
|
|
.PHONY: clean all re fclean
|