ft_malloc/Makefile

49 lines
1.2 KiB
Makefile

# ---------------------------------------------------------------------------- #
# VARIABLES #
# ---------------------------------------------------------------------------- #
NAME_BASE := libft_malloc
HOSTTYPE ?= $(shell uname -m)_$(shell uname -s)
NAME := $(NAME_BASE)_$(HOSTTYPE).so
SYMLINK := $(NAME_BASE).so
CC := cc
CFLAGS := -Wall -Wextra -Werror -fPIC
LDFLAGS := -shared
SRC_DIR := src
INC_DIR := inc
OBJ_DIR := obj
SRCS := $(wildcard $(SRC_DIR)/*.c)
OBJS := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS))
INCLUDES := -I$(INC_DIR)
# ---------------------------------------------------------------------------- #
# RULES #
# ---------------------------------------------------------------------------- #
all: $(NAME) symlink
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(OBJ_DIR)
$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
$(NAME): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $^
symlink: $(NAME)
@ln -sf $(NAME) $(SYMLINK)
clean:
@rm -rf $(OBJ_DIR)
fclean: clean
@rm -f $(NAME) $(SYMLINK)
re: fclean all
.PHONY: all clean fclean re symlink