Allow users to specify other barebox image naming schemes. Now users can
specify a list of:
 - unique image names and/or
 - matching name patterns using wildcards.

While on it I fixed the leaking image-results upon a 'ptxdist clean
barebox' command. Now all barebox artefacts are removed from the
$(IMAGEDIR).

Signed-off-by: Marco Felsch <[email protected]>
---
 platforms/barebox.in |  9 +++++++++
 rules/barebox.make   | 19 +++++++++++++------
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/platforms/barebox.in b/platforms/barebox.in
index 526d7ede4..b92cf485e 100644
--- a/platforms/barebox.in
+++ b/platforms/barebox.in
@@ -39,6 +39,15 @@ config BAREBOX_CONFIG
          This entry specifies the .config file used to compile
          barebox.
 
+config BAREBOX_IMAGES
+       prompt "barebox images to install"
+       string
+       default "barebox-*.img"
+       help
+         A comma seperated list of images which should be installed
+         into the $(IMAGEDIR). The list can contain full image names
+         and/or wildcard pattern image names.
+
 config BAREBOX_EXTRA_ENV
        prompt "extend the builtin barebox environment"
        bool
diff --git a/rules/barebox.make b/rules/barebox.make
index d1b5fc598..65bb8251e 100644
--- a/rules/barebox.make
+++ b/rules/barebox.make
@@ -148,6 +148,9 @@ $(STATEDIR)/barebox.install:
 # Target-Install
 # ----------------------------------------------------------------------------
 
+BAREBOX_IMAGES_DIR := $(BAREBOX_BUILD_DIR)/images
+BAREBOX_IMAGES := $(strip $(subst $(ptx/def/comma),$(ptx/def/space),$(call 
remove_quotes, $(PTXCONF_BAREBOX_IMAGES))))
+
 $(STATEDIR)/barebox.targetinstall:
        @$(call targetinfo)
 
@@ -166,14 +169,15 @@ ifneq ($(strip $(BAREBOX_PROGS_TARGET_y)),)
 endif
 
        @rm -f $(IMAGEDIR)/barebox-image
-       @if [ -d $(BAREBOX_BUILD_DIR)/images ]; then \
-               find $(BAREBOX_BUILD_DIR)/images/ -name "barebox-*.img" | sort 
| while read image; do \
-                       install -D -m644 $$image $(IMAGEDIR)/`basename 
$$image`; \
+       @$(foreach _image, $(BAREBOX_IMAGES), \
+               $(foreach image, $(wildcard $(BAREBOX_IMAGES_DIR)/$(_image)), \
+                       install -D -m644 $(image) $(IMAGEDIR)/$(notdir 
$(image)); \
                        if [ ! -e $(IMAGEDIR)/barebox-image ]; then \
-                               ln -sf `basename $$image` 
$(IMAGEDIR)/barebox-image; \
+                               ln -sf $(notdir $(image)) 
$(IMAGEDIR)/barebox-image; \
                        fi; \
-               done; \
-       fi
+               ) \
+       )
+
        @if [ -e $(IMAGEDIR)/barebox-image ]; then \
                :; \
        elif [ -e $(BAREBOX_BUILD_DIR)/barebox-flash-image ]; then \
@@ -199,6 +203,9 @@ $(STATEDIR)/barebox.clean:
        @$(call clean_pkg, BAREBOX)
        @$(foreach prog, $(BAREBOX_PROGS_HOST), \
                rm -vf $(PTXDIST_SYSROOT_HOST)/bin/$(notdir $(prog))$(ptx/nl))
+       @$(foreach _image, $(BAREBOX_IMAGES), \
+               $(foreach image, $(wildcard $(IMAGEDIR)/$(_image)), \
+                       rm -vf $(image);))
        @rm -vf $(IMAGEDIR)/barebox-image 
$(IMAGEDIR)/barebox-default-environment
 
 # ----------------------------------------------------------------------------
-- 
2.20.1


_______________________________________________
ptxdist mailing list
[email protected]
To unsubscribe, send a mail with subject "unsubscribe" to 
[email protected]

Reply via email to