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 | 96 +++++++++++++++++++++++++++-------------------- 1 files changed, 55 insertions(+), 41 deletions(-) diff --git a/libscpi/Makefile b/libscpi/Makefile index 90988ea..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/, \ +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