Makefile2 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. UPSTREAM=https://github.com/ggerganov/llama.cpp.git
  2. WORKDIR=llama/vendor
  3. FETCH_HEAD=46e3556e01b824e52395fb050b29804b6cff2a7c
  4. all: sync
  5. .PHONY: sync
  6. sync: llama/llama.cpp ml/backend/ggml/ggml
  7. .PHONY: llama/llama.cpp
  8. llama/llama.cpp: llama/vendor/ apply_patches
  9. rsync -arvzc -f "merge $@/.rsync-filter" $< $@
  10. .PHONY: ml/backend/ggml/ggml apply_patches
  11. ml/backend/ggml/ggml: llama/vendor/ggml/ apply_patches
  12. rsync -arvzc -f "merge $@/.rsync-filter" $< $@
  13. PATCHES=$(wildcard llama/patches/*.patch)
  14. .PHONY: apply_patches
  15. .NOTPARALLEL:
  16. apply_patches: $(addsuffix ed, $(PATCHES))
  17. %.patched: %.patch
  18. @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
  19. .PHONY: checkout
  20. checkout: $(WORKDIR)
  21. git -C $(WORKDIR) fetch
  22. git -C $(WORKDIR) checkout -f $(FETCH_HEAD)
  23. $(WORKDIR):
  24. git clone $(UPSTREAM) $(WORKDIR)
  25. .PHONE: format_patches
  26. format_patches: llama/patches
  27. git -C $(WORKDIR) format-patch \
  28. --no-signature \
  29. --no-numbered \
  30. --zero-commit \
  31. -o $(realpath $<) \
  32. $(FETCH_HEAD)
  33. .PHONE: clean
  34. clean: checkout
  35. $(RM) $(addsuffix ed, $(PATCHES))