|
|
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 |