[git commit] Tweaks to build process for embedded scripts

Denys Vlasenko vda.linux at googlemail.com
Tue Nov 27 09:38:10 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=7b42f8fc76d78fe9c6b0cbe15e1425f2fd9fb5e8
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

- Force a rebuild if a script in applets_sh is changed.

- Move the dummy usage messages for custom applets to usage.h and
  change the name from 'dummy' to 'scripted'.

- Hide an error from gen_build_files.sh if an embed directory exists
  but is empty.

- Tidy up embedded_scripts script.

v2: Remove a couple of unnecessary tests in embedded_scripts, as
    pointed out by Xabier Oneca.
    Drop the stripping of comments.

Signed-off-by: Ron Yorston <rmy at pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 Makefile                   |  2 +-
 include/applets.src.h      |  6 ------
 include/usage.src.h        |  3 +++
 scripts/embedded_scripts   | 22 ++++++++--------------
 scripts/gen_build_files.sh |  4 ++--
 5 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/Makefile b/Makefile
index 4b5a01df9..f0b4da234 100644
--- a/Makefile
+++ b/Makefile
@@ -853,7 +853,7 @@ quiet_cmd_split_autoconf   = SPLIT   include/autoconf.h -> include/config/*
 quiet_cmd_gen_embedded_scripts = GEN     include/embedded_scripts.h
       cmd_gen_embedded_scripts = $(srctree)/scripts/embedded_scripts include/embedded_scripts.h $(srctree)/embed $(srctree)/applets_sh
 #bbox# piggybacked generation of few .h files
-include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(srctree)/scripts/embedded_scripts
+include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard $(srctree)/embed/*) $(wildcard $(srctree)/applets_sh/*) $(srctree)/scripts/embedded_scripts
 	$(call cmd,split_autoconf)
 	$(call cmd,gen_bbconfigopts)
 	$(call cmd,gen_common_bufsiz)
diff --git a/include/applets.src.h b/include/applets.src.h
index a9db5d160..60968cec7 100644
--- a/include/applets.src.h
+++ b/include/applets.src.h
@@ -22,12 +22,6 @@ s     - suid type:
         BB_SUID_REQUIRE or BB_SUID_MAYBE applet.
 */
 
-#define NOUSAGE_STR "\b"
-
-#define dummy_trivial_usage NOUSAGE_STR \
-
-#define dummy_full_usage "" \
-
 #if defined(PROTOTYPES)
 # define APPLET(name,l,s)                    int name##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 # define APPLET_ODDNAME(name,main,l,s,help)  int main##_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/include/usage.src.h b/include/usage.src.h
index 00369dfb3..d22efd3ba 100644
--- a/include/usage.src.h
+++ b/include/usage.src.h
@@ -14,6 +14,9 @@
 
 #define NOUSAGE_STR "\b"
 
+#define scripted_trivial_usage NOUSAGE_STR
+#define scripted_full_usage ""
+
 #if !ENABLE_USE_BB_CRYPT || ENABLE_USE_BB_CRYPT_SHA
 # define CRYPT_METHODS_HELP_STR "des,md5,sha256/512" \
 	" (default "CONFIG_FEATURE_DEFAULT_PASSWD_ALGO")"
diff --git a/scripts/embedded_scripts b/scripts/embedded_scripts
index c2e7c6961..86ad44d1d 100755
--- a/scripts/embedded_scripts
+++ b/scripts/embedded_scripts
@@ -81,21 +81,15 @@ exec >"$target.$$"
 if [ $n -ne 0 ]
 then
 	printf '#ifdef DEFINE_SCRIPT_DATA\n'
-	if [ $n -ne 0 ]
-	then
-		printf 'const uint16_t applet_numbers[] = {\n'
-		for i in $custom_scripts $applet_scripts
-		do
-			# TODO support applets with names including invalid characters
-			printf '\tAPPLET_NO_%s,\n' $i
-		done
-		printf '};\n'
-	fi
+	printf 'const uint16_t applet_numbers[] = {\n'
+	for i in $custom_scripts $applet_scripts
+	do
+		# TODO support applets with names including invalid characters
+		printf '\tAPPLET_NO_%s,\n' $i
+	done
+	printf '};\n'
 	printf '#else\n'
-	if [ $n -ne 0 ]
-	then
-		printf 'extern const uint16_t applet_numbers[];\n'
-	fi
+	printf 'extern const uint16_t applet_numbers[];\n'
 	printf '#endif\n'
 fi
 
diff --git a/scripts/gen_build_files.sh b/scripts/gen_build_files.sh
index 64e4bffa9..362632df3 100755
--- a/scripts/gen_build_files.sh
+++ b/scripts/gen_build_files.sh
@@ -23,9 +23,9 @@ custom_scripts()
 	custom_loc="$1"
 	if [ -d "$custom_loc" ]
 	then
-		for i in $(cd "$custom_loc"; ls *)
+		for i in $(cd "$custom_loc"; ls * 2>/dev/null)
 		do
-			printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, dummy)\n" $i;
+			printf "APPLET_SCRIPTED(%s, scripted, BB_DIR_USR_BIN, BB_SUID_DROP, scripted)\n" $i;
 		done
 	fi
 }


More information about the busybox-cvs mailing list