diff --git a/package/linux-firmware/linux-firmware.mk b/package/linux-firmware/linux-firmware.mk index f23da171c6..9bc59435ef 100644 --- a/package/linux-firmware/linux-firmware.mk +++ b/package/linux-firmware/linux-firmware.mk @@ -638,22 +638,10 @@ LINUX_FIRMWARE_FILES += ti_3410.fw ti_5052.fw \ LINUX_FIRMWARE_ALL_LICENSE_FILES += LICENCE.moxa endif -ifneq ($(LINUX_FIRMWARE_FILES),) -define LINUX_FIRMWARE_INSTALL_FILES +ifneq ($(LINUX_FIRMWARE_FILES)$(LINUX_FIRMWARE_DIRS),) +define LINUX_FIRMWARE_BUILD_CMDS cd $(@D) && \ - $(TAR) cf install.tar $(sort $(LINUX_FIRMWARE_FILES)) && \ - $(TAR) xf install.tar -C $(TARGET_DIR)/lib/firmware -endef -endif - -ifneq ($(LINUX_FIRMWARE_DIRS),) -# We need to rm-rf the destination directory to avoid copying -# into it in itself, should we re-install the package. -define LINUX_FIRMWARE_INSTALL_DIRS - $(foreach d,$(LINUX_FIRMWARE_DIRS), \ - rm -rf $(TARGET_DIR)/lib/firmware/$(d); \ - mkdir -p $(dir $(TARGET_DIR)/lib/firmware/$(d)); \ - cp -a $(@D)/$(d) $(TARGET_DIR)/lib/firmware/$(d)$(sep)) + $(TAR) cf br-firmware.tar $(sort $(LINUX_FIRMWARE_FILES) $(LINUX_FIRMWARE_DIRS)) endef endif @@ -686,7 +674,9 @@ endif # sure we canonicalize the pointed-to file, to cover the symlinks of the form # a/foo -> ../b/foo where a/ (the directory where to put the symlink) does # not yet exist. -define LINUX_FIRMWARE_CREATE_SYMLINKS +define LINUX_FIRMWARE_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/lib/firmware + $(TAR) xf $(@D)/br-firmware.tar -C $(TARGET_DIR)/lib/firmware/ cd $(TARGET_DIR)/lib/firmware/ ; \ sed -r -e '/^Link: (.+) -> (.+)$$/!d; s//\1 \2/' $(@D)/WHENCE | \ while read f d; do \ @@ -697,11 +687,4 @@ define LINUX_FIRMWARE_CREATE_SYMLINKS done endef -define LINUX_FIRMWARE_INSTALL_TARGET_CMDS - mkdir -p $(TARGET_DIR)/lib/firmware - $(LINUX_FIRMWARE_INSTALL_FILES) - $(LINUX_FIRMWARE_INSTALL_DIRS) - $(LINUX_FIRMWARE_CREATE_SYMLINKS) -endef - $(eval $(generic-package))