Skip to content

Commit b6a19a0

Browse files
committed
Update Makefile to enhance library linking and deployment targets for macOS, iOS, iSIM and Linux
1 parent be54db5 commit b6a19a0

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

Makefile

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ MAKEFLAGS += -j$(CPUS)
2828
CC = gcc
2929
CXX = g++
3030
CFLAGS = -Wall -Wextra -Wno-unused-parameter -I$(SRC_DIR) -I$(LLAMA_DIR)/ggml/include -I$(LLAMA_DIR)/include
31-
LDFLAGS = -L./$(BUILD_DIR)/lib/common -L./$(BUILD_DIR)/lib/ggml/src -L./$(BUILD_DIR)/lib/src -lcommon -lggml -lggml-base -lggml-cpu -lllama
32-
LLAMA_OPTIONS = -DLLAMA_CURL=OFF
31+
LDFLAGS = -L./$(BUILD_DIR)/lib/common -L./$(BUILD_DIR)/lib/ggml/src -L./$(BUILD_DIR)/lib/ggml/src/ggml-blas -L./$(BUILD_DIR)/lib/src -lcommon -lggml -lggml-blas -lggml-base -lggml-cpu -lllama
32+
LLAMA_OPTIONS = -DLLAMA_CURL=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF -DLLAMA_BUILD_SERVER=OFF
3333

3434
# Directories
3535
SRC_DIR = src
@@ -43,6 +43,7 @@ SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
4343
OBJ_FILES = $(patsubst %.c, $(BUILD_DIR)/%.o, $(notdir $(SRC_FILES)))
4444
LIBS = $(BUILD_DIR)/lib/common/libcommon.a \
4545
$(BUILD_DIR)/lib/ggml/src/libggml.a \
46+
$(BUILD_DIR)/lib/ggml/src/ggml-blas/libggml-blas.a \
4647
$(BUILD_DIR)/lib/ggml/src/libggml-base.a \
4748
$(BUILD_DIR)/lib/ggml/src/libggml-cpu.a \
4849
$(BUILD_DIR)/lib/src/libllama.a
@@ -55,8 +56,8 @@ ifeq ($(PLATFORM),windows)
5556
DEF_FILE := $(BUILD_DIR)/ai.def
5657
else ifeq ($(PLATFORM),macos)
5758
TARGET := $(DIST_DIR)/ai.dylib
58-
LIBS += $(BUILD_DIR)/lib/ggml/src/ggml-metal/libggml-metal.a $(BUILD_DIR)/lib/ggml/src/ggml-blas/libggml-blas.a
59-
LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_DIR)/lib/ggml/src/ggml-metal -lggml-metal -L./$(BUILD_DIR)/lib/ggml/src/ggml-blas -lggml-blas -framework Metal -framework Foundation -framework CoreFoundation -framework QuartzCore -framework Accelerate -dynamiclib -undefined dynamic_lookup
59+
LIBS += $(BUILD_DIR)/lib/ggml/src/ggml-metal/libggml-metal.a
60+
LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_DIR)/lib/ggml/src/ggml-metal -lggml-metal -framework Metal -framework Foundation -framework CoreFoundation -framework QuartzCore -framework Accelerate -dynamiclib -undefined dynamic_lookup
6061
CFLAGS += -arch x86_64 -arch arm64
6162
LLAMA_OPTIONS += -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
6263
else ifeq ($(PLATFORM),android)
@@ -82,19 +83,20 @@ else ifeq ($(PLATFORM),android)
8283
LDFLAGS += -shared
8384
else ifeq ($(PLATFORM),ios)
8485
TARGET := $(DIST_DIR)/ai.dylib
85-
SDK := -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=11.0
86-
LDFLAGS += -dynamiclib $(SDK)
86+
SDK := -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=14.0
87+
LDFLAGS += -framework Accelerate -framework Metal -dynamiclib $(SDK)
8788
CFLAGS += -arch arm64 $(SDK)
88-
LLAMA_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS
89+
LLAMA_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
8990
else ifeq ($(PLATFORM),isim)
9091
TARGET := $(DIST_DIR)/ai.dylib
91-
SDK := -isysroot $(shell xcrun --sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=11.0
92-
LDFLAGS += -arch x86_64 -arch arm64 -dynamiclib $(SDK)
92+
SDK := -isysroot $(shell xcrun --sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=14.0
93+
LDFLAGS += -arch x86_64 -arch arm64 -framework Accelerate -framework Metal -dynamiclib $(SDK)
9394
CFLAGS += -arch x86_64 -arch arm64 $(SDK)
94-
LLAMA_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
95+
LLAMA_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
9596
else # linux
9697
TARGET := $(DIST_DIR)/ai.so
9798
LDFLAGS += -shared
99+
LLAMA_OPTIONS += -DCMAKE_POSITION_INDEPENDENT_CODE=ON
98100
endif
99101

100102
# Windows .def file generation

0 commit comments

Comments
 (0)