| | |
| | | |
| | | VERSION = 0.3.0 |
| | | LIBNAME = scpi |
| | | |
| | | |
| | | CFLAGS += -Wextra -O1 -g -fPIC -Iinc |
| | | CFLAGS += -Wextra -Wmissing-prototypes -Wimplicit -g -Iinc |
| | | LDFLAGS += -Wl,--as-needed |
| | | TESTFLAGS += -lcunit |
| | | #TESTCFLAGS += $(CFLAGS) `pkg-config --cflags cunit` |
| | | #TESTLDFLAGS += $(LDFLAGS) `pkg-config --libs cunit` |
| | | TESTCFLAGS += $(CFLAGS) |
| | | TESTLDFLAGS += $(LDFLAGS) -lcunit |
| | | |
| | | OBJDIR=obj |
| | | DISTDIR=dist |
| | | TESTDIR=test |
| | | |
| | | STATICLIBFLAGS = rcs |
| | | SHAREDLIBFLAGS = $(LDFLAGS) -shared -Wl,-soname |
| | | |
| | | |
| | | 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 \ |
| | | ) |
| | | |
| | | OBJS = $(addprefix $(OBJDIR)/, $(notdir $(SRCS:.c=.o))) |
| | | |
| | | HDRS = $(addprefix inc/scpi/, \ |
| | | scpi.h constants.h debug.h error.h \ |
| | | fifo.h ieee488.h minimal.h parser.h \ |
| | | types.h units.h \ |
| | | ) src/utils.h |
| | | scpi.h constants.h error.h \ |
| | | ieee488.h minimal.h parser.h types.h units.h \ |
| | | ) \ |
| | | $(addprefix src/, \ |
| | | lexer_private.h utils_private.h fifo_private.h \ |
| | | parser_private.h \ |
| | | ) \ |
| | | |
| | | |
| | | TESTS = $(addprefix test/, \ |
| | | test_fifo.c test_scpi_utils.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 test |
| | | |
| | | all: static shared |
| | | all: static |
| | | |
| | | static: $(DISTDIR)/$(STATICLIB) |
| | | |
| | | clean: |
| | | $(RM) -r $(OBJDIR) $(DISTDIR) $(TESTS_BINS) $(TESTS_OBJS) |
| | | |
| | | test: $(TESTS_BINS) |
| | | $(TESTS_BINS:.test=.test &&) true |
| | | |
| | | $(OBJDIR): |
| | | mkdir -p $@ |
| | |
| | | $(DISTDIR)/$(STATICLIB): $(OBJS) |
| | | $(AR) $(STATICLIBFLAGS) $(DISTDIR)/$(STATICLIB) $(OBJS) |
| | | |
| | | $(DISTDIR)/$(SHAREDLIBVER): $(OBJS) |
| | | $(CC) $(SHAREDLIBFLAGS),$(SHAREDLIB) -o $(DISTDIR)/$(SHAREDLIBVER) $(OBJS) |
| | | |
| | | $(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 |
| | | $(OBJS): $(HDRS) $(DISTDIR) $(OBJDIR) $(SRCS) |
| | | |
| | | |
| | | $(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) |
| | | |
| | | |
| | | |