CC = clang CFLAGS = -Wall -Wextra -Werror -O3 LDFLAGS = -flto SRC_DIR = srcs OBJ_DIR = obj BUILD_DIR = build HDR_DIR = hdrs SRCS = $(wildcard $(SRC_DIR)/*.c) OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) LIBRARY = $(BUILD_DIR)/libft.a all: $(LIBRARY) $(OBJ_DIR) $(BUILD_DIR): @mkdir -p $@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HDR_DIR)/*.h | $(OBJ_DIR) $(CC) $(CFLAGS) -I$(HDR_DIR) -c $< -o $@ $(LIBRARY): $(OBJS) | $(BUILD_DIR) $(AR) rcs $(LIBRARY) $(OBJS) clean: rm -rf $(OBJ_DIR)/*.o fclean: clean rm -rf $(BUILD_DIR) re: fclean all .PHONY: all clean fclean re