Browse Source

Tweaks to build process for embedded scripts

- 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@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Ron Yorston 5 years ago
parent
commit
7b42f8fc76
5 changed files with 14 additions and 23 deletions
  1. 1 1
      Makefile
  2. 0 6
      include/applets.src.h
  3. 3 0
      include/usage.src.h
  4. 8 14
      scripts/embedded_scripts
  5. 2 2
      scripts/gen_build_files.sh

+ 1 - 1
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)

+ 0 - 6
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;

+ 3 - 0
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")"

+ 8 - 14
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
 

+ 2 - 2
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
 }