build: remove special versioning for non stable libraries
[dpdk.git] / mk / rte.lib.mk
index 655a1b1..229ae16 100644 (file)
@@ -11,14 +11,11 @@ EXTLIB_BUILD ?= n
 # VPATH contains at least SRCDIR
 VPATH += $(SRCDIR)
 
-ifneq ($(shell grep -s "^DPDK_" $(SRCDIR)/$(EXPORT_MAP)),)
-LIBABIVER := $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
-else ifeq ($(LIBABIVER),)
-# EXPERIMENTAL ABI is versioned as 0.major+minor, e.g. 0.201 for 20.1 ABI
-LIBABIVER := 0.$(shell cat $(RTE_SRCDIR)/ABI_VERSION | tr -d '.')
-endif
+LIBABIVER ?= $(shell cat $(RTE_SRCDIR)/ABI_VERSION)
+SOVER := $(basename $(LIBABIVER))
 
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
+SONAME := $(patsubst %.a,%.so.$(SOVER),$(LIB))
 LIB := $(patsubst %.a,%.so.$(LIBABIVER),$(LIB))
 ifeq ($(EXTLIB_BUILD),n)
 CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)
@@ -74,7 +71,7 @@ NO_UNDEFINED := -z defs
 endif
 
 O_TO_S = $(LD) -L$(RTE_SDK_BIN)/lib $(_CPU_LDFLAGS) $(EXTRA_LDFLAGS) \
-         -shared $(OBJS-y) $(NO_UNDEFINED) $(LDLIBS) -Wl,-soname,$(LIB) -o $(LIB)
+         -shared $(OBJS-y) $(NO_UNDEFINED) $(LDLIBS) -Wl,-soname,$(SONAME) -o $(LIB)
 O_TO_S_STR = $(subst ','\'',$(O_TO_S)) #'# fix syntax highlight
 O_TO_S_DISP = $(if $(V),"$(O_TO_S_STR)","  LD $(@)")
 O_TO_S_DO = @set -e; \
@@ -133,6 +130,9 @@ $(RTE_OUTPUT)/lib/$(LIB): $(LIB)
        $(Q)cp -f $(LIB) $(RTE_OUTPUT)/lib
 ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y)
        $(Q)ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so/')
+       $(Q)if [ $(SOVER) != $(LIBABIVER) ]; then \
+               ln -s -f $< $(shell echo $@ | sed 's/\.so.*/.so.$(SOVER)/') ; \
+       fi
 endif
 
 #