@@ -103,23 +103,21 @@ else ifeq ($(PLATFORM),ios)
103103 TARGET := $(DIST_DIR)/ai.dylib
104104 SDK := -isysroot $(shell xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=14.0
105105 LLAMA_LIBS += $(BUILD_GGML)/lib/libggml-metal.a
106- WHISPER_LDFLAGS += -lwhisper.coreml
107- LDFLAGS += -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework CoreML -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework Security -ldl -dynamiclib $(SDK)
106+ LDFLAGS += -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreFoundation -framework Security -ldl -lpthread -lm -dynamiclib $(SDK)
108107 CFLAGS += -arch arm64 -x objective-c $(SDK)
109108 LLAMA_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
110- WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DWHISPER_COREML=ON
111- MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_C_FLAGS="-x objective-c"
109+ WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
110+ MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DMINIAUDIO_NO_RUNTIME_LINKING=ON
112111 STRIP = strip -x -S $@
113112else ifeq ($(PLATFORM),ios-sim)
114113 TARGET := $(DIST_DIR)/ai.dylib
115114 SDK := -isysroot $(shell xcrun --sdk iphonesimulator --show-sdk-path) -miphonesimulator-version-min=14.0
116115 LLAMA_LIBS += $(BUILD_GGML)/lib/libggml-metal.a
117- WHISPER_LDFLAGS += -lwhisper.coreml
118- LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework CoreML -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework Security -ldl -dynamiclib $(SDK)
116+ LDFLAGS += -arch x86_64 -arch arm64 -L./$(BUILD_GGML)/lib -lggml-metal -L./$(BUILD_GGML)/lib -framework Accelerate -framework Metal -framework Foundation -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreFoundation -framework Security -ldl -lpthread -lm -dynamiclib $(SDK)
119117 CFLAGS += -arch x86_64 -arch arm64 -x objective-c $(SDK)
120118 LLAMA_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
121- WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DWHISPER_COREML=ON
122- MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DCMAKE_C_FLAGS="-x objective-c"
119+ WHISPER_OPTIONS += -DGGML_OPENMP=OFF -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
120+ MINIAUDIO_OPTIONS += -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DMINIAUDIO_NO_RUNTIME_LINKING=ON
123121 STRIP = strip -x -S $@
124122else # linux
125123 TARGET := $(DIST_DIR)/ai.so
@@ -164,7 +162,7 @@ ifneq (,$(findstring BLAS,$(LLAMA)))
164162 LLAMA_LDFLAGS += -lblas
165163 endif
166164endif
167- ifneq (,$(findstring COREML,$(WHISPER ) ) ) # CoreML - only macos
165+ ifneq (,$(findstring COREML,$(WHISPER ) ) ) # CoreML - only Apple platforms
168166 WHISPER_LIBS += $(BUILD_WHISPER)/src/libwhisper.coreml.a
169167 WHISPER_LDFLAGS += -lwhisper.coreml
170168 WHISPER_OPTIONS += -DWHISPER_COREML=ON
@@ -222,6 +220,16 @@ $(BUILD_DIR)/whisper.cpp.stamp: $(BUILD_DIR)/llama.cpp.stamp
222220
223221$(BUILD_DIR ) /miniaudio.stamp :
224222 cmake -B $(BUILD_MINIAUDIO ) $(MINIAUDIO_OPTIONS ) $(MINIAUDIO_DIR )
223+ ifeq ($(PLATFORM ) ,ios)
224+ # Patch the build files to add Objective-C flag for iOS
225+ sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio.dir/flags.make
226+ sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio_*.dir/flags.make || true
227+ endif
228+ ifeq ($(PLATFORM ) ,ios-sim)
229+ # Patch the build files to add Objective-C flag for iOS simulator
230+ sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio.dir/flags.make
231+ sed -i.bak 's/\(C_FLAGS = \)/\1-x objective-c /' $(BUILD_MINIAUDIO)/CMakeFiles/miniaudio_*.dir/flags.make || true
232+ endif
225233 cmake --build $(BUILD_MINIAUDIO) --config Release $(MINIAUDIO_ARGS) $(ARGS)
226234 touch $@
227235
0 commit comments