mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2025-01-12 19:50:17 +00:00
make : auto-determine dependencies (#0)
This commit is contained in:
parent
bcdb7a2386
commit
8ee0d09ae6
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,6 +3,7 @@
|
|||||||
*.a
|
*.a
|
||||||
*.bat
|
*.bat
|
||||||
*.bin
|
*.bin
|
||||||
|
*.d
|
||||||
*.dll
|
*.dll
|
||||||
*.dot
|
*.dot
|
||||||
*.etag
|
*.etag
|
||||||
|
411
Makefile
411
Makefile
@ -527,11 +527,11 @@ ifndef GGML_NO_ACCELERATE
|
|||||||
# Mac OS - include Accelerate framework.
|
# Mac OS - include Accelerate framework.
|
||||||
# `-framework Accelerate` works both with Apple Silicon and Mac Intel
|
# `-framework Accelerate` works both with Apple Silicon and Mac Intel
|
||||||
ifeq ($(UNAME_S),Darwin)
|
ifeq ($(UNAME_S),Darwin)
|
||||||
MK_CPPFLAGS += -DGGML_USE_ACCELERATE -DGGML_USE_BLAS -DGGML_BLAS_USE_ACCELERATE
|
MK_CPPFLAGS += -DGGML_USE_ACCELERATE -DGGML_USE_BLAS -DGGML_BLAS_USE_ACCELERATE
|
||||||
MK_CPPFLAGS += -DACCELERATE_NEW_LAPACK
|
MK_CPPFLAGS += -DACCELERATE_NEW_LAPACK
|
||||||
MK_CPPFLAGS += -DACCELERATE_LAPACK_ILP64
|
MK_CPPFLAGS += -DACCELERATE_LAPACK_ILP64
|
||||||
MK_LDFLAGS += -framework Accelerate
|
MK_LDFLAGS += -framework Accelerate
|
||||||
OBJ_GGML += ggml/src/ggml-blas/ggml-blas.o
|
OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o
|
||||||
endif
|
endif
|
||||||
endif # GGML_NO_ACCELERATE
|
endif # GGML_NO_ACCELERATE
|
||||||
|
|
||||||
@ -542,44 +542,44 @@ ifndef GGML_NO_OPENMP
|
|||||||
endif # GGML_NO_OPENMP
|
endif # GGML_NO_OPENMP
|
||||||
|
|
||||||
ifdef GGML_OPENBLAS
|
ifdef GGML_OPENBLAS
|
||||||
MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas)
|
MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas)
|
||||||
MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas)
|
MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas)
|
||||||
MK_LDFLAGS += $(shell pkg-config --libs openblas)
|
MK_LDFLAGS += $(shell pkg-config --libs openblas)
|
||||||
OBJ_GGML += ggml/src/ggml-blas/ggml-blas.o
|
OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o
|
||||||
endif # GGML_OPENBLAS
|
endif # GGML_OPENBLAS
|
||||||
|
|
||||||
ifdef GGML_OPENBLAS64
|
ifdef GGML_OPENBLAS64
|
||||||
MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas64)
|
MK_CPPFLAGS += -DGGML_USE_BLAS $(shell pkg-config --cflags-only-I openblas64)
|
||||||
MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas64)
|
MK_CFLAGS += $(shell pkg-config --cflags-only-other openblas64)
|
||||||
MK_LDFLAGS += $(shell pkg-config --libs openblas64)
|
MK_LDFLAGS += $(shell pkg-config --libs openblas64)
|
||||||
OBJ_GGML += ggml/src/ggml-blas/ggml-blas.o
|
OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o
|
||||||
endif # GGML_OPENBLAS64
|
endif # GGML_OPENBLAS64
|
||||||
|
|
||||||
ifdef GGML_BLIS
|
ifdef GGML_BLIS
|
||||||
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_BLIS -I/usr/local/include/blis -I/usr/include/blis
|
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_BLIS -I/usr/local/include/blis -I/usr/include/blis
|
||||||
MK_LDFLAGS += -lblis -L/usr/local/lib
|
MK_LDFLAGS += -lblis -L/usr/local/lib
|
||||||
OBJ_GGML += ggml/src/ggml-blas/ggml-blas.o
|
OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o
|
||||||
endif # GGML_BLIS
|
endif # GGML_BLIS
|
||||||
|
|
||||||
ifdef GGML_NVPL
|
ifdef GGML_NVPL
|
||||||
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_NVPL -DNVPL_ILP64 -I/usr/local/include/nvpl_blas -I/usr/include/nvpl_blas
|
MK_CPPFLAGS += -DGGML_USE_BLAS -DGGML_BLAS_USE_NVPL -DNVPL_ILP64 -I/usr/local/include/nvpl_blas -I/usr/include/nvpl_blas
|
||||||
MK_LDFLAGS += -L/usr/local/lib -lnvpl_blas_core -lnvpl_blas_ilp64_gomp
|
MK_LDFLAGS += -L/usr/local/lib -lnvpl_blas_core -lnvpl_blas_ilp64_gomp
|
||||||
OBJ_GGML += ggml/src/ggml-blas/ggml-blas.o
|
OBJ_GGML_EXT += ggml/src/ggml-blas/ggml-blas.o
|
||||||
endif # GGML_NVPL
|
endif # GGML_NVPL
|
||||||
|
|
||||||
ifndef GGML_NO_LLAMAFILE
|
ifndef GGML_NO_LLAMAFILE
|
||||||
MK_CPPFLAGS += -DGGML_USE_LLAMAFILE
|
MK_CPPFLAGS += -DGGML_USE_LLAMAFILE
|
||||||
OBJ_GGML += ggml/src/ggml-cpu/llamafile/sgemm.o
|
OBJ_GGML_EXT += ggml/src/ggml-cpu/llamafile/sgemm.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef GGML_NO_AMX
|
ifndef GGML_NO_AMX
|
||||||
MK_CPPFLAGS += -DGGML_USE_AMX
|
MK_CPPFLAGS += -DGGML_USE_AMX
|
||||||
OBJ_GGML += ggml/src/ggml-amx/ggml-amx.o ggml/src/ggml-amx/mmq.o
|
OBJ_GGML_EXT += ggml/src/ggml-amx/ggml-amx.o ggml/src/ggml-amx/mmq.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef GGML_RPC
|
ifdef GGML_RPC
|
||||||
MK_CPPFLAGS += -DGGML_USE_RPC
|
MK_CPPFLAGS += -DGGML_USE_RPC
|
||||||
OBJ_GGML += ggml/src/ggml-rpc.o
|
OBJ_GGML_EXT += ggml/src/ggml-rpc.o
|
||||||
endif # GGML_RPC
|
endif # GGML_RPC
|
||||||
|
|
||||||
OBJ_CUDA_TMPL = $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-wmma*.cu))
|
OBJ_CUDA_TMPL = $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/template-instances/fattn-wmma*.cu))
|
||||||
@ -604,9 +604,9 @@ ifdef GGML_CUDA
|
|||||||
MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib
|
MK_LDFLAGS += -lcuda -lcublas -lculibos -lcudart -lcublasLt -lpthread -ldl -lrt -L$(CUDA_PATH)/lib64 -L/usr/lib64 -L$(CUDA_PATH)/targets/$(UNAME_M)-linux/lib -L$(CUDA_PATH)/lib64/stubs -L/usr/lib/wsl/lib
|
||||||
MK_NVCCFLAGS += -use_fast_math
|
MK_NVCCFLAGS += -use_fast_math
|
||||||
|
|
||||||
OBJ_GGML += ggml/src/ggml-cuda/ggml-cuda.o
|
OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o
|
||||||
OBJ_GGML += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
||||||
OBJ_GGML += $(OBJ_CUDA_TMPL)
|
OBJ_GGML_EXT += $(OBJ_CUDA_TMPL)
|
||||||
|
|
||||||
ifdef LLAMA_FATAL_WARNINGS
|
ifdef LLAMA_FATAL_WARNINGS
|
||||||
MK_NVCCFLAGS += -Werror all-warnings
|
MK_NVCCFLAGS += -Werror all-warnings
|
||||||
@ -723,9 +723,9 @@ ggml/src/ggml-cuda/ggml-cuda.o: \
|
|||||||
endif # GGML_CUDA
|
endif # GGML_CUDA
|
||||||
|
|
||||||
ifdef GGML_VULKAN
|
ifdef GGML_VULKAN
|
||||||
MK_CPPFLAGS += -DGGML_USE_VULKAN
|
MK_CPPFLAGS += -DGGML_USE_VULKAN
|
||||||
MK_LDFLAGS += $(shell pkg-config --libs vulkan)
|
MK_LDFLAGS += $(shell pkg-config --libs vulkan)
|
||||||
OBJ_GGML += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o
|
OBJ_GGML_EXT += ggml/src/ggml-vulkan.o ggml/src/ggml-vulkan-shaders.o
|
||||||
|
|
||||||
ifdef GGML_VULKAN_CHECK_RESULTS
|
ifdef GGML_VULKAN_CHECK_RESULTS
|
||||||
MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS
|
MK_CPPFLAGS += -DGGML_VULKAN_CHECK_RESULTS
|
||||||
@ -821,9 +821,9 @@ ifdef GGML_CUDA_NO_PEER_COPY
|
|||||||
HIPFLAGS += -DGGML_CUDA_NO_PEER_COPY
|
HIPFLAGS += -DGGML_CUDA_NO_PEER_COPY
|
||||||
endif # GGML_CUDA_NO_PEER_COPY
|
endif # GGML_CUDA_NO_PEER_COPY
|
||||||
|
|
||||||
OBJ_GGML += ggml/src/ggml-cuda/ggml-cuda.o
|
OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o
|
||||||
OBJ_GGML += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
||||||
OBJ_GGML += $(OBJ_CUDA_TMPL)
|
OBJ_GGML_EXT += $(OBJ_CUDA_TMPL)
|
||||||
|
|
||||||
ggml/src/ggml-cuda/ggml-cuda.o: \
|
ggml/src/ggml-cuda/ggml-cuda.o: \
|
||||||
ggml/src/ggml-cuda/ggml-cuda.cu \
|
ggml/src/ggml-cuda/ggml-cuda.cu \
|
||||||
@ -922,9 +922,9 @@ ifdef GGML_CUDA_FA_ALL_QUANTS
|
|||||||
MUSAFLAGS += -DGGML_CUDA_FA_ALL_QUANTS
|
MUSAFLAGS += -DGGML_CUDA_FA_ALL_QUANTS
|
||||||
endif # GGML_CUDA_FA_ALL_QUANTS
|
endif # GGML_CUDA_FA_ALL_QUANTS
|
||||||
|
|
||||||
OBJ_GGML += ggml/src/ggml-cuda/ggml-cuda.o
|
OBJ_GGML_EXT += ggml/src/ggml-cuda/ggml-cuda.o
|
||||||
OBJ_GGML += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
OBJ_GGML_EXT += $(patsubst %.cu,%.o,$(wildcard ggml/src/ggml-cuda/*.cu))
|
||||||
OBJ_GGML += $(OBJ_CUDA_TMPL)
|
OBJ_GGML_EXT += $(OBJ_CUDA_TMPL)
|
||||||
|
|
||||||
ggml/src/ggml-cuda/ggml-cuda.o: \
|
ggml/src/ggml-cuda/ggml-cuda.o: \
|
||||||
ggml/src/ggml-cuda/ggml-cuda.cu \
|
ggml/src/ggml-cuda/ggml-cuda.cu \
|
||||||
@ -945,9 +945,9 @@ ggml/src/ggml-cuda/%.o: \
|
|||||||
endif # GGML_MUSA
|
endif # GGML_MUSA
|
||||||
|
|
||||||
ifdef GGML_METAL
|
ifdef GGML_METAL
|
||||||
MK_CPPFLAGS += -DGGML_USE_METAL
|
MK_CPPFLAGS += -DGGML_USE_METAL
|
||||||
MK_LDFLAGS += -framework Foundation -framework Metal -framework MetalKit
|
MK_LDFLAGS += -framework Foundation -framework Metal -framework MetalKit
|
||||||
OBJ_GGML += ggml/src/ggml-metal/ggml-metal.o
|
OBJ_GGML_EXT += ggml/src/ggml-metal/ggml-metal.o
|
||||||
|
|
||||||
ifdef GGML_METAL_USE_BF16
|
ifdef GGML_METAL_USE_BF16
|
||||||
MK_CPPFLAGS += -DGGML_METAL_USE_BF16
|
MK_CPPFLAGS += -DGGML_METAL_USE_BF16
|
||||||
@ -956,8 +956,8 @@ ifdef GGML_METAL_NDEBUG
|
|||||||
MK_CPPFLAGS += -DGGML_METAL_NDEBUG
|
MK_CPPFLAGS += -DGGML_METAL_NDEBUG
|
||||||
endif
|
endif
|
||||||
ifdef GGML_METAL_EMBED_LIBRARY
|
ifdef GGML_METAL_EMBED_LIBRARY
|
||||||
MK_CPPFLAGS += -DGGML_METAL_EMBED_LIBRARY
|
MK_CPPFLAGS += -DGGML_METAL_EMBED_LIBRARY
|
||||||
OBJ_GGML += ggml/src/ggml-metal-embed.o
|
OBJ_GGML_EXT += ggml/src/ggml-metal-embed.o
|
||||||
endif
|
endif
|
||||||
endif # GGML_METAL
|
endif # GGML_METAL
|
||||||
|
|
||||||
@ -987,36 +987,41 @@ ggml/src/ggml-metal-embed.o: \
|
|||||||
endif
|
endif
|
||||||
endif # GGML_METAL
|
endif # GGML_METAL
|
||||||
|
|
||||||
OBJ_GGML += \
|
DIR_GGML = ggml
|
||||||
ggml/src/ggml.o \
|
DIR_LLAMA = src
|
||||||
ggml/src/ggml-aarch64.o \
|
DIR_COMMON = common
|
||||||
ggml/src/ggml-alloc.o \
|
|
||||||
ggml/src/ggml-backend.o \
|
OBJ_GGML = \
|
||||||
ggml/src/ggml-backend-reg.o \
|
$(DIR_GGML)/src/ggml.o \
|
||||||
ggml/src/ggml-quants.o \
|
$(DIR_GGML)/src/ggml-aarch64.o \
|
||||||
ggml/src/ggml-threading.o \
|
$(DIR_GGML)/src/ggml-alloc.o \
|
||||||
ggml/src/ggml-cpu/ggml-cpu.o \
|
$(DIR_GGML)/src/ggml-backend.o \
|
||||||
ggml/src/ggml-cpu/ggml-cpu-cpp.o \
|
$(DIR_GGML)/src/ggml-backend-reg.o \
|
||||||
ggml/src/ggml-cpu/ggml-cpu-aarch64.o \
|
$(DIR_GGML)/src/ggml-quants.o \
|
||||||
ggml/src/ggml-cpu/ggml-cpu-quants.o
|
$(DIR_GGML)/src/ggml-threading.o \
|
||||||
|
$(DIR_GGML)/src/ggml-cpu/ggml-cpu.o \
|
||||||
|
$(DIR_GGML)/src/ggml-cpu/ggml-cpu-cpp.o \
|
||||||
|
$(DIR_GGML)/src/ggml-cpu/ggml-cpu-aarch64.o \
|
||||||
|
$(DIR_GGML)/src/ggml-cpu/ggml-cpu-quants.o \
|
||||||
|
$(OBJ_GGML_EXT)
|
||||||
|
|
||||||
OBJ_LLAMA = \
|
OBJ_LLAMA = \
|
||||||
src/llama.o \
|
$(DIR_LLAMA)/llama.o \
|
||||||
src/llama-vocab.o \
|
$(DIR_LLAMA)/llama-vocab.o \
|
||||||
src/llama-grammar.o \
|
$(DIR_LLAMA)/llama-grammar.o \
|
||||||
src/llama-sampling.o \
|
$(DIR_LLAMA)/llama-sampling.o \
|
||||||
src/unicode.o \
|
$(DIR_LLAMA)/unicode.o \
|
||||||
src/unicode-data.o
|
$(DIR_LLAMA)/unicode-data.o
|
||||||
|
|
||||||
OBJ_COMMON = \
|
OBJ_COMMON = \
|
||||||
common/common.o \
|
$(DIR_COMMON)/common.o \
|
||||||
common/arg.o \
|
$(DIR_COMMON)/arg.o \
|
||||||
common/log.o \
|
$(DIR_COMMON)/log.o \
|
||||||
common/console.o \
|
$(DIR_COMMON)/console.o \
|
||||||
common/ngram-cache.o \
|
$(DIR_COMMON)/ngram-cache.o \
|
||||||
common/sampling.o \
|
$(DIR_COMMON)/sampling.o \
|
||||||
common/build-info.o \
|
$(DIR_COMMON)/build-info.o \
|
||||||
common/json-schema-to-grammar.o
|
$(DIR_COMMON)/json-schema-to-grammar.o
|
||||||
|
|
||||||
OBJ_ALL = $(OBJ_GGML) $(OBJ_LLAMA) $(OBJ_COMMON)
|
OBJ_ALL = $(OBJ_GGML) $(OBJ_LLAMA) $(OBJ_COMMON)
|
||||||
|
|
||||||
@ -1117,246 +1122,78 @@ endif
|
|||||||
# Build libraries
|
# Build libraries
|
||||||
#
|
#
|
||||||
|
|
||||||
# ggml
|
# Libraries
|
||||||
|
LIB_GGML = libggml.so
|
||||||
|
LIB_GGML_S = libggml.a
|
||||||
|
|
||||||
ggml/src/ggml.o: \
|
LIB_LLAMA = libllama.so
|
||||||
ggml/src/ggml.c \
|
LIB_LLAMA_S = libllama.a
|
||||||
ggml/include/ggml.h
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-threading.o: \
|
LIB_COMMON = libcommon.so
|
||||||
ggml/src/ggml-threading.cpp \
|
LIB_COMMON_S = libcommon.a
|
||||||
ggml/include/ggml.h
|
|
||||||
$(CXX) $(XXCFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-cpu/ggml-cpu.o: \
|
# Targets
|
||||||
ggml/src/ggml-cpu/ggml-cpu.c \
|
BUILD_TARGETS += $(LIB_GGML) $(LIB_GGML_S) $(LIB_LLAMA) $(LIB_LLAMA_S) $(LIB_COMMON) $(LIB_COMMON_S)
|
||||||
ggml/include/ggml.h \
|
|
||||||
ggml/src/ggml-common.h
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-cpu/ggml-cpu-cpp.o: \
|
# Dependency files
|
||||||
|
DEP_FILES = $(OBJ_GGML:.o=.d) $(OBJ_LLAMA:.o=.d) $(OBJ_COMMON:.o=.d)
|
||||||
|
|
||||||
|
# Default target
|
||||||
|
all: $(BUILD_TARGETS)
|
||||||
|
|
||||||
|
# Note: need this exception because `ggml-cpu.c` and `ggml-cpu.cpp` both produce the same obj/dep files
|
||||||
|
# g++ -M -I ./ggml/include/ -I ./ggml/src ggml/src/ggml-cpu/ggml-cpu.cpp | grep ggml
|
||||||
|
$(DIR_GGML)/src/ggml-cpu/ggml-cpu-cpp.o: \
|
||||||
ggml/src/ggml-cpu/ggml-cpu.cpp \
|
ggml/src/ggml-cpu/ggml-cpu.cpp \
|
||||||
ggml/include/ggml.h \
|
ggml/include/ggml-backend.h \
|
||||||
ggml/src/ggml-common.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-alloc.o: \
|
|
||||||
ggml/src/ggml-alloc.c \
|
|
||||||
ggml/include/ggml.h \
|
|
||||||
ggml/include/ggml-alloc.h
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-backend.o: \
|
|
||||||
ggml/src/ggml-backend.cpp \
|
|
||||||
ggml/src/ggml-backend-impl.h \
|
|
||||||
ggml/include/ggml.h \
|
|
||||||
ggml/include/ggml-backend.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-quants.o: \
|
|
||||||
ggml/src/ggml-quants.c \
|
|
||||||
ggml/include/ggml.h \
|
|
||||||
ggml/src/ggml-quants.h \
|
|
||||||
ggml/src/ggml-common.h
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-aarch64.o: \
|
|
||||||
ggml/src/ggml-aarch64.c \
|
|
||||||
ggml/include/ggml.h \
|
|
||||||
ggml/src/ggml-aarch64.h \
|
|
||||||
ggml/src/ggml-common.h
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-blas/ggml-blas.o: \
|
|
||||||
ggml/src/ggml-blas/ggml-blas.cpp \
|
|
||||||
ggml/include/ggml-blas.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ifndef GGML_NO_LLAMAFILE
|
|
||||||
ggml/src/ggml-cpu/llamafile/sgemm.o: \
|
|
||||||
ggml/src/ggml-cpu/llamafile/sgemm.cpp \
|
|
||||||
ggml/src/ggml-cpu/llamafile/sgemm.h \
|
|
||||||
ggml/include/ggml.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@ -I ggml/src -I ggml/src/ggml-cpu
|
|
||||||
endif # GGML_NO_LLAMAFILE
|
|
||||||
|
|
||||||
ifndef GGML_NO_AMX
|
|
||||||
ggml/src/ggml-amx/ggml-amx.o: \
|
|
||||||
ggml/src/ggml-amx/ggml-amx.cpp \
|
|
||||||
ggml/include/ggml-amx.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
ggml/src/ggml-amx/mmq.o: \
|
|
||||||
ggml/src/ggml-amx/mmq.cpp \
|
|
||||||
ggml/src/ggml-amx/mmq.h \
|
|
||||||
ggml/include/ggml.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef GGML_RPC
|
|
||||||
ggml/src/ggml-rpc.o: \
|
|
||||||
ggml/src/ggml-rpc.cpp \
|
|
||||||
ggml/include/ggml-rpc.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
endif # GGML_RPC
|
|
||||||
|
|
||||||
$(LIB_GGML): \
|
|
||||||
$(OBJ_GGML)
|
|
||||||
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
|
||||||
|
|
||||||
$(LIB_GGML_S): \
|
|
||||||
$(OBJ_GGML)
|
|
||||||
ar rcs $(LIB_GGML_S) $^
|
|
||||||
|
|
||||||
# llama
|
|
||||||
|
|
||||||
src/unicode.o: \
|
|
||||||
src/unicode.cpp \
|
|
||||||
src/unicode.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
src/unicode-data.o: \
|
|
||||||
src/unicode-data.cpp \
|
|
||||||
src/unicode-data.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
src/llama.o: \
|
|
||||||
src/llama.cpp \
|
|
||||||
src/llama-impl.h \
|
|
||||||
src/llama-vocab.h \
|
|
||||||
src/llama-grammar.h \
|
|
||||||
src/llama-sampling.h \
|
|
||||||
src/unicode.h \
|
|
||||||
include/llama.h \
|
|
||||||
ggml/include/ggml-cuda.h \
|
|
||||||
ggml/include/ggml-metal.h \
|
|
||||||
ggml/include/ggml.h \
|
ggml/include/ggml.h \
|
||||||
ggml/include/ggml-alloc.h \
|
ggml/include/ggml-alloc.h \
|
||||||
ggml/include/ggml-backend.h
|
ggml/src/ggml-backend-impl.h \
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
ggml/include/ggml-cpu.h \
|
||||||
|
ggml/src/ggml-impl.h
|
||||||
|
$(CXX) $(CXXFLAGS) -c $< -o $@
|
||||||
|
|
||||||
src/llama-vocab.o: \
|
# Rules for building object files
|
||||||
src/llama-vocab.cpp \
|
$(DIR_GGML)/%.o: $(DIR_GGML)/%.c
|
||||||
src/llama-vocab.h \
|
$(CC) $(CFLAGS) -MMD -c $< -o $@
|
||||||
src/llama-impl.h \
|
|
||||||
include/llama.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
src/llama-grammar.o: \
|
$(DIR_GGML)/%.o: $(DIR_GGML)/%.cpp
|
||||||
src/llama-grammar.cpp \
|
$(CXX) $(CXXFLAGS) -MMD -c $< -o $@
|
||||||
src/llama-grammar.h \
|
|
||||||
src/llama-impl.h \
|
|
||||||
src/llama-vocab.h \
|
|
||||||
src/llama-sampling.h \
|
|
||||||
include/llama.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
src/llama-sampling.o: \
|
$(DIR_LLAMA)/%.o: $(DIR_LLAMA)/%.cpp
|
||||||
src/llama-sampling.cpp \
|
$(CXX) $(CXXFLAGS) -MMD -c $< -o $@
|
||||||
src/llama-sampling.h \
|
|
||||||
src/llama-impl.h \
|
|
||||||
include/llama.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(LIB_LLAMA): \
|
$(DIR_COMMON)/%.o: $(DIR_COMMON)/%.cpp
|
||||||
$(OBJ_LLAMA) \
|
$(CXX) $(CXXFLAGS) -MMD -c $< -o $@
|
||||||
$(LIB_GGML)
|
|
||||||
|
# Rules for building libraries
|
||||||
|
$(LIB_GGML): $(OBJ_GGML)
|
||||||
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
$(LIB_LLAMA_S): \
|
$(LIB_GGML_S): $(OBJ_GGML)
|
||||||
$(OBJ_LLAMA)
|
ar rcs $(LIB_GGML_S) $^
|
||||||
|
|
||||||
|
$(LIB_LLAMA): $(OBJ_LLAMA) $(LIB_GGML)
|
||||||
|
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
|
$(LIB_LLAMA_S): $(OBJ_LLAMA)
|
||||||
ar rcs $(LIB_LLAMA_S) $^
|
ar rcs $(LIB_LLAMA_S) $^
|
||||||
|
|
||||||
# common
|
$(LIB_COMMON): $(OBJ_COMMON) $(LIB_LLAMA) $(LIB_GGML)
|
||||||
|
|
||||||
common/common.o: \
|
|
||||||
common/common.cpp \
|
|
||||||
common/common.h \
|
|
||||||
common/console.h \
|
|
||||||
common/sampling.h \
|
|
||||||
common/json.hpp \
|
|
||||||
common/json-schema-to-grammar.h \
|
|
||||||
include/llama.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/arg.o: \
|
|
||||||
common/arg.cpp \
|
|
||||||
common/arg.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/log.o: \
|
|
||||||
common/log.cpp \
|
|
||||||
common/log.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/sampling.o: \
|
|
||||||
common/sampling.cpp \
|
|
||||||
common/sampling.h \
|
|
||||||
include/llama.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/console.o: \
|
|
||||||
common/console.cpp \
|
|
||||||
common/console.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/json-schema-to-grammar.o: \
|
|
||||||
common/json-schema-to-grammar.cpp \
|
|
||||||
common/json-schema-to-grammar.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
common/ngram-cache.o: \
|
|
||||||
common/ngram-cache.cpp \
|
|
||||||
common/ngram-cache.h
|
|
||||||
$(CXX) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
$(LIB_COMMON): \
|
|
||||||
$(OBJ_COMMON) \
|
|
||||||
$(LIB_LLAMA) \
|
|
||||||
$(LIB_GGML)
|
|
||||||
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
||||||
|
|
||||||
$(LIB_COMMON_S): \
|
$(LIB_COMMON_S): $(OBJ_COMMON)
|
||||||
$(OBJ_COMMON)
|
|
||||||
ar rcs $(LIB_COMMON_S) $^
|
ar rcs $(LIB_COMMON_S) $^
|
||||||
|
|
||||||
|
# Include dependency files
|
||||||
|
-include $(DEP_FILES)
|
||||||
|
|
||||||
|
# Clean rule
|
||||||
clean:
|
clean:
|
||||||
rm -vrf *.dot $(BUILD_TARGETS) $(TEST_TARGETS)
|
rm -vrf $(BUILD_TARGETS) $(TEST_TARGETS)
|
||||||
rm -rvf src/*.o
|
rm -rvf *.a *.dll *.so *.dot
|
||||||
rm -rvf tests/*.o
|
find ggml src common tests examples pocs -type f -name "*.o" -delete
|
||||||
rm -rvf examples/*.o
|
find ggml src common tests examples pocs -type f -name "*.d" -delete
|
||||||
rm -rvf common/*.o
|
|
||||||
rm -rvf *.a
|
|
||||||
rm -rvf *.dll
|
|
||||||
rm -rvf *.so
|
|
||||||
rm -rvf *.dot
|
|
||||||
rm -rvf ggml/*.a
|
|
||||||
rm -rvf ggml/*.dll
|
|
||||||
rm -rvf ggml/*.so
|
|
||||||
rm -rvf ggml/src/*.o
|
|
||||||
rm -rvf common/build-info.cpp
|
|
||||||
rm -rvf ggml/src/ggml-cpu/*.o
|
|
||||||
rm -rvf ggml/src/ggml-cpu/llamafile/*.o
|
|
||||||
rm -vrf ggml/src/ggml-amx/*.o
|
|
||||||
rm -vrf ggml/src/ggml-blas/*.o
|
|
||||||
rm -vrf ggml/src/ggml-cann/*.o
|
|
||||||
rm -vrf ggml/src/ggml-cpu/*.o
|
|
||||||
rm -vrf ggml/src/ggml-cuda/*.o
|
|
||||||
rm -vrf ggml/src/ggml-cuda/template-instances/*.o
|
|
||||||
rm -vrf ggml/src/ggml-hip/*.o
|
|
||||||
rm -vrf ggml/src/ggml-kompute/*.o
|
|
||||||
rm -vrf ggml/src/ggml-metal/*.o
|
|
||||||
rm -vrf ggml/src/ggml-metal/ggml-metal-embed.metal
|
|
||||||
rm -vrf ggml/src/ggml-rpc/*.o
|
|
||||||
rm -vrf ggml/src/ggml-sycl/*.o
|
|
||||||
rm -vrf ggml/src/ggml-vulkan/*.o
|
|
||||||
rm -vrf ggml/src/ggml-musa/*.o
|
|
||||||
rm -rvf $(BUILD_TARGETS)
|
|
||||||
rm -rvf $(TEST_TARGETS)
|
|
||||||
rm -f vulkan-shaders-gen ggml/src/ggml-vulkan-shaders.hpp ggml/src/ggml-vulkan-shaders.cpp
|
|
||||||
rm -rvf $(LEGACY_TARGETS_CLEAN)
|
|
||||||
find examples pocs -type f -name "*.o" -delete
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Examples
|
# Examples
|
||||||
|
Loading…
Reference in New Issue
Block a user