diff mbox

firmware: fix directory creation rule matching with make 3.80

Message ID 1348086644-11683-1-git-send-email-mark.asselstine@windriver.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mark Asselstine Sept. 19, 2012, 8:30 p.m. UTC
Since make 3.80 doesn't support secondary expansion it uses a fallback
rule to create firmware directories which is matched after primary
expansion of the $(installed-fw) rule's prerequisite. Commit
6c7080a61fc7 [firmware: fix directory creation rule matching with make
3.82] changed the expression generated after primary expansion such
that the fallback was not matched. Updating the fallback rule to match
the new look primary expansion is not an option for various reasons.

The trailing slash added here to $(INSTALL_FW_PATH)/. while defining
installed-fw-dirs fixes builds with make 3.82 since this will provide
a matching rule for $(INSTALL_FW_PATH)/$$(dir %) when % is in the base
firmware directory (ie. $(dir %) gives './'). Versions of make prior
to 3.82 will strip this trailing slash along with the one generated by
$(dir %) when % is in the base firmware directory and as such continue
to function as before.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
---

OK, I finally got my head around what was going on and I appologize
for my first attempt, I did manage to screw up earlier versions of
make.  That said can you guys have a look at this patch and provide
feedback? I can split this into a revert and fix, but having this as
it is may provide guidance for others that might come along and make
similar mistakes.

Mark

 scripts/Makefile.fwinst |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jan Beulich Sept. 20, 2012, 8:17 a.m. UTC | #1
>>> On 19.09.12 at 22:30, Mark Asselstine <mark.asselstine@windriver.com> wrote:
> Since make 3.80 doesn't support secondary expansion it uses a fallback
> rule to create firmware directories which is matched after primary
> expansion of the $(installed-fw) rule's prerequisite. Commit
> 6c7080a61fc7 [firmware: fix directory creation rule matching with make
> 3.82] changed the expression generated after primary expansion such
> that the fallback was not matched. Updating the fallback rule to match
> the new look primary expansion is not an option for various reasons.
> 
> The trailing slash added here to $(INSTALL_FW_PATH)/. while defining
> installed-fw-dirs fixes builds with make 3.82 since this will provide
> a matching rule for $(INSTALL_FW_PATH)/$$(dir %) when % is in the base
> firmware directory (ie. $(dir %) gives './'). Versions of make prior
> to 3.82 will strip this trailing slash along with the one generated by
> $(dir %) when % is in the base firmware directory and as such continue
> to function as before.
> 
> Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>

Tested-by: Jan Beulich <jbeulich@suse.com>

> --- a/scripts/Makefile.fwinst
> +++ b/scripts/Makefile.fwinst
> @@ -27,7 +27,7 @@ endif
>  installed-mod-fw := $(addprefix $(INSTALL_FW_PATH)/,$(mod-fw))
>  
>  installed-fw := $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-all))
> -installed-fw-dirs := $(sort $(dir $(installed-fw))) $(INSTALL_FW_PATH)/.
> +installed-fw-dirs := $(sort $(dir $(installed-fw))) $(INSTALL_FW_PATH)/./
>  
>  # Workaround for make < 3.81, where .SECONDEXPANSION doesn't work.
>  PHONY += $(INSTALL_FW_PATH)/$$(%) install-all-dirs
> @@ -42,7 +42,7 @@ quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
>  $(installed-fw-dirs):
>  	$(call cmd,mkdir)
>  
> -$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $$(dir 
> $(INSTALL_FW_PATH)/%)
> +$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(INSTALL_FW_PATH)/$$(dir 
> %)
>  	$(call cmd,install)
>  
>  PHONY +=  __fw_install __fw_modinst FORCE
> -- 
> 1.7.9.5



--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michal Marek Sept. 21, 2012, 11:16 a.m. UTC | #2
On Thu, Sep 20, 2012 at 09:17:14AM +0100, Jan Beulich wrote:
> >>> On 19.09.12 at 22:30, Mark Asselstine <mark.asselstine@windriver.com> wrote:
> > Since make 3.80 doesn't support secondary expansion it uses a fallback
> > rule to create firmware directories which is matched after primary
> > expansion of the $(installed-fw) rule's prerequisite. Commit
> > 6c7080a61fc7 [firmware: fix directory creation rule matching with make
> > 3.82] changed the expression generated after primary expansion such
> > that the fallback was not matched. Updating the fallback rule to match
> > the new look primary expansion is not an option for various reasons.
> > 
> > The trailing slash added here to $(INSTALL_FW_PATH)/. while defining
> > installed-fw-dirs fixes builds with make 3.82 since this will provide
> > a matching rule for $(INSTALL_FW_PATH)/$$(dir %) when % is in the base
> > firmware directory (ie. $(dir %) gives './'). Versions of make prior
> > to 3.82 will strip this trailing slash along with the one generated by
> > $(dir %) when % is in the base firmware directory and as such continue
> > to function as before.
> > 
> > Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
> 
> Tested-by: Jan Beulich <jbeulich@suse.com>

Applied to kbuild.git#rc-fixes, thanks.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/Makefile.fwinst b/scripts/Makefile.fwinst
index c3f69ae..4d908d1 100644
--- a/scripts/Makefile.fwinst
+++ b/scripts/Makefile.fwinst
@@ -27,7 +27,7 @@  endif
 installed-mod-fw := $(addprefix $(INSTALL_FW_PATH)/,$(mod-fw))
 
 installed-fw := $(addprefix $(INSTALL_FW_PATH)/,$(fw-shipped-all))
-installed-fw-dirs := $(sort $(dir $(installed-fw))) $(INSTALL_FW_PATH)/.
+installed-fw-dirs := $(sort $(dir $(installed-fw))) $(INSTALL_FW_PATH)/./
 
 # Workaround for make < 3.81, where .SECONDEXPANSION doesn't work.
 PHONY += $(INSTALL_FW_PATH)/$$(%) install-all-dirs
@@ -42,7 +42,7 @@  quiet_cmd_install = INSTALL $(subst $(srctree)/,,$@)
 $(installed-fw-dirs):
 	$(call cmd,mkdir)
 
-$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $$(dir $(INSTALL_FW_PATH)/%)
+$(installed-fw): $(INSTALL_FW_PATH)/%: $(obj)/% | $(INSTALL_FW_PATH)/$$(dir %)
 	$(call cmd,install)
 
 PHONY +=  __fw_install __fw_modinst FORCE