# SPDX-License-Identifier: GPL-2.0-only
# ==========================================================================
# Install unstripped copies of vDSO
# ==========================================================================

PHONY := __default
__default:
	@:

include $(srctree)/scripts/Kbuild.include

install-dir := $(MODLIB)/vdso

define gen_install_rules

src := $$(firstword $$(subst :,$(space),$(1)))
dest := $(install-dir)/$$(or $$(word 2,$$(subst :,$(space),$(1))),$$(patsubst %.dbg,%,$$(notdir $(1))))

__default: $$(dest)
$$(dest): $$(src) FORCE
	$$(call cmd,install)

# Some architectures create .build-id symlinks
ifneq ($(filter arm s390 sparc x86, $(SRCARCH)),)
link := $(install-dir)/.build-id/$$(shell $(READELF) -n $$(src) | sed -n 's@^.*Build ID: \(..\)\(.*\)@\1/\2@p').debug

__default: $$(link)
$$(link): $$(dest) FORCE
	$$(call cmd,symlink)
endif

endef

$(foreach x, $(sort $(INSTALL_FILES)), $(eval $(call gen_install_rules,$(x))))

quiet_cmd_install = INSTALL $@
      cmd_install = mkdir -p $(dir $@); cp $< $@

quiet_cmd_symlink = SYMLINK $@
      cmd_symlink = mkdir -p $(dir $@); ln -sf --relative $< $@

PHONY += FORCE
FORCE:

.PHONY: $(PHONY)
