|
|
@@ -1,5 +1,5 @@
|
|
|
# Define the default target now so that it is always the first target
|
|
|
-BUILD_TARGETS = main quantize quantize-stats perplexity embedding vdot train-text-from-scratch simple server libembdinput.so embd-input-test
|
|
|
+BUILD_TARGETS = main quantize quantize-stats perplexity embedding vdot train-text-from-scratch simple server embd-input-test
|
|
|
|
|
|
default: $(BUILD_TARGETS)
|
|
|
|
|
|
@@ -90,6 +90,28 @@ ifeq ($(UNAME_S),Haiku)
|
|
|
CXXFLAGS += -pthread
|
|
|
endif
|
|
|
|
|
|
+# detect Windows
|
|
|
+ifneq ($(findstring _NT,$(UNAME_S)),)
|
|
|
+ _WIN32 := 1
|
|
|
+endif
|
|
|
+
|
|
|
+# library name prefix
|
|
|
+ifneq ($(_WIN32),1)
|
|
|
+ LIB_PRE := lib
|
|
|
+endif
|
|
|
+
|
|
|
+# Dynamic Shared Object extension
|
|
|
+ifneq ($(_WIN32),1)
|
|
|
+ DSO_EXT := .so
|
|
|
+else
|
|
|
+ DSO_EXT := .dll
|
|
|
+endif
|
|
|
+
|
|
|
+# Windows Sockets 2 (Winsock) for network-capable apps
|
|
|
+ifeq ($(_WIN32),1)
|
|
|
+ LWINSOCK2 := -lws2_32
|
|
|
+endif
|
|
|
+
|
|
|
ifdef LLAMA_GPROF
|
|
|
CFLAGS += -pg
|
|
|
CXXFLAGS += -pg
|
|
|
@@ -294,7 +316,7 @@ libllama.so: llama.o ggml.o $(OBJS)
|
|
|
$(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
|
|
|
|
|
|
clean:
|
|
|
- rm -vf *.o *.so main quantize quantize-stats perplexity embedding benchmark-matmult save-load-state server simple vdot train-text-from-scratch embd-input-test build-info.h
|
|
|
+ rm -vf *.o *.so *.dll main quantize quantize-stats perplexity embedding benchmark-matmult save-load-state server simple vdot train-text-from-scratch embd-input-test build-info.h
|
|
|
|
|
|
#
|
|
|
# Examples
|
|
|
@@ -325,14 +347,14 @@ save-load-state: examples/save-load-state/save-load-state.cpp build-info.h ggml.
|
|
|
$(CXX) $(CXXFLAGS) $(filter-out %.h,$^) -o $@ $(LDFLAGS)
|
|
|
|
|
|
server: examples/server/server.cpp examples/server/httplib.h examples/server/json.hpp build-info.h ggml.o llama.o common.o $(OBJS)
|
|
|
- $(CXX) $(CXXFLAGS) -Iexamples/server $(filter-out %.h,$(filter-out %.hpp,$^)) -o $@ $(LDFLAGS)
|
|
|
+ $(CXX) $(CXXFLAGS) -Iexamples/server $(filter-out %.h,$(filter-out %.hpp,$^)) -o $@ $(LDFLAGS) $(LWINSOCK2)
|
|
|
|
|
|
-libembdinput.so: examples/embd-input/embd-input.h examples/embd-input/embd-input-lib.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
|
|
+$(LIB_PRE)embdinput$(DSO_EXT): examples/embd-input/embd-input.h examples/embd-input/embd-input-lib.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
|
|
$(CXX) --shared $(CXXFLAGS) $(filter-out %.h,$(filter-out %.hpp,$^)) -o $@ $(LDFLAGS)
|
|
|
|
|
|
|
|
|
-embd-input-test: libembdinput.so examples/embd-input/embd-input-test.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
|
|
- $(CXX) $(CXXFLAGS) $(filter-out %.so,$(filter-out %.h,$(filter-out %.hpp,$^))) -o $@ $(LDFLAGS) -L. -lembdinput
|
|
|
+embd-input-test: $(LIB_PRE)embdinput$(DSO_EXT) examples/embd-input/embd-input-test.cpp build-info.h ggml.o llama.o common.o $(OBJS)
|
|
|
+ $(CXX) $(CXXFLAGS) $(filter-out %$(DSO_EXT),$(filter-out %.h,$(filter-out %.hpp,$^))) -o $@ $(LDFLAGS) -L. -lembdinput
|
|
|
|
|
|
train-text-from-scratch: examples/train-text-from-scratch/train-text-from-scratch.cpp build-info.h ggml.o llama.o $(OBJS)
|
|
|
$(CXX) $(CXXFLAGS) $(filter-out %.h,$^) -o $@ $(LDFLAGS)
|