mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
new "libext" library for external programs using shmem
This commit is contained in:
parent
766097f83f
commit
3c48b4f557
3 changed files with 34 additions and 5 deletions
4
Makefile
4
Makefile
|
@ -15,7 +15,7 @@
|
|||
###################################################################################
|
||||
|
||||
# Project modules
|
||||
MODULES = lib plugins src tests thirdparty tools packaging doc etc web
|
||||
MODULES = lib libext plugins src tests thirdparty tools packaging doc etc web
|
||||
|
||||
# Default prefix for install target
|
||||
PREFIX ?= /usr/local
|
||||
|
@ -132,4 +132,4 @@ clean: $(addprefix clean-,$(filter-out thirdparty doc,$(MODULES)))
|
|||
.PHONY: all everything clean install
|
||||
|
||||
-include $(wildcard $(BUILDDIR)/**/*.d)
|
||||
-include $(addsuffix /Makefile.inc,$(MODULES))
|
||||
-include $(addsuffix /Makefile.inc,$(MODULES))
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
LIB_NAME = libvillas
|
||||
LIBEXT_NAME = libvillas-ext
|
||||
LIB_ABI_VERSION = 1
|
||||
LIBEXT_ABI_VERSION = 1
|
||||
|
||||
LIB = $(BUILDDIR)/$(LIB_NAME).so.$(LIB_ABI_VERSION)
|
||||
LIBEXT = $(BUILDDIR)/$(LIBEXT_NAME).so.$(LIBEXT_ABI_VERSION)
|
||||
|
||||
# Object files for libvillas
|
||||
LIB_SRCS = $(addprefix lib/nodes/, file.c cbuilder.c shmem.c) \
|
||||
|
@ -12,10 +15,18 @@ LIB_SRCS = $(addprefix lib/nodes/, file.c cbuilder.c shmem.c) \
|
|||
plugin.c node_type.c stats.c mapping.c sample_io.c shmem.c \
|
||||
)
|
||||
|
||||
LIBEXT_SRCS = $(addprefix lib/, sample.c node.c queue.c queue_signalled.c \
|
||||
memory.c shmem.c utils.c kernel/kernel.c log.c list.c sample_io.c \
|
||||
plugin.c timing.c)
|
||||
|
||||
LIB_CFLAGS = $(CFLAGS) -fPIC
|
||||
LIB_LDFLAGS = -shared
|
||||
LIB_LDLIBS = $(LDLIBS) -ldl -lrt -Wl,-soname,$(LIB_NAME).so.$(LIB_ABI_VERSION)
|
||||
|
||||
LIBEXT_CFLAGS = $(CFLAGS) -fPIC
|
||||
LIBEXT_LDFLAGS = -shared
|
||||
LIBEXT_LDLIBS = -ljansson -lcrypto -lrt -Wl,-soname,$(LIBEXT_NAME).so.$(LIBEXT_ABI_VERSION)
|
||||
|
||||
-include lib/hooks/Makefile.inc
|
||||
-include lib/apis/Makefile.inc
|
||||
-include lib/fpga/Makefile.inc
|
||||
|
@ -102,4 +113,19 @@ install-lib: lib
|
|||
clean-lib:
|
||||
rm -rf $(BUILDDIR)/lib $(LIB)
|
||||
|
||||
.PHONY: lib install-lib clean-lib $(BUILDDIR)/lib/defines
|
||||
LIBEXT_OBJS = $(patsubst %.c, $(BUILDDIR)/%.o, $(LIBEXT_SRCS))
|
||||
|
||||
libext: $(LIBEXT)
|
||||
|
||||
$(LIBEXT): $(LIBEXT_OBJS)
|
||||
$(CC) $(LIBEXT_LDFLAGS) -o $@ $^ $(LIBEXT_LDLIBS)
|
||||
ln -srf $@ $(BUILDDIR)/$(LIBEXT_NAME).so
|
||||
|
||||
install-libext: libext
|
||||
install -m 0755 -D -T $(LIBEXT) $(DESTDIR)$(PREFIX)/lib/$(LIBEXT_NAME).so.$(LIBEXT_ABI_VERSION)
|
||||
ln -srf $(DESTDIR)$(PREFIX)/lib/$(LIBEXT_NAME).so.$(LIBEXT_ABI_VERSION) $(DESTDIR)$(PREFIX)/lib/$(LIBEXT_NAME).so
|
||||
|
||||
clean-libext:
|
||||
rm -rf $(BUILDDIR)/lib $(LIBEXT)
|
||||
|
||||
.PHONY: lib install-lib libext install-libext clean-lib $(BUILDDIR)/lib/defines
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
TARGETS = $(BUILDDIR)/villas-node \
|
||||
$(BUILDDIR)/villas-pipe \
|
||||
$(BUILDDIR)/villas-signal \
|
||||
$(BUILDDIR)/villas-shmem \
|
||||
$(BUILDDIR)/villas-test-rtt \
|
||||
$(BUILDDIR)/villas-test-cmp \
|
||||
$(BUILDDIR)/villas-hook
|
||||
|
@ -26,7 +25,7 @@ ifeq ($(shell pkg-config libxil; echo $$?),0)
|
|||
endif
|
||||
endif
|
||||
|
||||
src: $(TARGETS)
|
||||
src: $(TARGETS) $(BUILDDIR)/villas-shmem
|
||||
|
||||
$(TARGETS): $(BUILDDIR)/villas-%: $(BUILDDIR)/src/%.o
|
||||
|
||||
|
@ -37,6 +36,10 @@ $(BUILDDIR)/villas-fpga: $(addprefix $(BUILDDIR)/src/,fpga-bench.o $(BENCH_OBJS)
|
|||
$(BUILDDIR)/src/%.o: src/%.c $(BUILDDIR)/defines | $$(dir $$@)
|
||||
$(CC) $(SRC_CFLAGS) -c $< -o $@
|
||||
|
||||
# Build villas-shmem only with libext (to ensure that libext contains everything needed)
|
||||
$(BUILDDIR)/villas-shmem: $(BUILDDIR)/src/shmem.o $(LIBS) libext
|
||||
$(CC) $(SRC_LDFLAGS) $(BUILDDIR)/src/shmem.o $(filter-out -lvillas,$(SRC_LDLIBS)) -lvillas-ext -o $@
|
||||
|
||||
# Link target executables
|
||||
$(TARGETS): | $(LIBS)
|
||||
$(CC) $(SRC_LDFLAGS) $^ $(SRC_LDLIBS) -o $@
|
||||
|
|
Loading…
Add table
Reference in a new issue