aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen_build_files.sh (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gen_build_files: Use C locale when calling sed on globbed filesKhem Raj2021-06-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When include/applets.h is re-generated it generates code macros in include/applets.h e.g. IF_XZCAT(APPLET_ODDNAME(xzcat, unxz, BB_DIR_USR_BIN, BB_SUID_DROP, xzcat)) ... IF_CHVT(APPLET_NOEXEC(chvt, chvt, BB_DIR_USR_BIN, BB_SUID_DROP, chvt)) ... sed is used to process source files like below to feed into this header generation sed -n 's@^//applet:@@p' "$srctree"/*/*.c "$srctree"/*/*/*.c this means we let shell decide the order of .c files being fed into sed tool, applets.h has code snippets thats generated out of code fragments from these .c files and the order of the generated code depends on the order of .c files being fed to sed and then piped to generate tool, even though the generated code is logically same, it does result in re-odered code in applets.h based on which shell was used during build on exact busybox sources since sort order is different based on chosen locale and also default shell being bash or dash This sets the environment variable LC_ALL to the value C, which will enforce bytewise sorting, irrespective of the shell Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: allow hush to run embedded scriptsRon Yorston2018-11-271-1/+1
| | | | | | | | | | | | | Embedded scripts require a shell to be present in the BusyBox binary. Allow either ash or hush to be used for this purpose. If both are enabled ash takes precedence. The size of the binary is unchanged in the default configuration: both ash and hush are present but support for embedded scripts isn't compiled into hush. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Tweaks to build process for embedded scriptsRon Yorston2018-11-271-2/+2
| | | | | | | | | | | | | | | | | | | - 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>
* Treat custom and applet scripts as appletsRon Yorston2018-11-171-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BusyBox has support for embedded shell scripts. Two types can be distinguished: custom scripts and scripts implementing applets. Custom scripts should be placed in the 'embed' directory at build time. They are given a default applet configuration and appear as applets to the user but no further configuration is possible. Applet scripts are integrated with the BusyBox build system and are intended to be used to ship standard applets that just happen to be implemented as scripts. They can be configured at build time and appear just like native applets. Such scripts should be placed in the 'applets_sh' directory. A stub C program should be written to provide the usual applet configuration details and placed in a suitable subsystem directory. It may be helpful to have a configuration option to enable any dependencies the script requires: see the 'nologin' applet for an example. function old new delta scripted_main - 41 +41 applet_names 2773 2781 +8 applet_main 1600 1604 +4 i2cdetect_main 672 674 +2 applet_suid 100 101 +1 applet_install_loc 200 201 +1 applet_flags 100 101 +1 packed_usage 33180 33179 -1 tryexec 159 152 -7 evalcommand 1661 1653 -8 script_names 9 - -9 packed_scripts 123 114 -9 complete_cmd_dir_file 826 811 -15 shellexec 271 254 -17 find_command 1007 990 -17 busybox_main 642 624 -18 run_applet_and_exit 100 78 -22 find_script_by_name 51 - -51 ------------------------------------------------------------------------------ (add/remove: 1/2 grow/shrink: 6/9 up/down: 58/-174) Total: -116 bytes text data bss dec hex filename 950034 477 7296 957807 e9d6f busybox_old 949918 477 7296 957691 e9cfb busybox_unstripped Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* remove "local" bashism from a few scriptsDenys Vlasenko2017-01-241-1/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: for "find", use POSIX not operator (!) instead of -notDenys Vlasenko2014-03-161-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: fix non-portable sed constructs.Matthias Andree2014-01-101-2/+12
| | | | | | | | This includes proper line breaks for labels and closing braces, and removing non-portable \n and \t in s/// functions. Signed-off-by: Matthias Andree <matthias.andree@gmx.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh: exclude hidden directoriesPaulius Zaleckas2012-01-301-2/+5
| | | | | | | | | | | | | | | | | I am using quilt to manage patches internally. Quilt creates dir .pc and stores unmodified files there. Since I made change in one of Config.src quilt made a copy in .pc/xxx.patch/xxx/Config.src. When I run make it calls gen_build_files.sh and it generates .pc/xxx.patch/xxx/Config.in. Now when I want to pop patch quilt thinks I have made changes to original xxx/Config.in. IMO the best solution is just to ignore hidden directories in gen_build_files.sh. This also results in shorter build time in case busybox is under git/svn versioning, since it avoids searching many directories for Config.src. Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh: simplify "print everything up to INSERT line" partDenys Vlasenko2011-10-191-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files: don't pass 200k+ strings as params. Closes 4321Denys Vlasenko2011-10-191-33/+23
| | | | | | Also removes one grep per generated file. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh: do not use "sed --" for nowDenys Vlasenko2011-04-161-4/+8
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh: better commentDenys Vlasenko2010-11-251-3/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: fix for dashDenys Vlasenko2010-11-241-3/+6
| | | | Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
* gen_build_files.sh: restore deleted commentDenys Vlasenko2010-11-211-0/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh: rewrite with sedMike Frysinger2010-11-161-53/+47
| | | | | | | | | The shell parsing of files is incredibly slow on many systems. With one report, the process was taking a minute or two which made people thing the build was hung. So rewrite the craziness with sed and proper shell functions. On an idle system, this cut the runtime by half. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* OpenBSD compatibilityWaldemar Brodkorb2010-08-061-1/+1
| | | | | Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Fix out-of-tree build's recursionAlexander Shishkin2010-07-181-2/+2
| | | | | | | | | | | | | | While doing O=build build I've noticed that it was getting gradually slower with each invocation. The reason turned out to be that the build directory was inside the source tree and got recreated inside itself with all its subdirectories. This patch changes the behavior so that only the directories with Kbuild.src or Config.src in them are created in the out-of-tree build directory. A quick rebuild from scratch revealed no problems with this. Signed-off-by: Alexander Shishkin <virtuoso@slind.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* fix make O=dir buildDenys Vlasenko2010-07-091-1/+6
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh is an order prerequisite only for autoconf.hDenys Vlasenko2010-06-251-28/+20
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* make it possible to keep usage texts in .c filesDenys Vlasenko2010-06-061-1/+25
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* make it possible to have include/applets.h-esque entries in .c filesDenys Vlasenko2010-06-061-8/+23
| | | | | | As an example, bunzip2 and bzcat is changed to use it. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: make gen_build_files.sh messages more inline with the restDenys Vlasenko2010-05-271-2/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* make scripts/gen_build_files.sh standard-cleanDenys Vlasenko2010-05-181-5/+8
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* scripts/gen_build_files.sh: revert to using /bin/shDenys Vlasenko2010-05-171-1/+1
| | | | | | People want busybox to build w/o bash, with /bin/sh = ash Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh uses bashism, document itDenys Vlasenko2010-05-151-5/+5
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files: use raw reads (ones which don't eat backslashes)Denys Vlasenko2010-05-141-3/+3
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* more randomconfig testsuite fixesDenys Vlasenko2010-05-101-40/+40
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* gen_build_files.sh should be executableDenys Vlasenko2010-05-101-0/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tweak scripts/gen_build_files.shDenys Vlasenko2010-05-091-8/+9
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* make it possible to keep Config/Kbuild snippets in *.c filesDenys Vlasenko2010-05-091-0/+55
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>