summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makeconfig22
1 files changed, 22 insertions, 0 deletions
diff --git a/Makeconfig b/Makeconfig
index c06604c544..23dca2cc4c 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -510,4 +510,26 @@ $(common-objpfx)version.mk: $(..)version.h $(..)Makeconfig
 	    < $< > $@-new
 	mv -f $@-new $@
 
+ifeq (yes, $(build-shared))
+
+# Process the shlib-versions file, which tells us what shared library
+# version numbers to use when we install shared objects on this system.
+-include $(common-objpfx)soversions.mk
+$(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
+			       $(common-objpfx)config.make
+	sed 's/#.*$$//' $< | while read conf versions; do \
+	  test -n "$$versions" || continue; \
+	  case '$(config-machine)-$(config-vendor)-$(config-os)' in $$conf)\
+	    for v in $$versions; do \
+	      lib="$${v%%=*}"; if eval "test -z \"\$$vers_lib$$lib\""; then \
+		eval vers_lib$${lib}=yes; \
+		echo $$lib.so-version=.$${v##$$lib=}; fi; \
+	  done ;; esac; done > $@T
+	mv -f $@T $@
+
+# Get $(version) defined with the release version number.
+-include $(common-objpfx)version.mk
+
+endif # build-shared
+
 endif # Makeconfig not yet included