@@ -81,7 +81,9 @@ CFLAGS += -DLLAMA_USE_LLGUIDANCE
8181CXXFLAGS += -DLLAMA_USE_LLGUIDANCE
8282LDFLAGS += -Lllguidance/target/release -lllguidance
8383OBJS_FULL += llguidance.o
84- llguidance.o : common/llguidance.cpp
84+ llguidance :
85+ git clone --depth=1 --branch v1.2.0 https://github.com/guidance-ai/llguidance.git
86+ llguidance.o : common/llguidance.cpp llguidance
8587 cd llguidance && cargo build --release
8688 $(CXX ) $(CXXFLAGS ) -Illguidance/target/release -c $< -o $@
8789endif
@@ -316,17 +318,29 @@ ifdef LLAMA_METAL
316318CFLAGS += -DGGML_USE_METAL -DGGML_METAL_NDEBUG -DSD_USE_METAL
317319CXXFLAGS += -DGGML_USE_METAL -DSD_USE_METAL
318320LDFLAGS += -framework Foundation -framework Metal -framework MetalKit -framework MetalPerformanceShaders
319- OBJS += ggml-metal.o ggml-metal-common.o
321+ OBJS += ggml-metal.o ggml-metal-device.o ggml-metal-device-m.o ggml-metal-context-m.o ggml-metal- common.o ggml-metal-ops .o
320322
321323ggml-metal-common.o : ggml/src/ggml-metal/ggml-metal-common.cpp ggml/src/ggml-metal/ggml-metal-common.h
322324 $(CXX ) $(CXXFLAGS ) -c $< -o $@
323325
324- ggml-metal.o : ggml/src/ggml-metal/ggml-metal.m ggml/src/ggml-metal/ggml-metal-impl.h ggml/include/ggml-metal.h
326+ ggml-metal-ops.o : ggml/src/ggml-metal/ggml-metal-ops.cpp ggml/src/ggml-metal/ggml-metal-ops.h
327+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
328+
329+ ggml-metal.o : ggml/src/ggml-metal/ggml-metal.cpp
330+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
331+
332+ ggml-metal-device.o : ggml/src/ggml-metal/ggml-metal-device.cpp
333+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
334+
335+ ggml-metal-device-m.o : ggml/src/ggml-metal/ggml-metal-device.m ggml/src/ggml-metal/ggml-metal-impl.h ggml/include/ggml-metal.h
325336 @echo " == Preparing merged Metal file =="
326337 @sed -e ' /#include "ggml-common.h"/r ggml/src/ggml-common.h' -e ' /#include "ggml-common.h"/d' < ggml/src/ggml-metal/ggml-metal.metal > ggml/src/ggml-metal/ggml-metal-embed.metal.tmp
327338 @sed -e ' /#include "ggml-metal-impl.h"/r ggml/src/ggml-metal/ggml-metal-impl.h' -e ' /#include "ggml-metal-impl.h"/d' < ggml/src/ggml-metal/ggml-metal-embed.metal.tmp > ggml/src/ggml-metal/ggml-metal-merged.metal
328339 @cp ggml/src/ggml-metal/ggml-metal-merged.metal ./ggml-metal-merged.metal
329340 $(CC ) $(CFLAGS ) -c $< -o $@
341+
342+ ggml-metal-context-m.o : ggml/src/ggml-metal/ggml-metal-context.m ggml/src/ggml-metal/ggml-metal-impl.h ggml/include/ggml-metal.h
343+ $(CC ) $(CFLAGS ) -c $< -o $@
330344endif # LLAMA_METAL
331345
332346ifneq ($(filter aarch64% ,$(UNAME_M ) ) ,)
@@ -729,6 +743,7 @@ clean:
729743 rm -vf *.o main ttsmain sdmain whispermain quantize_gguf quantize_clip quantize_gpt2 quantize_gptj quantize_neox quantize_mpt vulkan-shaders-gen vulkan-shaders-gen-noext gguf-split mtmd-cli mainvk mainvk.exe mtmd-cli.exe gguf-split.exe vulkan-shaders-gen.exe vulkan-shaders-gen-noext.exe main.exe ttsmain.exe sdmain.exe whispermain.exe quantize_clip.exe quantize_gguf.exe quantize_gptj.exe quantize_gpt2.exe quantize_neox.exe quantize_mpt.exe koboldcpp_default.dll koboldcpp_failsafe.dll koboldcpp_noavx2.dll koboldcpp_clblast.dll koboldcpp_clblast_noavx2.dll koboldcpp_clblast_failsafe.dll koboldcpp_cublas.dll koboldcpp_hipblas.dll koboldcpp_vulkan.dll koboldcpp_vulkan_noavx2.dll koboldcpp_default.so koboldcpp_failsafe.so koboldcpp_noavx2.so koboldcpp_clblast.so koboldcpp_clblast_noavx2.so koboldcpp_clblast_failsafe.so koboldcpp_cublas.so koboldcpp_hipblas.so koboldcpp_vulkan.so koboldcpp_vulkan_noavx2.so ggml/src/ggml-vulkan-shaders.cpp ggml/src/ggml-vulkan-shaders.hpp ggml/src/ggml-vulkan-shaders-noext.cpp ggml/src/ggml-vulkan-shaders-noext.hpp
730744 rm -vrf ggml/src/ggml-cuda/* .o
731745 rm -vrf ggml/src/ggml-cuda/template-instances/* .o
746+ rm -vrf llguidance
732747
733748# useful tools
734749main : tools/main/main.cpp common/arg.cpp build-info.h ggml.o ggml-cpu.o ggml-ops.o ggml-vec.o ggml-binops.o ggml-unops.o llama.o console.o llavaclip_default.o llava.o ggml-backend_default.o ggml-backend-reg_default.o ggml-repack.o $(OBJS_FULL ) $(OBJS )
0 commit comments