From 684a0ab5f88a218a4193d2cde514c60ac9753f98 Mon Sep 17 00:00:00 2001 From: Gleicon Moraes Date: Wed, 22 Nov 2023 13:08:11 -0300 Subject: [PATCH] go : fixed Makefile for MacOS ARM 64 (#1530) * 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 --- bindings/go/Makefile | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/bindings/go/Makefile b/bindings/go/Makefile index 7411826..4f3a416 100644 --- a/bindings/go/Makefile +++ b/bindings/go/Makefile @@ -1,9 +1,26 @@ +ifndef UNAME_S +UNAME_S := $(shell uname -s) +endif + +ifndef UNAME_P +UNAME_P := $(shell uname -p) +endif + +ifndef UNAME_M +UNAME_M := $(shell uname -m) +endif + +GGML_METAL_PATH_RESOURCES := $(abspath ../..) BUILD_DIR := build MODELS_DIR := models EXAMPLES_DIR := $(wildcard examples/*) INCLUDE_PATH := $(abspath ../..) LIBRARY_PATH := $(abspath ../..) +ifeq ($(UNAME_S),Darwin) + EXT_LDFLAGS := -framework Foundation -framework Metal -framework MetalKit +endif + all: clean whisper examples whisper: mkdir @@ -11,8 +28,13 @@ whisper: mkdir @${MAKE} -C ../.. libwhisper.a test: model-small whisper modtidy +ifeq ($(UNAME_S),Darwin) + @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} GGML_METAL_PATH_RESOURCES=${GGML_METAL_PATH_RESOURCES} go test -ldflags "-extldflags '$(EXT_LDFLAGS)'" -v . + @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/... +else @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v . @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go test -v ./pkg/whisper/... +endif examples: $(EXAMPLES_DIR) @@ -21,7 +43,11 @@ model-small: mkdir examples/go-model-download $(EXAMPLES_DIR): mkdir whisper modtidy @echo Build example $(notdir $@) +ifeq ($(UNAME_S),Darwin) + @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 $@) ./$@ +else @C_INCLUDE_PATH=${INCLUDE_PATH} LIBRARY_PATH=${LIBRARY_PATH} go build ${BUILD_FLAGS} -o ${BUILD_DIR}/$(notdir $@) ./$@ +endif mkdir: @echo Mkdir ${BUILD_DIR}