diff options
Diffstat (limited to 'tools/lib/bpf/Makefile')
| -rw-r--r-- | tools/lib/bpf/Makefile | 42 | 
1 files changed, 28 insertions, 14 deletions
diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile index 61aaacf0cfa1..5bf8e52c41fc 100644 --- a/tools/lib/bpf/Makefile +++ b/tools/lib/bpf/Makefile @@ -3,7 +3,7 @@  BPF_VERSION = 0  BPF_PATCHLEVEL = 0 -BPF_EXTRAVERSION = 1 +BPF_EXTRAVERSION = 2  MAKEFLAGS += --no-print-directory @@ -79,8 +79,6 @@ export prefix libdir src obj  libdir_SQ = $(subst ','\'',$(libdir))  libdir_relative_SQ = $(subst ','\'',$(libdir_relative)) -LIB_FILE = libbpf.a libbpf.so -  VERSION		= $(BPF_VERSION)  PATCHLEVEL	= $(BPF_PATCHLEVEL)  EXTRAVERSION	= $(BPF_EXTRAVERSION) @@ -88,7 +86,10 @@ EXTRAVERSION	= $(BPF_EXTRAVERSION)  OBJ		= $@  N		= -LIBBPF_VERSION = $(BPF_VERSION).$(BPF_PATCHLEVEL).$(BPF_EXTRAVERSION) +LIBBPF_VERSION	= $(BPF_VERSION).$(BPF_PATCHLEVEL).$(BPF_EXTRAVERSION) + +LIB_TARGET	= libbpf.a libbpf.so.$(LIBBPF_VERSION) +LIB_FILE	= libbpf.a libbpf.so*  # Set compile option CFLAGS  ifdef EXTRA_CFLAGS @@ -128,16 +129,18 @@ all:  export srctree OUTPUT CC LD CFLAGS V  include $(srctree)/tools/build/Makefile.include -BPF_IN    := $(OUTPUT)libbpf-in.o -LIB_FILE := $(addprefix $(OUTPUT),$(LIB_FILE)) -VERSION_SCRIPT := libbpf.map +BPF_IN		:= $(OUTPUT)libbpf-in.o +VERSION_SCRIPT	:= libbpf.map + +LIB_TARGET	:= $(addprefix $(OUTPUT),$(LIB_TARGET)) +LIB_FILE	:= $(addprefix $(OUTPUT),$(LIB_FILE))  GLOBAL_SYM_COUNT = $(shell readelf -s --wide $(BPF_IN) | \  			   awk '/GLOBAL/ && /DEFAULT/ && !/UND/ {s++} END{print s}')  VERSIONED_SYM_COUNT = $(shell readelf -s --wide $(OUTPUT)libbpf.so | \  			      grep -Eo '[^ ]+@LIBBPF_' | cut -d@ -f1 | sort -u | wc -l) -CMD_TARGETS = $(LIB_FILE) +CMD_TARGETS = $(LIB_TARGET)  CXX_TEST_TARGET = $(OUTPUT)test_libbpf @@ -170,9 +173,13 @@ $(BPF_IN): force elfdep bpfdep  	echo "Warning: Kernel ABI header at 'tools/include/uapi/linux/if_xdp.h' differs from latest version at 'include/uapi/linux/if_xdp.h'" >&2 )) || true  	$(Q)$(MAKE) $(build)=libbpf -$(OUTPUT)libbpf.so: $(BPF_IN) -	$(QUIET_LINK)$(CC) --shared -Wl,--version-script=$(VERSION_SCRIPT) \ -		$^ -o $@ +$(OUTPUT)libbpf.so: $(OUTPUT)libbpf.so.$(LIBBPF_VERSION) + +$(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(BPF_IN) +	$(QUIET_LINK)$(CC) --shared -Wl,-soname,libbpf.so.$(VERSION) \ +				    -Wl,--version-script=$(VERSION_SCRIPT) $^ -o $@ +	@ln -sf $(@F) $(OUTPUT)libbpf.so +	@ln -sf $(@F) $(OUTPUT)libbpf.so.$(VERSION)  $(OUTPUT)libbpf.a: $(BPF_IN)  	$(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^ @@ -192,6 +199,12 @@ check_abi: $(OUTPUT)libbpf.so  		exit 1;							 \  	fi +define do_install_mkdir +	if [ ! -d '$(DESTDIR_SQ)$1' ]; then		\ +		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$1';	\ +	fi +endef +  define do_install  	if [ ! -d '$(DESTDIR_SQ)$2' ]; then		\  		$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$2';	\ @@ -200,8 +213,9 @@ define do_install  endef  install_lib: all_cmd -	$(call QUIET_INSTALL, $(LIB_FILE)) \ -		$(call do_install,$(LIB_FILE),$(libdir_SQ)) +	$(call QUIET_INSTALL, $(LIB_TARGET)) \ +		$(call do_install_mkdir,$(libdir_SQ)); \ +		cp -fpR $(LIB_FILE) $(DESTDIR)$(libdir_SQ)  install_headers:  	$(call QUIET_INSTALL, headers) \ @@ -219,7 +233,7 @@ config-clean:  clean:  	$(call QUIET_CLEAN, libbpf) $(RM) $(TARGETS) $(CXX_TEST_TARGET) \ -		*.o *~ *.a *.so .*.d .*.cmd LIBBPF-CFLAGS +		*.o *~ *.a *.so *.so.$(VERSION) .*.d .*.cmd LIBBPF-CFLAGS  	$(call QUIET_CLEAN, core-gen) $(RM) $(OUTPUT)FEATURE-DUMP.libbpf  |