[Buildroot] [PATCH v5 13/13] [RFC] list-defconfigs: support defconfigs in subdirectories

Arnout Vandecappelle (Essensium/Mind) arnout at mind.be
Thu Apr 6 18:18:53 UTC 2017


Now defconfigs in subdirectories are supported, list-defconfigs should
also report them.

The obvious way to do this would be to use

	find $(1)/configs -name \*_defconfig

However, it is difficult to keep its output sorted properly: we don't
want defconfigs in subdirectories to appear intermingled with the rest.

The output tends to become a little bit messy, because defconfigs in
subdirectories will typically need more than 35 characters. If we can
find a solution for that, it can be done in a later patch.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>
---
With the ugly output, and the uglification of the code, I'm not entirely
sure that we really want this patch.
---
 Makefile | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index b68e464da6..186e8b6d88 100644
--- a/Makefile
+++ b/Makefile
@@ -1013,18 +1013,20 @@ help:
 # $(2): br2-external name, empty for bundled
 define list-defconfigs
 	@first=true; \
-	for defconfig in $(1)/configs/*_defconfig; do \
-		[ -f "$${defconfig}" ] || continue; \
-		if $${first}; then \
-			if [ "$(2)" ]; then \
-				printf 'External configs in "$(call qstrip,$(2))":\n'; \
-			else \
-				printf "Built-in configs:\n"; \
+	for dir in `find $(1)/configs/ -type d`; do \
+		for defconfig in $${dir}/*_defconfig; do \
+			[ -f "$${defconfig}" ] || continue; \
+			if $${first}; then \
+				if [ "$(2)" ]; then \
+					printf 'External configs in "$(call qstrip,$(2))":\n'; \
+				else \
+					printf "Built-in configs:\n"; \
+				fi; \
+				first=false; \
 			fi; \
-			first=false; \
-		fi; \
-		defconfig="$${defconfig##*/}"; \
-		printf "  %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \
+			defconfig="$${defconfig##$(1)/configs/}"; \
+			printf "  %-35s - Build for %s\n" "$${defconfig}" "$${defconfig%_defconfig}"; \
+		done; \
 	done; \
 	$${first} || printf "\n"
 endef
-- 
2.11.0




More information about the buildroot mailing list