summaryrefslogtreecommitdiffstats
path: root/scripts/Makefile.fwinst
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/Makefile.fwinst')
-rw-r--r--scripts/Makefile.fwinst45
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
new file mode 100644
index 00000000000..3d2f4609578
--- /dev/null
+++ b/scripts/Makefile.fwinst
@@ -0,0 +1,45 @@
+# ==========================================================================
+# Installing firmware
+#
+# We don't include the .config, so all firmware files are in $(fw-shipped-)
+# rather than in $(fw-shipped-y) or $(fw-shipped-n).
+# ==========================================================================
+
+INSTALL := install
+src := $(obj)
+
+# For modules_install installing firmware, we want to see .config
+# But for firmware_install, we don't care, but don't want to require it.
+-include $(objtree)/.config
+
+include scripts/Kbuild.include
+include $(srctree)/$(obj)/Makefile
+
+include scripts/Makefile.host
+
+mod-fw := $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-m))
+
+# If CONFIG_FIRMWARE_IN_KERNEL isn't set, then install the
+# firmware for in-kernel drivers too.
+ifndef CONFIG_FIRMWARE_IN_KERNEL
+mod-fw += $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-y))
+endif
+
+installed-fw := $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-all))
+installed-fw-dirs := $(sort $(dir $(installed-fw))) $(INSTALL_FW_PATH)/.
+
+quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
+ cmd_install = $(INSTALL) -m0644 $< $@
+
+$(installed-fw-dirs):
+ $(call cmd,mkdir)
+
+$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(INSTALL_FW_PATH)/$$(dir %)/
+ $(call cmd,install)
+
+.PHONY: __fw_install __fw_modinst FORCE
+
+__fw_install: $(installed-fw)
+__fw_modinst: $(mod-fw)
+
+FORCE: