From 39fdcb0c57bfeba598f00d77f190e731f26b25a1 Mon Sep 17 00:00:00 2001
From: sola.lu <sola.lu@greentest.com.cn>
Date: 周四, 24 4月 2025 18:25:01 +0800
Subject: [PATCH] 1.修改一下,把当前库改为刚从origin仓库拉去下来,然后添加了cmake构建文件的状态。

---
 libscpi/Makefile |   98 ++++++++++++++++++++++++++++---------------------
 1 files changed, 56 insertions(+), 42 deletions(-)

diff --git a/libscpi/Makefile b/libscpi/Makefile
index 8e57c36..9a0b5ee 100644
--- a/libscpi/Makefile
+++ b/libscpi/Makefile
@@ -1,36 +1,44 @@
-
-VERSION = 0.3.0
+VERSION = 2.1.0
 LIBNAME = scpi
 
-
-CFLAGS += -Wextra -O1 -g -fPIC -Iinc
-LDFLAGS += -Wl,--as-needed
-TESTFLAGS += -lcunit
+CFLAGS += -Wextra -Wmissing-prototypes -Wimplicit -Iinc
+CFLAGS_SHARED += $(CFLAGS) -fPIC
+LDFLAGS += -lm -Wl,--as-needed
+#TESTCFLAGS += $(CFLAGS) `pkg-config --cflags cunit`
+#TESTLDFLAGS += $(LDFLAGS) `pkg-config --libs cunit`
+TESTCFLAGS += $(CFLAGS)
+TESTLDFLAGS += $(LDFLAGS) -lcunit
 
 OBJDIR=obj
+OBJDIR_STATIC=$(OBJDIR)/static
+OBJDIR_SHARED=$(OBJDIR)/shared
 DISTDIR=dist
 TESTDIR=test
 
-STATICLIBFLAGS = rcs
-SHAREDLIBFLAGS = $(LDFLAGS) -shared -Wl,-soname
+PREFIX := $(DESTDIR)/usr/local
+LIBDIR := $(PREFIX)/lib
+INCDIR := $(PREFIX)/include
 
+STATICLIBFLAGS = rcs
+SHAREDLIBFLAGS = $(LDFLAGS) -shared -Wl,-soname,$(SHAREDLIB)
 
 STATICLIB = lib$(LIBNAME).a
 SHAREDLIB = lib$(LIBNAME).so
-
 SHAREDLIBVER = $(SHAREDLIB).$(VERSION)
 
 SRCS = $(addprefix src/, \
-	debug.c error.c fifo.c ieee488.c \
+	error.c fifo.c ieee488.c \
 	minimal.c parser.c units.c utils.c \
-	lexer.c \
+	lexer.c expression.c \
 	)
 
-OBJS = $(addprefix $(OBJDIR)/, $(notdir $(SRCS:.c=.o)))
+OBJS_STATIC = $(addprefix $(OBJDIR_STATIC)/, $(notdir $(SRCS:.c=.o)))
+OBJS_SHARED = $(addprefix $(OBJDIR_SHARED)/, $(notdir $(SRCS:.c=.o)))
 
 HDRS = $(addprefix inc/scpi/, \
-	scpi.h constants.h debug.h error.h \
+	scpi.h constants.h error.h \
 	ieee488.h minimal.h parser.h types.h units.h \
+	expression.h \
 	) \
 	$(addprefix src/, \
 	lexer_private.h utils_private.h fifo_private.h \
@@ -38,56 +46,62 @@
 	) \
 
 
