Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From cc7b4a6c6e106efc96447bb250755e86997fe205 Mon Sep 17 00:00:00 2001
- From: Tim Lunn <tim@feathertop.org>
- Date: Sat, 2 Feb 2013 10:25:58 +1100
- Subject: [PATCH] Correct versioning of installed shared library.
- To be distro-friendly shared libraries should have a version suffix
- that indicates ABI/API compatibility.
- This was lifted from previous libname patches from the js185 release,
- with only minor changes.
- ---
- js/src/Makefile.in | 42 ++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 40 insertions(+), 2 deletions(-)
- diff --git a/js/src/Makefile.in b/js/src/Makefile.in
- index 100f6d5..45f9a91 100644
- --- a/js/src/Makefile.in
- +++ b/js/src/Makefile.in
- @@ -33,8 +33,15 @@ endif
- TEST_DIRS += tests
- +SRCREL_VERSION = 0.0.0
- +SRCREL_ABI_VERSION := $(word 1,$(subst ., ,$(SRCREL_VERSION)))
- +
- MODULE = js
- +ifeq (,$(HOST_BIN_SUFFIX))
- LIBRARY_NAME = mozjs-@MOZJS_MAJOR_VERSION@.@MOZJS_MINOR_VERSION@@MOZJS_ALPHA@
- +else
- +LIBRARY_NAME = mozjs
- +endif
- STATIC_LIBRARY_NAME = js_static
- GRE_MODULE = 1
- @@ -736,6 +743,7 @@ endif
- # - OS_LIBS includes libraries selected by the configure script.
- # - EXTRA_LIBS includes libraries selected by this Makefile.
- JS_CONFIG_LIBS=$(EXTRA_DSO_LDOPTS) $(OS_LIBS) $(EXTRA_LIBS)
- +JS_CONFIG_MOZ_JS_LIBS=-L$(libdir) -l$(LIBRARY_NAME)
- # The configure script invokes this rule explicitly at configure time!
- # It's important that js-config be ready by the time we're done
- @@ -760,7 +768,7 @@ JS_CONFIG_SUBSTITUTIONS=\
- -DMOZILLA_VERSION="$(MOZILLA_VERSION)" \
- -DLIBRARY_NAME="$(LIBRARY_NAME)" \
- -DJS_CONFIG_LIBS="$(JS_CONFIG_LIBS)" \
- - -DMOZ_JS_LIBS="$(MOZ_JS_LIBS)" \
- + -DMOZ_JS_LIBS="$(JS_CONFIG_MOZ_JS_LIBS)" \
- -DMOZJS_MAJOR_VERSION="$(MOZJS_MAJOR_VERSION)" \
- -DMOZJS_MINOR_VERSION="$(MOZJS_MINOR_VERSION)" \
- -DMOZJS_PATCH_VERSION="$(MOZJS_PATCH_VERSION)" \
- @@ -780,7 +788,6 @@ SDK_BINARY = js-config
- $(LIBRARY_NAME).pc: js.pc.in js-config
- $(PYTHON) $(topsrcdir)/config/Preprocessor.py $(JS_CONFIG_SUBSTITUTIONS) $< > $@
- -
- install:: $(INSTALLED_HEADERS)
- $(SYSINSTALL) $^ $(DESTDIR)$(includedir)/$(LIBRARY_NAME)
- @@ -799,12 +806,43 @@ install:: $(EXPORTS_mozilla)
- install:: $(SCRIPTS)
- $(SYSINSTALL) $^ $(DESTDIR)$(bindir)
- +ifeq (,$(HOST_BIN_SUFFIX))
- +ifeq (.dylib,$(DLL_SUFFIX))
- +# Mac OS X
- +SHLIB_ANY_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
- +SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY:$(DLL_SUFFIX)=.$(SRCREL_ABI_VERSION)$(DLL_SUFFIX))
- +SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY:$(DLL_SUFFIX)=.$(SRCREL_VERSION)$(DLL_SUFFIX))
- +$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -install_name $(SHLIB_ABI_VER)
- +$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -current_version $(SRCREL_VERSION)
- +$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -compatibility_version $(SRCREL_ABI_VERSION)
- +else
- +# Generic Unix / Linux
- +SHLIB_ANY_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY)
- +SHLIB_ABI_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_ABI_VERSION)
- +SHLIB_EXACT_VER := $(DESTDIR)$(libdir)/$(SHARED_LIBRARY).$(SRCREL_VERSION)
- +$(SHARED_LIBRARY): EXTRA_DSO_LDOPTS += -Wl,-soname,$(notdir $(SHLIB_ABI_VER))
- +endif
- +endif
- +
- +
- install:: $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY)
- ifneq (,$(LIBRARY))
- $(SYSINSTALL) $(LIBRARY) $(DESTDIR)$(libdir)
- +ifeq (,$(HOST_BIN_SUFFIX))
- + mv -f $(DESTDIR)$(libdir)/$(LIBRARY) $(subst $(STATIC_LIBRARY_NAME),$(LIBRARY_NAME)-$(SRCREL_ABI_VERSION),$(DESTDIR)$(libdir)/$(LIBRARY))
- +endif
- endif
- ifneq (,$(SHARED_LIBRARY))
- +ifeq (,$(HOST_BIN_SUFFIX))
- + @[ ! -h $(SHLIB_ANY_VER) ] || rm -f $(SHLIB_ANY_VER)
- +endif
- $(SYSINSTALL) $(SHARED_LIBRARY) $(DESTDIR)$(libdir)
- +ifeq (,$(HOST_BIN_SUFFIX))
- + mv -f $(SHLIB_ANY_VER) $(SHLIB_EXACT_VER)
- + @[ ! -h $(SHLIB_ABI_VER) ] || rm -f $(SHLIB_ABI_VER)
- + ln -s $(notdir $(SHLIB_EXACT_VER)) $(SHLIB_ABI_VER)
- + ln -s $(notdir $(SHLIB_ABI_VER)) $(SHLIB_ANY_VER)
- +endif
- endif
- ifneq (,$(IMPORT_LIBRARY))
- $(SYSINSTALL) $(IMPORT_LIBRARY) $(DESTDIR)$(libdir)
- --
- 1.8.0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement