From 2e3df6a3070ae5e2871a5ea024c09e6461cedfa6 Mon Sep 17 00:00:00 2001 From: midipix Date: Fri, 9 Apr 2021 11:50:40 +0000 Subject: build system: posix make support: refactored shared library versioning schemes. --- sofort/ccenv/ccenv.sh | 11 +++- sofort/config/opt.vars | 1 + .../core/_version/_soname/version_soname_copy.mk | 8 +++ .../_version/_soname/version_soname_symlink.mk | 12 +++++ sofort/core/_version/version_none.mk | 10 ++++ sofort/core/_version/version_used.mk | 26 ++++++++++ sofort/core/version.mk | 58 +--------------------- 7 files changed, 67 insertions(+), 59 deletions(-) create mode 100644 sofort/config/opt.vars create mode 100644 sofort/core/_version/_soname/version_soname_copy.mk create mode 100644 sofort/core/_version/_soname/version_soname_symlink.mk create mode 100644 sofort/core/_version/version_none.mk create mode 100644 sofort/core/_version/version_used.mk (limited to 'sofort') diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh index 0f94ddc..623ac38 100644 --- a/sofort/ccenv/ccenv.sh +++ b/sofort/ccenv/ccenv.sh @@ -1369,7 +1369,10 @@ ccenv_common_init() if [ $ccenv_cfgtype = 'host' ]; then ccenv_tflags= - ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" OS_DSO_EXRULES=default .cflags-host) + ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" \ + OS_DSO_EXRULES=default \ + OS_SONAME=symlink \ + .cflags-host) ccenv_cc="$mb_user_cc" ccenv_cpp="$mb_user_cpp" @@ -1379,7 +1382,11 @@ ccenv_common_init() ccenv_pe_image_base="$mb_pe_image_base" else ccenv_tflags= - ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" OS_DSO_EXRULES=default .cflags-native) + ccenv_cflags=$(${mb_make} -s -f "$mb_pwd/Makefile.tmp" \ + OS_DSO_EXRULES=default \ + OS_SONAME=symlink \ + .cflags-native) + ccenv_cc="$mb_native_cc" ccenv_cpp="$mb_native_cpp" ccenv_cxx="$mb_native_cxx" diff --git a/sofort/config/opt.vars b/sofort/config/opt.vars new file mode 100644 index 0000000..c2ff58d --- /dev/null +++ b/sofort/config/opt.vars @@ -0,0 +1 @@ +version_opt diff --git a/sofort/core/_version/_soname/version_soname_copy.mk b/sofort/core/_version/_soname/version_soname_copy.mk new file mode 100644 index 0000000..c176d5a --- /dev/null +++ b/sofort/core/_version/_soname/version_soname_copy.mk @@ -0,0 +1,8 @@ +# version_soname_copy.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +install-soname: install-lib + cp $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) + +$(SHARED_SONAME): $(SHARED_LIB) + cp $(SHARED_LIB) $(SHARED_SONAME) diff --git a/sofort/core/_version/_soname/version_soname_symlink.mk b/sofort/core/_version/_soname/version_soname_symlink.mk new file mode 100644 index 0000000..963b891 --- /dev/null +++ b/sofort/core/_version/_soname/version_soname_symlink.mk @@ -0,0 +1,12 @@ +# version_soname_symlink.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +$(SHARED_SONAME): $(SHARED_LIB) + rm -f $@.tmp + ln -s $(DSO_VER) $@.tmp + mv $@.tmp $@ + +install-soname: install-lib + rm -f $(SHARED_SONAME).tmp + ln -s $(DSO_VER) $(SHARED_SONAME).tmp + mv $(SHARED_SONAME).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) diff --git a/sofort/core/_version/version_none.mk b/sofort/core/_version/version_none.mk new file mode 100644 index 0000000..d8fc570 --- /dev/null +++ b/sofort/core/_version/version_none.mk @@ -0,0 +1,10 @@ +# version_none.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +VER_XYZ = +VER_SONAME = + +package-shared-soname: +package-shared-solink: +package-install-soname: +package-install-solink: diff --git a/sofort/core/_version/version_used.mk b/sofort/core/_version/version_used.mk new file mode 100644 index 0000000..4724cee --- /dev/null +++ b/sofort/core/_version/version_used.mk @@ -0,0 +1,26 @@ +# version_used.mk: handling of shared library versioning schemes. +# this file is covered by COPYING.SOFORT. + +VER_XYZ = .$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) +VER_SONAME = .$(VER_MAJOR) + +package-shared-soname: shared-soname +package-shared-solink: shared-solink +package-install-soname: install-soname +package-install-solink: install-solink + + + +# libfoo.so (common) +install-solink: install-lib + rm -f $(SHARED_SOLINK).tmp + ln -s $(DSO_VER) $(SHARED_SOLINK).tmp + mv $(SHARED_SOLINK).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SOLINK) + +$(SHARED_SOLINK): $(SHARED_LIB) + rm -f $@.tmp + ln -s $(DSO_VER) $@.tmp + mv $@.tmp $@ + +# libfoo.so.x (symlink or copy) +include $(PROJECT_DIR)/sofort/core/_version/_soname/version_soname_$(OS_SONAME).mk diff --git a/sofort/core/version.mk b/sofort/core/version.mk index eb6c2f2..ad693ab 100644 --- a/sofort/core/version.mk +++ b/sofort/core/version.mk @@ -7,60 +7,4 @@ CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_MAJOR=$(VER_MAJOR) CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_MINOR=$(VER_MINOR) CFLAGS_VERSION += -D$(VER_NAMESPACE)_TAG_VER_PATCH=$(VER_PATCH) -ifeq ($(AVOID_VERSION),yes) - -VER_XYZ = -VER_SONAME = - -package-shared-soname: -package-shared-solink: -package-install-soname: -package-install-solink: - -else - -VER_XYZ = .$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH) -VER_SONAME = .$(VER_MAJOR) - -package-shared-soname: shared-soname -package-shared-solink: shared-solink -package-install-soname: install-soname -package-install-solink: install-solink - - - -# libfoo.so (common) -install-solink: install-lib - rm -f $(SHARED_SOLINK).tmp - ln -s $(DSO_VER) $(SHARED_SOLINK).tmp - mv $(SHARED_SOLINK).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SOLINK) - -$(SHARED_SOLINK): $(SHARED_LIB) - rm -f $@.tmp - ln -s $(DSO_VER) $@.tmp - mv $@.tmp $@ - -# libfoo.so.x (symlink) -ifeq ($(OS_SONAME),symlink) -$(SHARED_SONAME): $(SHARED_LIB) - rm -f $@.tmp - ln -s $(DSO_VER) $@.tmp - mv $@.tmp $@ - -install-soname: install-lib - rm -f $(SHARED_SONAME).tmp - ln -s $(DSO_VER) $(SHARED_SONAME).tmp - mv $(SHARED_SONAME).tmp $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) -endif - - -# libfoo.so.x (copy) -ifeq ($(OS_SONAME),copy) -install-soname: install-lib - cp $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/$(DSO_SONAME) - -$(SHARED_SONAME): $(SHARED_LIB) - cp $(SHARED_LIB) $(SHARED_SONAME) -endif - -endif +include $(PROJECT_DIR)/sofort/core/_version/version_$(VERSION_OPT).mk -- cgit v1.2.3