Skip to content

Commit 9ada475

Browse files
committed
fix(workflow): adjust linker flags for MinGW compatibility
1 parent a4b0329 commit 9ada475

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

Makefile

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,17 @@ CFLAGS = -Wall -Wextra -Wno-unused-parameter -I$(SRC_DIR) -I$(LLAMA_DIR)/ggml/in
4343
LLAMA_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
4444
WHISPER_OPTIONS = $(WHISPER) -DBUILD_SHARED_LIBS=OFF -DWHISPER_BUILD_EXAMPLES=OFF -DWHISPER_BUILD_TESTS=OFF -DWHISPER_BUILD_SERVER=OFF -DWHISPER_RPC=OFF
4545
MINIAUDIO_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)
5057
LDFLAGS = $(LLAMA_LDFLAGS) $(WHISPER_LDFLAGS) $(MINIAUDIO_LDFLAGS)
5158

5259
# Files
@@ -130,28 +137,28 @@ endif
130137
# Backend specific settings
131138
ifneq (,$(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
140147
endif
141148
ifneq (,$(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)
144151
endif
145152
ifneq (,$(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
156163
endif
157164
ifneq (,$(findstring COREML,$(WHISPER))) # CoreML - only macos

0 commit comments

Comments
 (0)