diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-01 09:53:25 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-11-01 10:15:13 +0100 |
commit | 4f2ef4a836be37b25808c94f41c7c85895db6f93 (patch) | |
tree | e224e4f3b8513b35655da80b26369d42bd62d24d /Makefile | |
parent | 552796791f8c5aa12dfb790e3a94c2d905f367ee (diff) |
ash: allow shell scripts to be embedded in the binary
To assist in the deployment of shell scripts it may be convenient
to embed them in the BusyBox binary.
'Embed scripts in the binary' takes any files in the directory
'embed', concatenates them with null separators, compresses them
and embeds them in the binary.
When scripts are embedded in the binary, scripts can be run as
'busybox SCRIPT [ARGS]' or by usual (sym)link mechanism.
embed/nologin is provided as an example.
function old new delta
packed_scripts - 123 +123
unpack_scripts - 87 +87
ash_main 1103 1171 +68
run_applet_and_exit 78 128 +50
get_script_content - 32 +32
script_names - 10 +10
expmeta 663 659 -4
------------------------------------------------------------------------------
(add/remove: 4/0 grow/shrink: 2/1 up/down: 370/-4) Total: 366 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -850,11 +850,14 @@ quiet_cmd_gen_common_bufsiz = GEN include/common_bufsiz.h cmd_gen_common_bufsiz = $(srctree)/scripts/generate_BUFSIZ.sh include/common_bufsiz.h quiet_cmd_split_autoconf = SPLIT include/autoconf.h -> include/config/* cmd_split_autoconf = scripts/basic/split-include include/autoconf.h include/config +quiet_cmd_gen_embedded_scripts = GEN include/embedded_scripts.h + cmd_gen_embedded_scripts = scripts/embedded_scripts include/embedded_scripts.h embed #bbox# piggybacked generation of few .h files -include/config/MARKER: scripts/basic/split-include include/autoconf.h +include/config/MARKER: scripts/basic/split-include include/autoconf.h $(wildcard embed/*) scripts/embedded_scripts $(call cmd,split_autoconf) $(call cmd,gen_bbconfigopts) $(call cmd,gen_common_bufsiz) + $(call cmd,gen_embedded_scripts) @touch $@ # Generate some files @@ -974,6 +977,7 @@ MRPROPER_FILES += .config .config.old include/asm .version .old_version \ include/autoconf.h \ include/bbconfigopts.h \ include/bbconfigopts_bz2.h \ + include/embedded_scripts.h \ include/usage_compressed.h \ include/applet_tables.h \ include/applets.h \ |