Makefile2 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. UPSTREAM=https://github.com/ggerganov/llama.cpp.git
  2. WORKDIR=llama/vendor
  3. FETCH_HEAD=40c6d79fb52f995f47507fedfeaae2ac05d9b35c
  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 --delete -f "merge $@/.rsync-filter" $< $@
  10. rsync -arvzc --delete --include LICENSE --exclude $(WORKDIR) $@
  11. .PHONY: ml/backend/ggml/ggml apply_patches
  12. ml/backend/ggml/ggml: llama/vendor/ggml apply_patches
  13. rsync -arvzc --delete -f "merge $@/.rsync-filter" $< $@
  14. rsync -arvzc --delete --include LICENSE --exclude $(WORKDIR) $@
  15. PATCHES=$(wildcard llama/patches/*.patch)
  16. .PHONY: apply_patches
  17. .NOTPARALLEL:
  18. apply_patches: $(addsuffix ed, $(PATCHES))
  19. %.patched: %.patch
  20. if git -C $(WORKDIR) am -3 $(realpath $<); then touch $@; else git -C $(WORKDIR) am --abort; exit 1; fi
  21. .PHONY: checkout
  22. checkout: $(WORKDIR)
  23. git -C $(WORKDIR) fetch
  24. git -C $(WORKDIR) checkout -f $(FETCH_HEAD)
  25. $(WORKDIR):
  26. git clone $(UPSTREAM) $(WORKDIR)
  27. .PHONE: format_patches
  28. format_patches: llama/patches
  29. git -C $(WORKDIR) format-patch \
  30. --no-signature \
  31. --no-numbered \
  32. --zero-commit \
  33. -o $(realpath $<) \
  34. $(FETCH_HEAD)
  35. .PHONE: clean
  36. clean: checkout
  37. $(RM) $(addsuffix ed, $(PATCHES))