gleicon ggerganov commited on
Commit
5dbb1e3
·
unverified ·
1 Parent(s): 531cbf9

go : fixed Makefile for MacOS ARM 64 (#1530)

Browse files

* Fixed Makefile for MacOS ARM 64 based on https://github.com/ggerganov/whisper.cpp/issues/1344 + proper ggml-metal env var setting

* conditional to fix broken non-macos compilation

* spaces -> tab

* make : fix whitespaces

---------

Co-authored-by: Georgi Gerganov <[email protected]>

Files changed (1) hide show
  1. bindings/go/Makefile +26 -0
bindings/go/Makefile CHANGED
@@ -1,9 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  BUILD_DIR := build
2
  MODELS_DIR := models
3
  EXAMPLES_DIR := $(wildcard examples/*)
4
  INCLUDE_PATH := $(abspath ../..)
5
  LIBRARY_PATH := $(abspath ../..)
6
 
 
 
 
 
7
  all: clean whisper examples
8
 
9
  whisper: mkdir
@@ -11,8 +28,13 @@ whisper: mkdir
11
  @${MAKE} -C ../.. libwhisper.a
12
 
13
  test: model-small whisper modtidy
 
 
 
 
14
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v .
15
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v ./pkg/whisper/...
 
16
 
17
  examples: $(EXAMPLES_DIR)
18
 
@@ -21,7 +43,11 @@ model-small: mkdir examples/go-model-download
21
 
22
  $(EXAMPLES_DIR): mkdir whisper modtidy
23
  @echo Build example $(notdir $@)
 
 
 
24
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go build ${BUILD_FLAGS} -o ${BUILD_DIR}/$(notdir $@) ./$@
 
25
 
26
  mkdir:
27
  @echo Mkdir ${BUILD_DIR}
 
1
+ ifndef UNAME_S
2
+ UNAME_S := $(shell uname -s)
3
+ endif
4
+
5
+ ifndef UNAME_P
6
+ UNAME_P := $(shell uname -p)
7
+ endif
8
+
9
+ ifndef UNAME_M
10
+ UNAME_M := $(shell uname -m)
11
+ endif
12
+
13
+ GGML_METAL_PATH_RESOURCES := $(abspath ../..)
14
  BUILD_DIR := build
15
  MODELS_DIR := models
16
  EXAMPLES_DIR := $(wildcard examples/*)
17
  INCLUDE_PATH := $(abspath ../..)
18
  LIBRARY_PATH := $(abspath ../..)
19
 
20
+ ifeq ($(UNAME_S),Darwin)
21
+ EXT_LDFLAGS := -framework Foundation -framework Metal -framework MetalKit
22
+ endif
23
+
24
  all: clean whisper examples
25
 
26
  whisper: mkdir
 
28
  @${MAKE} -C ../.. libwhisper.a
29
 
30
  test: model-small whisper modtidy
31
+ ifeq ($(UNAME_S),Darwin)
32
+ @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} GGML_METAL_PATH_RESOURCES=${GGML_METAL_PATH_RESOURCES} go test -ldflags "-extldflags '$(EXT_LDFLAGS)'" -v .
33
+ @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} GGML_METAL_PATH_RESOURCES=${GGML_METAL_PATH_RESOURCES} go test -ldflags "-extldflags '$(EXT_LDFLAGS)'" -v ./pkg/whisper/...
34
+ else
35
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v .
36
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v ./pkg/whisper/...
37
+ endif
38
 
39
  examples: $(EXAMPLES_DIR)
40
 
 
43
 
44
  $(EXAMPLES_DIR): mkdir whisper modtidy
45
  @echo Build example $(notdir $@)
46
+ ifeq ($(UNAME_S),Darwin)
47
+ @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} GGML_METAL_PATH_RESOURCES=${GGML_METAL_PATH_RESOURCES} go build ${BUILD_FLAGS} -ldflags "-extldflags '$(EXT_LDFLAGS)'" -o ${BUILD_DIR}/$(notdir $@) ./$@
48
+ else
49
  @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go build ${BUILD_FLAGS} -o ${BUILD_DIR}/$(notdir $@) ./$@
50
+ endif
51
 
52
  mkdir:
53
  @echo Mkdir ${BUILD_DIR}