From 3916b2a560cadab2a6e97aff0d170ec4de88f0ab Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Thu, 4 May 2006 11:38:33 +0000 Subject: [PATCH] - add script to check for missing help entries of config options Currently we have these errors: ./modutils/Config.in: No helptext for 'CONFIG_FEATURE_QUERY_MODULE_INTERFACE' ./networking/Config.in: No helptext for 'CONFIG_IPADDR' ./networking/Config.in: No helptext for 'CONFIG_IPLINK' ./networking/Config.in: No helptext for 'CONFIG_IPROUTE' ./networking/Config.in: No helptext for 'CONFIG_IPTUNNEL' ./coreutils/Config.in: No helptext for 'CONFIG_UNIX2DOS' --- Makefile | 5 +++++ scripts/checkhelp.awk | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100755 scripts/checkhelp.awk diff --git a/Makefile b/Makefile index 8c7cb41be..9e9e95755 100644 --- a/Makefile +++ b/Makefile @@ -133,6 +133,7 @@ help: @echo @echo 'Development:' @echo ' check - run the test suite for all applets' + @echo ' checkhelp - check for missing help-entries in Config.in' @echo ' randconfig - generate a random configuration' @echo ' release - create a distribution tarball' @echo ' sizes - show size of all enabled busybox symbols' @@ -350,6 +351,10 @@ check test: busybox bindir=$(top_builddir) srcdir=$(top_srcdir)/testsuite \ $(top_srcdir)/testsuite/runtest $(CHECK_VERBOSE) +.PHONY: checkhelp +checkhelp: + $(Q)$(top_srcdir)/scripts/checkhelp.awk \ + $(wildcard $(patsubst %,%/Config.in,$(SRC_DIRS) ./)) .PHONY: sizes sizes: busybox_unstripped $(NM) --size-sort $(<) diff --git a/scripts/checkhelp.awk b/scripts/checkhelp.awk new file mode 100755 index 000000000..1a7e0ea8e --- /dev/null +++ b/scripts/checkhelp.awk @@ -0,0 +1,37 @@ +#!/usr/bin/awk -f +# AWK script to check for missing help entries for config options +# +# Copyright (C) 2006 Bernhard Fischer +# +# This file is distributed under the terms and conditions of the +# MIT/X public licenses. See http://opensource.org/licenses/mit-license.html +# and notice http://www.gnu.org/licenses/license-list.html#X11License + + +/^choice/ { is_choice = 1; } +/^endchoice/ { is_choice = 0; } +/^config/ { + pos++; + conf[pos] = $2; + file[pos] = FILENAME; + if (is_choice) { + help[pos] = 1; # do not warn about 'choice' config entries. + } else { + help[pos] = 0; + } +} +/^[[:space:]]*help[[:space:]]*$/ { + help[pos] = 1; +} +BEGIN { + pos = -1; + is_choice = 0; +} +END { + for (i = 0; i < pos; i++) { +# printf("%s: help for #%i '%s' == %i\n", file[i], i, conf[i], help[i]); + if (help[i] == 0) { + printf("%s: No helptext for '%s'\n", file[i], conf[i]); + } + } +}