mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-21 00:39:07 +08:00
Add symlinks for DSO
Add symlinks with version suffix in a way similar to how it's done in
kernel tree.
The differences with kernel tree version:
* LIBS is used to handle both files and targets w/o separation;
* Version symlink is created in corresponding target as opposed to do
everything in libbpf.so.$(LIBBPF_VERSION).
Example:
% OBJDIR=build DESTDIR=root make install
...
% find root/ ! -type d -exec ls -l {} +
-rw-r--r--. 1 rdna users 6046 Apr 2 18:09 root/usr/include/bpf/bpf.h
-rw-r--r--. 1 rdna users 3485 Apr 2 18:09 root/usr/include/bpf/btf.h
-rw-r--r--. 1 rdna users 16454 Apr 2 18:09 root/usr/include/bpf/libbpf.h
-rw-r--r--. 1 rdna users 602030 Apr 2 18:09 root/usr/lib64/libbpf.a
lrwxrwxrwx. 1 rdna users 11 Apr 2 18:09 root/usr/lib64/libbpf.so -> libbpf.so.0
lrwxrwxrwx. 1 rdna users 15 Apr 2 18:09 root/usr/lib64/libbpf.so.0 -> libbpf.so.0.0.2
-rwxr-xr-x. 1 rdna users 377640 Apr 2 18:09 root/usr/lib64/libbpf.so.0.0.2
-rw-r--r--. 1 rdna users 241 Apr 2 18:09 root/usr/lib64/pkgconfig/libbpf.pc
Signed-off-by: Andrey Ignatov <rdna@fb.com>
This commit is contained in:
24
src/Makefile
24
src/Makefile
@@ -38,7 +38,9 @@ OBJS := $(addprefix $(OBJDIR)/,bpf.o btf.o libbpf.o libbpf_errno.o netlink.o \
|
||||
|
||||
LIBS := $(OBJDIR)/libbpf.a
|
||||
ifndef BUILD_STATIC_ONLY
|
||||
LIBS += $(OBJDIR)/libbpf.so
|
||||
LIBS += $(OBJDIR)/libbpf.so \
|
||||
$(OBJDIR)/libbpf.so.$(VERSION) \
|
||||
$(OBJDIR)/libbpf.so.$(LIBBPF_VERSION)
|
||||
VERSION_SCRIPT := libbpf.map
|
||||
endif
|
||||
|
||||
@@ -68,7 +70,13 @@ all: $(LIBS) $(PC_FILE)
|
||||
$(OBJDIR)/libbpf.a: $(OBJS)
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
$(OBJDIR)/libbpf.so: $(OBJS)
|
||||
$(OBJDIR)/libbpf.so: $(OBJDIR)/libbpf.so.$(VERSION)
|
||||
ln -sf $(^F) $@
|
||||
|
||||
$(OBJDIR)/libbpf.so.$(VERSION): $(OBJDIR)/libbpf.so.$(LIBBPF_VERSION)
|
||||
ln -sf $(^F) $@
|
||||
|
||||
$(OBJDIR)/libbpf.so.$(LIBBPF_VERSION): $(OBJS)
|
||||
$(CC) -shared $(ALL_LDFLAGS) -Wl,--version-script=$(VERSION_SCRIPT) \
|
||||
$^ -o $@
|
||||
|
||||
@@ -88,8 +96,16 @@ define do_install
|
||||
$(INSTALL) $1 $(if $3,-m $3,) '$(DESTDIR)$2'
|
||||
endef
|
||||
|
||||
# Preserve symlinks at installation.
|
||||
define do_s_install
|
||||
if [ ! -d '$(DESTDIR)$2' ]; then \
|
||||
$(INSTALL) -d -m 755 '$(DESTDIR)$2'; \
|
||||
fi; \
|
||||
cp -fpR $1 '$(DESTDIR)$2'
|
||||
endef
|
||||
|
||||
install: all install_headers install_pkgconfig
|
||||
$(call do_install,$(LIBS),$(LIBDIR))
|
||||
$(call do_s_install,$(LIBS),$(LIBDIR))
|
||||
|
||||
install_headers:
|
||||
$(call do_install,$(HEADERS),$(INCLUDEDIR)/bpf,644)
|
||||
@@ -103,4 +119,4 @@ install_pkgconfig: $(PC_FILE)
|
||||
$(call do_install,$(PC_FILE),$(LIBDIR)/pkgconfig,644)
|
||||
|
||||
clean:
|
||||
rm -f *.o *.a *.so *.pc
|
||||
rm -f *.o *.a *.so *.so.* *.pc
|
||||
|
||||
Reference in New Issue
Block a user