1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- UPSTREAM=https://github.com/ggerganov/llama.cpp.git
- WORKDIR=llama/vendor
- FETCH_HEAD=46e3556e01b824e52395fb050b29804b6cff2a7c
- .PHONY: help
- help:
- @echo "Available targets:"
- @echo " sync Sync with upstream repositories"
- @echo " checkout Checkout upstream repository"
- @echo " apply-patches Apply patches to local repository"
- @echo " format-patches Format patches from local repository"
- @echo " clean Clean local repository"
- @echo
- @echo "Example:"
- @echo " make -f $(lastword $(MAKEFILE_LIST)) clean sync"
- .PHONY: sync
- sync: llama/llama.cpp ml/backend/ggml/ggml apply-patches
- .PHONY: llama/llama.cpp
- llama/llama.cpp: llama/vendor/ apply-patches
- rsync -arvzc -f "merge $@/.rsync-filter" $< $@
- .PHONY: ml/backend/ggml/ggml apply-patches
- ml/backend/ggml/ggml: llama/vendor/ggml/ apply-patches
- rsync -arvzc -f "merge $@/.rsync-filter" $< $@
- PATCHES=$(wildcard llama/patches/*.patch)
- .PHONY: apply-patches
- .NOTPARALLEL:
- apply-patches: $(addsuffix ed, $(PATCHES))
- %.patched: %.patch
- @if git -c user.name=nobody -c 'user.email=<>' -C $(WORKDIR) am -3 $(realpath $<); then touch $@; else git -C $(WORKDIR) am --abort; exit 1; fi
- .PHONY: checkout
- checkout: $(WORKDIR)
- git -C $(WORKDIR) fetch
- git -C $(WORKDIR) checkout -f $(FETCH_HEAD)
- $(WORKDIR):
- git clone $(UPSTREAM) $(WORKDIR)
- .PHONE: format-patches
- format-patches: llama/patches
- git -C $(WORKDIR) format-patch \
- --no-signature \
- --no-numbered \
- --zero-commit \
- -o $(realpath $<) \
- $(FETCH_HEAD)
- .PHONE: clean
- clean: checkout
- $(RM) $(addsuffix ed, $(PATCHES))
|