Makefile.inc: Rewrite $(files-in-dir)
The `files-in-dir` macro is supposed to return all files (out of a given set) that reside directly (non-recursive) in a given directory. While the current solution worked splendidly, we can achieve the same without recursive macros that look at each parent dir individually. Beside providing better readability, this also fixes a future make error, as make doesn't like the variable name ` ` anymore ;) Change-Id: Iac0eacdf91b8b5098592ad301c1f3fdb632454e9 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/27324 Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
7d48ac5c7d
commit
afc74cab6e
26
Makefile.inc
26
Makefile.inc
|
@ -155,29 +155,19 @@ ws_to_under=$(shell echo '$1' | tr ' \t' '_')
|
|||
# Helper functions for ramstage postprocess
|
||||
spc :=
|
||||
spc +=
|
||||
$(spc) :=
|
||||
$(spc) +=
|
||||
comma := ,
|
||||
|
||||
# files-in-dir-recursive,dir,files
|
||||
files-in-dir-recursive=$(filter $(1)%,$(2))
|
||||
# Returns all files and dirs below `dir` (recursively).
|
||||
# files-below-dir,dir,files
|
||||
files-below-dir=$(filter $(1)%,$(2))
|
||||
|
||||
# parent-dir,dir/
|
||||
parent-dir=$(dir $(if $(patsubst /%,,$(1)),,/)$(subst $( ),/,$(strip $(subst /, ,$(1)))))
|
||||
|
||||
# filters out exactly the directory specified
|
||||
# filter-out-dir,dir_to_keep,dirs
|
||||
filter-out-dir=$(filter-out $(1),$(2))
|
||||
|
||||
# filters out dir_to_keep and all its parents
|
||||
# filter-out-dirs,dir_to_keep,dirs
|
||||
filter-out-dirs=$(if $(filter-out ./ /,$(1)),$(call filter-out-dirs,$(call parent-dir,$(1)),$(call filter-out-dir,$(1),$(2))),$(call filter-out-dir,$(1),$(2)))
|
||||
|
||||
# dir-wildcards,dirs
|
||||
dir-wildcards=$(addsuffix %,$(1))
|
||||
# Returns all dirs below `dir` (recursively).
|
||||
# dirs-below-dir,dir,files
|
||||
dirs-below-dir=$(filter-out $(1),$(sort $(dir $(call files-below-dir,$(1),$(2)))))
|
||||
|
||||
# Returns all files directly in `dir` (non-recursively).
|
||||
# files-in-dir,dir,files
|
||||
files-in-dir=$(filter-out $(call dir-wildcards,$(call filter-out-dirs,$(1),$(sort $(dir $(2))))),$(call files-in-dir-recursive,$(1),$(2)))
|
||||
files-in-dir=$(filter-out $(addsuffix %,$(call dirs-below-dir,$(1),$(2))),$(call files-below-dir,$(1),$(2)))
|
||||
|
||||
#######################################################################
|
||||
# reduce command line length by linking the objects of each
|
||||
|
|
Loading…
Reference in New Issue