From 11f2f2e329ef404d0e9c022cb2f9fbbb45bae285 Mon Sep 17 00:00:00 2001 From: nancy.liao <huihui.liao@greentest.com.cn> Date: 周日, 27 4月 2025 17:33:31 +0800 Subject: [PATCH] 完成了SCPI命令语法分析器的完整规则 --- libscpi/Makefile | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/libscpi/Makefile b/libscpi/Makefile index 58719cb..9a0b5ee 100644 --- a/libscpi/Makefile +++ b/libscpi/Makefile @@ -1,19 +1,30 @@ +VERSION = 2.1.0 LIBNAME = scpi -CFLAGS += -Wextra -Wmissing-prototypes -Wimplicit -g -Iinc -LDFLAGS += -Wl,--as-needed +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 +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/, \ error.c fifo.c ieee488.c \ @@ -21,7 +32,8 @@ 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 error.h \ @@ -41,11 +53,13 @@ TESTS_OBJS = $(TESTS:.c=.o) TESTS_BINS = $(TESTS_OBJS:.o=.test) -.PHONY: all clean static test +.PHONY: all clean static shared test install -all: static +all: static shared static: $(DISTDIR)/$(STATICLIB) + +shared: $(DISTDIR)/$(SHAREDLIBVER) clean: $(RM) -r $(OBJDIR) $(DISTDIR) $(TESTS_BINS) $(TESTS_OBJS) @@ -53,21 +67,35 @@ test: $(TESTS_BINS) $(TESTS_BINS:.test=.test &&) true -$(OBJDIR): +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)/$(STATICLIB): $(OBJS_STATIC) | $(DISTDIR) + $(AR) $(STATICLIBFLAGS) $(DISTDIR)/$(STATICLIB) $(OBJS_STATIC) -$(OBJS): $(HDRS) $(DISTDIR) $(OBJDIR) $(SRCS) - +$(DISTDIR)/$(SHAREDLIBVER): $(OBJS_SHARED) | $(DISTDIR) + $(CC) $(SHAREDLIBFLAGS) -o $(DISTDIR)/$(SHAREDLIBVER) $(OBJS_SHARED) $(TESTDIR)/%.o: $(TESTDIR)/%.c $(CC) -c $(TESTCFLAGS) $(CPPFLAGS) -o $@ $< -- Gitblit v1.9.1