@@ -102,6 +102,12 @@ ARCH = -march=native -mtune=native
102102TMP = o/
103103endif
104104
105+ # ggmlsrc_f = base/ggml
106+ # llamacpp_f = base/llamacpp
107+ ggmlsrc_f = base/ggml_llamacpp
108+ llamacpp_f = base/ggml_llamacpp
109+
110+
105111# IMGUI_DIR = imgui
106112IMGUI_DIR = imgui_f6836ff
107113SOURCES = main.cpp
@@ -146,6 +152,7 @@ OBJS += $(TMP)tinyfiledialogs/tinyfiledialogs.o
146152
147153FILE_D = -Itinyfiledialogs
148154I_GGUF = -I. -Ibase -Iinclude
155+ I_GGUF_TEST = -I. -Ibase/ggml_llamacpp -Iinclude
149156I_GGUF_PRE = -I. -Ipre_backend -Iinclude
150157I_GGML = -Iggml -Iinclude
151158
@@ -531,7 +538,222 @@ $(TMP)sgemm.o: base/sgemm.cpp base/sgemm.h base/ggml.h
531538$(TMP ) grammar-parser.o : base/grammar-parser.cpp base/grammar-parser.h
532539 $(CXX ) $(CXXFLAGS ) -c $< -o $@
533540
541+ # ########### Test #################
542+
543+ GGUF_TEST_F = base/ggml_llamacpp
544+
545+ OBJS_GGUF_TEST = \
546+ $(TMP ) t_ggml.o \
547+ $(TMP ) t_ggml-alloc.o \
548+ $(TMP ) t_ggml-backend.o \
549+ $(TMP ) t_ggml-aarch64.o \
550+ $(TMP ) t_llama.o \
551+ $(TMP ) t_llama-vocab.o \
552+ $(TMP ) t_llama-grammar.o \
553+ $(TMP ) t_llama-sampling.o \
554+ $(TMP ) t_llama-addon.o \
555+ $(TMP ) t_sampling.o \
556+ $(TMP ) t_common.o \
557+ $(TMP ) t_ggml-quants.o \
558+ $(TMP ) t_grammar-parser.o \
559+ $(TMP ) t_unicode.o \
560+ $(TMP ) t_unicode-data.o \
561+ $(TMP ) t_sgemm.o
562+
563+ $(TMP ) tinyfiledialogs/tinyfiledialogs.o : tinyfiledialogs/tinyfiledialogs.c tinyfiledialogs/tinyfiledialogs.h
564+ $(CC ) $(CFLAGS ) -c $< -o $@
565+
566+ $(TMP ) t_ggml.o : $(ggmlsrc_f ) /ggml.c $(ggmlsrc_f ) /ggml.h
567+ $(CC ) $(CFLAGS ) -c $< -o $@
568+
569+ $(TMP ) t_ggml-alloc.o : $(ggmlsrc_f ) /ggml-alloc.c $(ggmlsrc_f ) /ggml.h $(ggmlsrc_f ) /ggml-alloc.h
570+ $(CC ) $(CFLAGS ) -c $< -o $@
571+
572+ $(TMP ) t_ggml-backend.o : $(ggmlsrc_f ) /ggml-backend.c $(ggmlsrc_f ) /ggml.h $(ggmlsrc_f ) /ggml-backend.h
573+ $(CC ) $(CFLAGS ) -c $< -o $@
574+
575+ $(TMP ) t_ggml-quants.o : \
576+ $(ggmlsrc_f ) /ggml-quants.c \
577+ $(ggmlsrc_f ) /ggml.h \
578+ $(ggmlsrc_f ) /ggml-quants.h \
579+ $(ggmlsrc_f ) /ggml-common.h
580+ $(CC ) $(CFLAGS ) -c $< -o $@
581+
582+ $(TMP ) t_ggml-aarch64.o : \
583+ $(ggmlsrc_f ) /ggml-aarch64.c \
584+ $(ggmlsrc_f ) /ggml.h \
585+ $(ggmlsrc_f ) /ggml-aarch64.h \
586+ $(ggmlsrc_f ) /ggml-common.h
587+ $(CC ) $(CFLAGS ) -c $< -o $@
588+
589+ $(TMP ) t_sgemm.o : $(llamacpp_f ) /sgemm.cpp $(llamacpp_f ) /sgemm.h $(ggmlsrc_f ) /ggml.h
590+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
591+
592+ $(TMP ) t_unicode.o : $(llamacpp_f ) /unicode.cpp $(llamacpp_f ) /unicode.h
593+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
594+
595+ $(TMP ) t_unicode-data.o : $(llamacpp_f ) /unicode-data.cpp $(llamacpp_f ) /unicode-data.h
596+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
597+
598+ $(TMP ) t_llama.o : $(llamacpp_f ) /llama.cpp \
599+ $(llamacpp_f ) /llama-impl.h \
600+ $(llamacpp_f ) /llama-vocab.h \
601+ $(llamacpp_f ) /llama-grammar.h \
602+ $(llamacpp_f ) /llama-sampling.h \
603+ $(llamacpp_f ) /unicode.h \
604+ $(llamacpp_f ) /llama.h \
605+ $(ggmlsrc_f ) /ggml.h \
606+ $(ggmlsrc_f ) /ggml-alloc.h \
607+ $(ggmlsrc_f ) /ggml-backend.h
608+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
609+
610+ $(TMP ) t_llama-vocab.o : \
611+ $(llamacpp_f ) /llama-vocab.cpp \
612+ $(llamacpp_f ) /llama-vocab.h \
613+ $(llamacpp_f ) /llama-impl.h \
614+ $(llamacpp_f ) /llama.h
615+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
616+
617+ $(TMP ) t_llama-grammar.o : \
618+ $(llamacpp_f ) /llama-grammar.cpp \
619+ $(llamacpp_f ) /llama-grammar.h \
620+ $(llamacpp_f ) /llama-impl.h \
621+ $(llamacpp_f ) /llama-vocab.h \
622+ $(llamacpp_f ) /llama-sampling.h \
623+ $(llamacpp_f ) /llama.h
624+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
625+
626+ $(TMP ) t_llama-sampling.o : \
627+ $(llamacpp_f ) /llama-sampling.cpp \
628+ $(llamacpp_f ) /llama-sampling.h \
629+ $(llamacpp_f ) /llama-impl.h \
630+ $(llamacpp_f ) /llama.h
631+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
534632
633+ COMMON_H_DEPS = $(GGUF_TEST_F ) /common.h $(GGUF_TEST_F ) /sampling.h $(GGUF_TEST_F ) /llama-addon.h $(llamacpp_f ) /llama.h
634+ COMMON_DEPS = $(TMP ) common.o $(TMP ) sampling.o $(TMP ) grammar-parser.o
635+
636+ $(TMP ) t_common.o : $(GGUF_TEST_F ) /common.cpp $(COMMON_H_DEPS )
637+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
638+
639+ $(TMP ) t_sampling.o : $(GGUF_TEST_F ) /sampling.cpp $(COMMON_H_DEPS )
640+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
641+
642+ $(TMP ) t_llama-addon.o : $(GGUF_TEST_F ) /llama-addon.cpp $(COMMON_H_DEPS )
643+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
644+
645+ $(TMP ) t_grammar-parser.o : $(GGUF_TEST_F ) /grammar-parser.cpp $(GGUF_TEST_F ) /grammar-parser.h
646+ $(CXX ) $(CXXFLAGS ) -c $< -o $@
647+
648+ # test CLBLAST
649+
650+ GGUF_TEST_F = base/ggml_llamacpp
651+
652+ OBJS_GGUF_TEST_CL = \
653+ $(TMP ) clt_ggml.o \
654+ $(TMP ) clt_ggml-alloc.o \
655+ $(TMP ) clt_ggml-backend.o \
656+ $(TMP ) clt_ggml-aarch64.o \
657+ $(TMP ) clt_ggml-opencl-gguf.o \
658+ $(TMP ) clt_llama.o \
659+ $(TMP ) clt_llama-vocab.o \
660+ $(TMP ) clt_llama-grammar.o \
661+ $(TMP ) clt_llama-sampling.o \
662+ $(TMP ) clt_llama-addon.o \
663+ $(TMP ) clt_sampling.o \
664+ $(TMP ) clt_common.o \
665+ $(TMP ) clt_ggml-quants.o \
666+ $(TMP ) clt_grammar-parser.o \
667+ $(TMP ) clt_unicode.o \
668+ $(TMP ) clt_unicode-data.o \
669+ $(TMP ) clt_sgemm.o
670+
671+ $(TMP ) clt_ggml-opencl-gguf.o : base/ggml-opencl.cpp base/ggml-opencl.h
672+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
673+
674+ $(TMP ) clt_ggml.o : $(ggmlsrc_f ) /ggml.c $(ggmlsrc_f ) /ggml.h
675+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
676+
677+ $(TMP ) clt_ggml-alloc.o : $(ggmlsrc_f ) /ggml-alloc.c $(ggmlsrc_f ) /ggml.h $(ggmlsrc_f ) /ggml-alloc.h
678+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
679+
680+ $(TMP ) clt_ggml-backend.o : $(ggmlsrc_f ) /ggml-backend.c $(ggmlsrc_f ) /ggml.h $(ggmlsrc_f ) /ggml-backend.h
681+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
682+
683+ $(TMP ) clt_ggml-quants.o : \
684+ $(ggmlsrc_f ) /ggml-quants.c \
685+ $(ggmlsrc_f ) /ggml.h \
686+ $(ggmlsrc_f ) /ggml-quants.h \
687+ $(ggmlsrc_f ) /ggml-common.h
688+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
689+
690+ $(TMP ) clt_ggml-aarch64.o : \
691+ $(ggmlsrc_f ) /ggml-aarch64.c \
692+ $(ggmlsrc_f ) /ggml.h \
693+ $(ggmlsrc_f ) /ggml-aarch64.h \
694+ $(ggmlsrc_f ) /ggml-common.h
695+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
696+
697+ $(TMP ) clt_sgemm.o : $(llamacpp_f ) /sgemm.cpp $(llamacpp_f ) /sgemm.h $(ggmlsrc_f ) /ggml.h
698+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
699+
700+ $(TMP ) clt_unicode.o : $(llamacpp_f ) /unicode.cpp $(llamacpp_f ) /unicode.h
701+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
702+
703+ $(TMP ) clt_unicode-data.o : $(llamacpp_f ) /unicode-data.cpp $(llamacpp_f ) /unicode-data.h
704+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
705+
706+ $(TMP ) clt_llama.o : $(llamacpp_f ) /llama.cpp \
707+ $(llamacpp_f ) /llama-impl.h \
708+ $(llamacpp_f ) /llama-vocab.h \
709+ $(llamacpp_f ) /llama-grammar.h \
710+ $(llamacpp_f ) /llama-sampling.h \
711+ $(llamacpp_f ) /unicode.h \
712+ $(llamacpp_f ) /llama.h \
713+ $(ggmlsrc_f ) /ggml.h \
714+ $(ggmlsrc_f ) /ggml-alloc.h \
715+ $(ggmlsrc_f ) /ggml-backend.h
716+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
717+
718+ $(TMP ) clt_llama-vocab.o : \
719+ $(llamacpp_f ) /llama-vocab.cpp \
720+ $(llamacpp_f ) /llama-vocab.h \
721+ $(llamacpp_f ) /llama-impl.h \
722+ $(llamacpp_f ) /llama.h
723+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
724+
725+ $(TMP ) clt_llama-grammar.o : \
726+ $(llamacpp_f ) /llama-grammar.cpp \
727+ $(llamacpp_f ) /llama-grammar.h \
728+ $(llamacpp_f ) /llama-impl.h \
729+ $(llamacpp_f ) /llama-vocab.h \
730+ $(llamacpp_f ) /llama-sampling.h \
731+ $(llamacpp_f ) /llama.h
732+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
733+
734+ $(TMP ) clt_llama-sampling.o : \
735+ $(llamacpp_f ) /llama-sampling.cpp \
736+ $(llamacpp_f ) /llama-sampling.h \
737+ $(llamacpp_f ) /llama-impl.h \
738+ $(llamacpp_f ) /llama.h
739+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
740+
741+ COMMON_H_DEPS = $(GGUF_TEST_F ) /common.h $(GGUF_TEST_F ) /sampling.h $(GGUF_TEST_F ) /llama-addon.h $(llamacpp_f ) /llama.h
742+ COMMON_DEPS = $(TMP ) common.o $(TMP ) sampling.o $(TMP ) grammar-parser.o
743+
744+ $(TMP ) clt_common.o : $(GGUF_TEST_F ) /common.cpp $(COMMON_H_DEPS )
745+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
746+
747+ $(TMP ) clt_sampling.o : $(GGUF_TEST_F ) /sampling.cpp $(COMMON_H_DEPS )
748+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
749+
750+ $(TMP ) clt_llama-addon.o : $(GGUF_TEST_F ) /llama-addon.cpp $(COMMON_H_DEPS )
751+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
752+
753+ $(TMP ) clt_grammar-parser.o : $(GGUF_TEST_F ) /grammar-parser.cpp $(GGUF_TEST_F ) /grammar-parser.h
754+ $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
755+
756+ # ##########################################################################
535757# Separate CLBLAST
536758
537759# Mac provides OpenCL as a framework
@@ -566,7 +788,7 @@ $(TMP)cl_ggml-backend.o: base/ggml-backend.c base/ggml.h base/ggml-backend.h
566788 $(CC ) $(CFLAGS_CL ) -c $< -o $@
567789
568790$(TMP ) cl_ggml-quants.o : base/ggml-quants.c base/ggml.h base/ggml-quants.h base/ggml-common.h
569- $(CC ) $(CFLAGS ) -c $< -o $@
791+ $(CC ) $(CFLAGS_CL ) -c $< -o $@
570792
571793$(TMP ) cl_unicode.o : base/unicode.cpp base/unicode.h
572794 $(CXX ) $(CXXFLAGS_CL ) -c $< -o $@
@@ -766,6 +988,14 @@ $(EXE)_mini: $(OBJS) $(OBJS_GGUF) chat_plain.h thread_chat.h UI_simple.h llama_c
766988chatTest :class_chat.cpp $(OBJS_GGUF ) chat_plain.h thread_chat.h
767989 $(CXX ) $(I_GGUF ) $(CXXFLAGS ) $(filter-out % .h,$^ ) $(LDFLAGS ) -o $@
768990
991+ # test
992+
993+ chatTest_t :class_chat.cpp $(OBJS_GGUF_TEST ) chat_plain.h thread_chat.h
994+ $(CXX ) $(I_GGUF_TEST ) $(CXXFLAGS ) $(filter-out % .h,$^ ) $(LDFLAGS ) -o $@
995+
996+ chatTest_clt :class_chat.cpp chat_plain.h thread_chat.h $(OBJS_GGUF_TEST_CL )
997+ $(CXX ) $(I_GGUF_TEST ) $(filter-out % .h,$^ ) -o $@ $(CXXFLAGS_CL )
998+
769999# CLBLAST
7701000
7711001$(EXE_CL ) : $(OBJS ) $(OBJS_GGUF_CL ) chat_plain.h thread_chat.h UI.h llama_chat1.res
0 commit comments