-TESTS = $(addprefix test/, \
-	test_fifo.c test_scpi_utils.c test_lexer_parser.c\
+TESTS = $(addprefix $(TESTDIR)/, \
+	test_fifo.c test_scpi_utils.c test_lexer_parser.c test_parser.c\
 	)
 
 TESTS_OBJS = $(TESTS:.c=.o)
 TESTS_BINS = $(TESTS_OBJS:.o=.test)
 
-.PHONY: all clean static shared test
+.PHONY: all clean static shared test install
 
 all: static shared
 
+static: $(DISTDIR)/$(STATICLIB)
 
-$(OBJDIR):
+shared: $(DISTDIR)/$(SHAREDLIBVER)
+
+clean:
+	$(RM) -r $(OBJDIR) $(DISTDIR) $(TESTS_BINS) $(TESTS_OBJS)
+
+test: $(TESTS_BINS)
+	$(TESTS_BINS:.test=.test &&) true
+
+install: $(DISTDIR)/$(STATICLIB) $(DISTDIR)/$(SHAREDLIBVER)
+	test -d $(PREFIX) || mkdir $(PREFIX)
+	test -d $(LIBDIR) || mkdir $(LIBDIR)
+	test -d $(INCDIR) || mkdir $(INCDIR)
+	test -d $(INCDIR)/scpi || mkdir $(INCDIR)/scpi
+	install -m 0644 $(DISTDIR)/$(STATICLIB) $(LIBDIR)
+	install -m 0644 $(DISTDIR)/$(SHAREDLIBVER) $(LIBDIR)
+	install -m 0644 inc/scpi/*.h $(INCDIR)/scpi
+
+$(OBJDIR_STATIC):
+	mkdir -p $@
+
+$(OBJDIR_SHARED):
 	mkdir -p $@
 
 $(DISTDIR):
 	mkdir -p $@
 
-$(OBJDIR)/%.o: src/%.c
+$(OBJDIR_STATIC)/%.o: src/%.c $(HDRS) | $(OBJDIR_STATIC)
 	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
 
-$(DISTDIR)/$(STATICLIB): $(OBJS)
-	$(AR) $(STATICLIBFLAGS) $(DISTDIR)/$(STATICLIB) $(OBJS)
+$(OBJDIR_SHARED)/%.o: src/%.c $(HDRS) | $(OBJDIR_SHARED)
+	$(CC) -c $(CFLAGS_SHARED) $(CPPFLAGS) -o $@ $<
 
-$(DISTDIR)/$(SHAREDLIBVER): $(OBJS)
-	$(CC) $(SHAREDLIBFLAGS),$(SHAREDLIB) -o $(DISTDIR)/$(SHAREDLIBVER) $(OBJS)
+$(DISTDIR)/$(STATICLIB): $(OBJS_STATIC) | $(DISTDIR)
+	$(AR) $(STATICLIBFLAGS) $(DISTDIR)/$(STATICLIB) $(OBJS_STATIC)
 
-$(DISTDIR)/$(SHAREDLIB): $(DISTDIR)/$(SHAREDLIBVER)
-	$(RM) $(DISTDIR)/$(SHAREDLIB)
-	ln -s $(SHAREDLIBVER) $(DISTDIR)/$(SHAREDLIB)
-
-static: $(DISTDIR)/$(STATICLIB)
-
-shared: $(DISTDIR)/$(SHAREDLIB)
-
-
-$(OBJS): $(HDRS) $(DISTDIR) $(OBJDIR)
-
-clean:
-	$(RM) -r $(OBJDIR) $(DISTDIR) $(TESTS_BINS) $(TESTS_OBJS)
-
-test: static $(TESTS_BINS)
-	for t in $(TESTS_BINS); do ./$$t; done
-
+$(DISTDIR)/$(SHAREDLIBVER): $(OBJS_SHARED) | $(DISTDIR)
+	$(CC) $(SHAREDLIBFLAGS) -o $(DISTDIR)/$(SHAREDLIBVER) $(OBJS_SHARED)
 
 $(TESTDIR)/%.o: $(TESTDIR)/%.c
-	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
+	$(CC) -c $(TESTCFLAGS) $(CPPFLAGS) -o $@ $<
 
-$(TESTDIR)/%.test: $(TESTDIR)/%.o
-	$(CC) $(TESTFLAGS) $< $(DISTDIR)/$(STATICLIB) -o $@ $(LDFLAGS)
+$(TESTDIR)/%.test: $(TESTDIR)/%.o $(DISTDIR)/$(STATICLIB)
+	$(CC) $< -o $@ $(DISTDIR)/$(STATICLIB) $(TESTLDFLAGS)
 
 
 

--
Gitblit v1.9.1