Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 100977
b: refs/heads/master
c: 88ecf81
h: refs/heads/master
i:
  100975: d3f38a3
v: v3
  • Loading branch information
David Woodhouse authored and David Woodhouse committed Jul 10, 2008
1 parent 6a316c0 commit b0e7fe2
Show file tree
Hide file tree
Showing 4 changed files with 76 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d172e7f5c67f2d41f453c7aa83d3bdb405ef8ba5
refs/heads/master: 88ecf814c47f577248751ddbe9626d98aeef5783
13 changes: 13 additions & 0 deletions trunk/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -994,6 +994,16 @@ PHONY += depend dep
depend dep:
@echo '*** Warning: make $@ is unnecessary now.'

# ---------------------------------------------------------------------------
# Firmware install
INSTALL_FW_PATH=$(INSTALL_MOD_PATH)/lib/firmware
export INSTALL_FW_PATH

PHONY += firmware_install
firmware_install: FORCE
@mkdir -p $(objtree)/firmware
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_install

# ---------------------------------------------------------------------------
# Kernel headers
INSTALL_HDR_PATH=$(objtree)/usr
Expand Down Expand Up @@ -1080,6 +1090,7 @@ _modinst_:
# boot script depmod is the master version.
PHONY += _modinst_post
_modinst_post: _modinst_
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst
$(call cmd,depmod)

else # CONFIG_MODULES
Expand Down Expand Up @@ -1197,6 +1208,8 @@ help:
@echo '* vmlinux - Build the bare kernel'
@echo '* modules - Build all modules'
@echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
@echo ' firmware_install- Install all firmware to INSTALL_FW_PATH'
@echo ' (default: $$(INSTALL_MOD_PATH)/lib/firmware)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
@echo ' dir/file.ko - Build module including final link'
Expand Down
24 changes: 17 additions & 7 deletions trunk/firmware/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,22 @@ fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir))

fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE))

# If CONFIG_FIRMWARE_IN_KERNEL is not set, then don't include any firmware
ifneq ($(CONFIG_FIRMWARE_IN_KERNEL),y)
fw-shipped-y :=
endif
# There are three cases to care about:
# 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should
# include the firmware files to include, according to .config
# 2. 'make modules_install', which will install firmware for modules, and
# _also_ for the in-kernel drivers when CONFIG_FIRMWARE_IN_KERNEL=n
# 3. 'make firmware_install', which installs all firmware, unconditionally.

firmware-y := $(fw-external-y) $(fw-shipped-y)
firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(firmware-y) $(fw-shipped-))))
# For the former two cases we want $(fw-shipped-y) and $(fw-shipped-m) to be
# accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all).
# But be aware that the config file might not be included at all.


fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)

# Directories which we _might_ need to create, so we have a rule for them.
firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(fw-external-y) $(fw-shipped-all))))

quiet_cmd_mkdir = MKDIR $(patsubst $(objtree)/%,%,$@)
cmd_mkdir = mkdir -p $@
Expand Down Expand Up @@ -81,7 +90,8 @@ $(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
$(firmware-dirs):
$(call cmd,mkdir)

obj-y := $(patsubst %,%.gen.o, $(firmware-y))
obj-y += $(patsubst %,%.gen.o, $(fw-external-y))
obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y))

# Remove .S files and binaries created from ihex
# (during 'make clean' .config isn't included so they're all in $(fw-shipped-))
Expand Down
45 changes: 45 additions & 0 deletions trunk/scripts/Makefile.fwinst
Original file line number Diff line number Diff line change
@@ -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

# 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:

0 comments on commit b0e7fe2

Please sign in to comment.