diff options
author | Felix Fietkau <nbd@nbd.name> | 2021-02-12 09:56:56 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2021-02-14 19:41:51 +0100 |
commit | b12288fa69b171f7c9405518c9bed3581a06f7ce (patch) | |
tree | db40d7bf49aa76eb0cb6be8c0cacb9e2cbebe79d /include | |
parent | 8597da20acce8533a538d436a536795a61b2e8e0 (diff) | |
download | upstream-b12288fa69b171f7c9405518c9bed3581a06f7ce.tar.gz upstream-b12288fa69b171f7c9405518c9bed3581a06f7ce.tar.bz2 upstream-b12288fa69b171f7c9405518c9bed3581a06f7ce.zip |
build: add support for fixing up library soname
This makes it possible to declare a package ABI_VERSION independent from the
upstream soname by setting PKG_ABI_VERSION in the package makefile.
The library filename is fixed up for files installed to packages and to the
staging dir. References to the original from executables within the same
package are also fixed up
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'include')
-rw-r--r-- | include/package-ipkg.mk | 5 | ||||
-rw-r--r-- | include/package.mk | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk index ead4b5742c..fb1b7549fb 100644 --- a/include/package-ipkg.mk +++ b/include/package-ipkg.mk @@ -152,6 +152,7 @@ ifeq ($(DUMP),) mkdir -p $(PKG_BUILD_DIR)/.pkgdir/$(1) $(call Package/$(1)/install,$(PKG_BUILD_DIR)/.pkgdir/$(1)) $(call Package/$(1)/install_lib,$(PKG_BUILD_DIR)/.pkgdir/$(1)) + $(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" "$(PKG_BUILD_DIR)/.pkgdir/$(1)" "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)") touch $$@ $(STAGING_DIR_ROOT)/stamp/.$(1)_installed: $(PKG_BUILD_DIR)/.pkgdir/$(1).installed @@ -191,11 +192,15 @@ $(_endef) $$(IPKG_$(1)) : export DESCRIPTION=$$(Package/$(1)/description) $$(IPKG_$(1)) : export PATH=$$(TARGET_PATH_PKG) $$(IPKG_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH) + ifdef Build/InstallDev + $$(IPKG_$(1)): $(STAMP_INSTALLED) + endif $(PKG_INFO_DIR)/$(1).provides $$(IPKG_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-ipkg.mk @rm -rf $$(IDIR_$(1)); \ $$(call remove_ipkg_files,$(1),$$(call opkg_package_files,$(call gen_ipkg_wildcard,$(1)))) mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/CONTROL $(PKG_INFO_DIR) $(call Package/$(1)/install,$$(IDIR_$(1))) + $(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" "$$(IDIR_$(1))" "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)") $(if $(Package/$(1)/install-overlay),mkdir -p $(PACKAGE_DIR) $$(IDIR_$(1))/rootfs-overlay) $(call Package/$(1)/install-overlay,$$(IDIR_$(1))/rootfs-overlay) -find $$(IDIR_$(1)) -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| $(XARGS) rm -rf diff --git a/include/package.mk b/include/package.mk index d38d52908e..0f1dd5cc50 100644 --- a/include/package.mk +++ b/include/package.mk @@ -178,6 +178,7 @@ Build/Exports=$(Build/Exports/Default) define Build/CoreTargets STAMP_PREPARED:=$$(STAMP_PREPARED) STAMP_CONFIGURED:=$$(STAMP_CONFIGURED) + PKG_ABI_VERSION:=$$(PKG_ABI_VERSION) $(if $(QUILT),$(Build/Quilt)) $(call Build/Autoclean) @@ -236,6 +237,7 @@ define Build/CoreTargets "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \ "$(STAGING_DIR)"; \ fi + $(if $(PKG_ABI_VERSION),$(SET_ABI_VERSION) "$(PKG_ABI_VERSION)" $(TMP_DIR)/stage-$(PKG_DIR_NAME)) if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \ (cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \ $(call locked, \ |