@@ -43,10 +43,17 @@ CFLAGS = -Wall -Wextra -Wno-unused-parameter -I$(SRC_DIR) -I$(LLAMA_DIR)/ggml/in
4343LLAMA_OPTIONS = $(LLAMA ) -DBUILD_SHARED_LIBS=OFF -DLLAMA_CURL=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF -DLLAMA_BUILD_SERVER=OFF -DGGML_RPC=OFF
4444WHISPER_OPTIONS = $(WHISPER ) -DBUILD_SHARED_LIBS=OFF -DWHISPER_BUILD_EXAMPLES=OFF -DWHISPER_BUILD_TESTS=OFF -DWHISPER_BUILD_SERVER=OFF -DWHISPER_RPC=OFF
4545MINIAUDIO_OPTIONS = $(MINIAUDIO ) -DBUILD_SHARED_LIBS=OFF -DMINIAUDIO_BUILD_EXAMPLES=OFF -DMINIAUDIO_BUILD_TESTS=OFF
46+ # MinGW produces .a files without lib prefix, use -l:filename.a syntax
47+ ifeq ($(PLATFORM ) ,windows)
48+ L = -l:
49+ A = .a
50+ else
51+ L = -l
52+ endif
4653# Module-specific linker flags
47- LLAMA_LDFLAGS = -L./$(BUILD_LLAMA ) /common -L./$(BUILD_LLAMA ) /ggml/src -L./$(BUILD_LLAMA ) /src -lcommon -lllama -lggml -lggml- base -lggml- cpu
48- WHISPER_LDFLAGS = -L./$(BUILD_WHISPER ) /src -lwhisper
49- MINIAUDIO_LDFLAGS = -L./$(BUILD_MINIAUDIO ) -lminiaudio
54+ LLAMA_LDFLAGS = -L./$(BUILD_LLAMA ) /common -L./$(BUILD_LLAMA ) /ggml/src -L./$(BUILD_LLAMA ) /src $( L ) common $( A ) $( L ) llama $( A ) $( L ) ggml $( A ) $( L ) ggml- base$( A ) $( L ) ggml- cpu$( A )
55+ WHISPER_LDFLAGS = -L./$(BUILD_WHISPER ) /src $( L ) whisper $( A )
56+ MINIAUDIO_LDFLAGS = -L./$(BUILD_MINIAUDIO ) $( L ) miniaudio $( A )
5057LDFLAGS = $(LLAMA_LDFLAGS ) $(WHISPER_LDFLAGS ) $(MINIAUDIO_LDFLAGS )
5158
5259# Files
@@ -130,28 +137,28 @@ endif
130137# Backend specific settings
131138ifneq (,$(findstring VULKAN,$(LLAMA ) ) )
132139 LLAMA_LIBS += $(BUILD_LLAMA)/ggml/src/ggml-vulkan/libggml-vulkan.a
133- LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-vulkan -lggml- vulkan
140+ LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-vulkan $(L)ggml- vulkan$(A)
134141 # Add Vulkan SDK library path if available
135142 ifdef VULKAN_SDK
136- LLAMA_LDFLAGS += -L$(VULKAN_SDK)/lib -lvulkan
143+ LLAMA_LDFLAGS += -L$(VULKAN_SDK)/lib $(L)vulkan$(A)
137144 else # system Vulkan library locations
138- LLAMA_LDFLAGS += -lvulkan -ldl
145+ LLAMA_LDFLAGS += $(L)vulkan$(A) $(L)dl$(A)
139146 endif
140147endif
141148ifneq (,$(findstring OPENCL,$(LLAMA ) ) )
142149 LLAMA_LIBS += $(BUILD_LLAMA)/ggml/src/ggml-opencl/libggml-opencl.a
143- LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-opencl -lggml- opencl -lOpenCL
150+ LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-opencl $(L)ggml- opencl$(A) $(L)OpenCL$(A)
144151endif
145152ifneq (,$(findstring BLAS,$(LLAMA ) ) )
146153 LLAMA_LIBS += $(BUILD_LLAMA)/ggml/src/ggml-blas/libggml-blas.a
147- LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-blas -lggml- blas
154+ LLAMA_LDFLAGS += -L./$(BUILD_LLAMA)/ggml/src/ggml-blas$(A) $(L)ggml- blas$(A)
148155 # Link against specific BLAS implementations
149156 ifneq (,$(findstring OpenBLAS,$(LLAMA)))
150- LLAMA_LDFLAGS += -lopenblas
157+ LLAMA_LDFLAGS += $(L)openblas$(A)
151158 else ifneq (,$(findstring Apple,$(LLAMA)))
152159 LDFLAGS += -framework Accelerate
153160 else # Generic BLAS
154- LLAMA_LDFLAGS += -lblas
161+ LLAMA_LDFLAGS += $(L)blas$(A)
155162 endif
156163endif
157164ifneq (,$(findstring COREML,$(WHISPER ) ) ) # CoreML - only macos
0 commit comments