@@ -54,16 +54,16 @@ deploy.pypi:
54
54
deploy.gh-docs :
55
55
mkdocs build
56
56
mkdocs gh-deploy
57
-
57
+
58
58
COMMIT := $(shell git rev-parse --short HEAD)
59
59
60
60
deploy.docker :
61
61
# Make image with commit in name
62
62
docker build -t openblas_server_$(COMMIT ) .
63
-
63
+
64
64
# Run image and immediately exit (just want to create the container)
65
65
docker run openblas_server_$(COMMIT) bash
66
-
66
+
67
67
# Get container ID, copy server tarball + libllama.so tarball, and delete
68
68
# temp container
69
69
CONTAINER_ID=$$(docker ps -lq --filter ancestor=openblas_server_$(COMMIT)) ; \
@@ -73,7 +73,25 @@ deploy.docker:
73
73
74
74
# More cleanup
75
75
yes | docker image prune
76
-
76
+
77
+ # Build standalone server, may want to do in fresh venv to avoid bloat
78
+ deploy.pyinstaller.mac :
79
+ # CPU must be aarch64 and OS is MacOS
80
+ @if [ ` uname -m` != " arm64" ]; then echo " Must be on aarch64" ; exit 1; fi
81
+ @if [ ` uname` != " Darwin" ]; then echo " Must be on MacOS" ; exit 1; fi
82
+ @echo " Building and installing with proper env vars for aarch64-specific ops"
83
+ CMAKE_ARGS=" -DGGML_METAL=off -DGGML_LLAMAFILE=OFF -DGGML_BLAS=OFF -DCMAKE_BUILD_TYPE=Release" python3 -m pip install -v -e .[server,dev]
84
+ @server_path=$$(python -c 'import llama_cpp.server; print(llama_cpp.server.__file__ ) ' | sed s/init/main/) ; \
85
+ echo " Server path: $$ server_path" ; \
86
+ libllama_path=$$(python -c 'import llama_cpp.llama_cpp; print(llama_cpp.llama_cpp._load_shared_library("llama" ) ._name)' ) ; \
87
+ libggml_path=$$(python -c 'import llama_cpp.llama_cpp; print(llama_cpp.llama_cpp._load_shared_library("ggml" ) ._name)' ) ; \
88
+ echo " libllama path: $$ libllama_path" ; \
89
+ echo " libggml path: $$ libggml_path" ; \
90
+ pyinstaller -DF $$ server_path \
91
+ --add-data $$ libllama_path:llama_cpp/lib \
92
+ --add-data $$ libggml_path:llama_cpp/lib \
93
+ -n llama-cpp-py-server
94
+
77
95
test :
78
96
python3 -m pytest
79
97
@@ -104,5 +122,6 @@ clean:
104
122
deploy.pypi \
105
123
deploy.gh-docs \
106
124
deploy.docker \
125
+ deploy.pyinstaller.mac \
107
126
docker \
108
127
clean
0 commit comments