# ---------------------------------------------------------------------------- # # 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