| INCLUDE_PATH := $(abspath ./) |
| LIBRARY_PATH := $(abspath ./) |
|
|
| AR?=ar |
|
|
| CMAKE_ARGS?=-DGGML_NATIVE=OFF |
| BUILD_TYPE?= |
| GOCMD=go |
| |
| CXXFLAGS = -I. -I$(INCLUDE_PATH)/sources/bark.cpp/examples -I$(INCLUDE_PATH)/sources/bark.cpp/encodec.cpp/ggml/include -I$(INCLUDE_PATH)/sources/bark.cpp/spm-headers -I$(INCLUDE_PATH)/sources/bark.cpp -O3 -DNDEBUG -std=c++17 -fPIC |
| LDFLAGS = -L$(LIBRARY_PATH) -L$(LIBRARY_PATH)/sources/bark.cpp/build/examples -lbark -lstdc++ -lm |
|
|
| |
| BARKCPP_REPO?=https://github.com/PABannier/bark.cpp.git |
| BARKCPP_VERSION?=5d5be84f089ab9ea53b7a793f088d3fbf7247495 |
|
|
| |
| CXXFLAGS += -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function |
|
|
| |
| sources/bark.cpp: |
| git clone --recursive $(BARKCPP_REPO) sources/bark.cpp && \ |
| cd sources/bark.cpp && \ |
| git checkout $(BARKCPP_VERSION) && \ |
| git submodule update --init --recursive --depth 1 --single-branch |
|
|
| sources/bark.cpp/build/libbark.a: sources/bark.cpp |
| cd sources/bark.cpp && \ |
| mkdir -p build && \ |
| cd build && \ |
| cmake $(CMAKE_ARGS) .. && \ |
| cmake --build . --config Release |
|
|
| gobark.o: |
| $(CXX) $(CXXFLAGS) gobark.cpp -o gobark.o -c $(LDFLAGS) |
|
|
| libbark.a: sources/bark.cpp/build/libbark.a gobark.o |
| cp $(INCLUDE_PATH)/sources/bark.cpp/build/libbark.a ./ |
| $(AR) rcs libbark.a gobark.o |
|
|
| bark-cpp: libbark.a |
| CGO_LDFLAGS="$(CGO_LDFLAGS)" C_INCLUDE_PATH="$(CURDIR)" LIBRARY_PATH=$(CURDIR) \ |
| $(GOCMD) build -v -ldflags "$(LD_FLAGS)" -tags "$(GO_TAGS)" -o bark-cpp ./ |
|
|
| package: |
| bash package.sh |
|
|
| build: bark-cpp package |
|
|
| clean: |
| rm -f gobark.o libbark.a |