Config.in 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. # DO NOT EDIT. This file is generated from Config.src
  2. #
  3. # For a description of the syntax of this configuration file,
  4. # see scripts/kbuild/config-language.txt.
  5. #
  6. menu "Shells"
  7. config BUSYBOX_CONFIG_ASH
  8. bool "ash"
  9. default BUSYBOX_DEFAULT_ASH
  10. depends on !BUSYBOX_CONFIG_NOMMU
  11. help
  12. Tha 'ash' shell adds about 60k in the default configuration and is
  13. the most complete and most pedantically correct shell included with
  14. busybox. This shell is actually a derivative of the Debian 'dash'
  15. shell (by Herbert Xu), which was created by porting the 'ash' shell
  16. (written by Kenneth Almquist) from NetBSD.
  17. config BUSYBOX_CONFIG_ASH_BASH_COMPAT
  18. bool "bash-compatible extensions"
  19. default BUSYBOX_DEFAULT_ASH_BASH_COMPAT
  20. depends on BUSYBOX_CONFIG_ASH
  21. help
  22. Enable bash-compatible extensions.
  23. config BUSYBOX_CONFIG_ASH_IDLE_TIMEOUT
  24. bool "Idle timeout variable"
  25. default BUSYBOX_DEFAULT_ASH_IDLE_TIMEOUT
  26. depends on BUSYBOX_CONFIG_ASH
  27. help
  28. Enables bash-like auto-logout after $TMOUT seconds of idle time.
  29. config BUSYBOX_CONFIG_ASH_JOB_CONTROL
  30. bool "Job control"
  31. default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
  32. depends on BUSYBOX_CONFIG_ASH
  33. help
  34. Enable job control in the ash shell.
  35. config BUSYBOX_CONFIG_ASH_ALIAS
  36. bool "Alias support"
  37. default BUSYBOX_DEFAULT_ASH_ALIAS
  38. depends on BUSYBOX_CONFIG_ASH
  39. help
  40. Enable alias support in the ash shell.
  41. config BUSYBOX_CONFIG_ASH_GETOPTS
  42. bool "Builtin getopt to parse positional parameters"
  43. default BUSYBOX_DEFAULT_ASH_GETOPTS
  44. depends on BUSYBOX_CONFIG_ASH
  45. help
  46. Enable support for getopts builtin in ash.
  47. config BUSYBOX_CONFIG_ASH_BUILTIN_ECHO
  48. bool "Builtin version of 'echo'"
  49. default BUSYBOX_DEFAULT_ASH_BUILTIN_ECHO
  50. depends on BUSYBOX_CONFIG_ASH
  51. help
  52. Enable support for echo builtin in ash.
  53. config BUSYBOX_CONFIG_ASH_BUILTIN_PRINTF
  54. bool "Builtin version of 'printf'"
  55. default BUSYBOX_DEFAULT_ASH_BUILTIN_PRINTF
  56. depends on BUSYBOX_CONFIG_ASH
  57. help
  58. Enable support for printf builtin in ash.
  59. config BUSYBOX_CONFIG_ASH_BUILTIN_TEST
  60. bool "Builtin version of 'test'"
  61. default BUSYBOX_DEFAULT_ASH_BUILTIN_TEST
  62. depends on BUSYBOX_CONFIG_ASH
  63. help
  64. Enable support for test builtin in ash.
  65. config BUSYBOX_CONFIG_ASH_HELP
  66. bool "help builtin"
  67. default BUSYBOX_DEFAULT_ASH_HELP
  68. depends on BUSYBOX_CONFIG_ASH
  69. help
  70. Enable help builtin in ash.
  71. config BUSYBOX_CONFIG_ASH_CMDCMD
  72. bool "'command' command to override shell builtins"
  73. default BUSYBOX_DEFAULT_ASH_CMDCMD
  74. depends on BUSYBOX_CONFIG_ASH
  75. help
  76. Enable support for the ash 'command' builtin, which allows
  77. you to run the specified command with the specified arguments,
  78. even when there is an ash builtin command with the same name.
  79. config BUSYBOX_CONFIG_ASH_MAIL
  80. bool "Check for new mail on interactive shells"
  81. default BUSYBOX_DEFAULT_ASH_MAIL
  82. depends on BUSYBOX_CONFIG_ASH
  83. help
  84. Enable "check for new mail" function in the ash shell.
  85. config BUSYBOX_CONFIG_ASH_OPTIMIZE_FOR_SIZE
  86. bool "Optimize for size instead of speed"
  87. default BUSYBOX_DEFAULT_ASH_OPTIMIZE_FOR_SIZE
  88. depends on BUSYBOX_CONFIG_ASH
  89. help
  90. Compile ash for reduced size at the price of speed.
  91. config BUSYBOX_CONFIG_ASH_RANDOM_SUPPORT
  92. bool "Pseudorandom generator and $RANDOM variable"
  93. default BUSYBOX_DEFAULT_ASH_RANDOM_SUPPORT
  94. depends on BUSYBOX_CONFIG_ASH
  95. help
  96. Enable pseudorandom generator and dynamic variable "$RANDOM".
  97. Each read of "$RANDOM" will generate a new pseudorandom value.
  98. You can reset the generator by using a specified start value.
  99. After "unset RANDOM" the generator will switch off and this
  100. variable will no longer have special treatment.
  101. config BUSYBOX_CONFIG_ASH_EXPAND_PRMT
  102. bool "Expand prompt string"
  103. default BUSYBOX_DEFAULT_ASH_EXPAND_PRMT
  104. depends on BUSYBOX_CONFIG_ASH
  105. help
  106. "PS#" may contain volatile content, such as backquote commands.
  107. This option recreates the prompt string from the environment
  108. variable each time it is displayed.
  109. config BUSYBOX_CONFIG_CTTYHACK
  110. bool "cttyhack"
  111. default BUSYBOX_DEFAULT_CTTYHACK
  112. help
  113. One common problem reported on the mailing list is the "can't
  114. access tty; job control turned off" error message, which typically
  115. appears when one tries to use a shell with stdin/stdout on
  116. /dev/console.
  117. This device is special - it cannot be a controlling tty.
  118. The proper solution is to use the correct device instead of
  119. /dev/console.
  120. cttyhack provides a "quick and dirty" solution to this problem.
  121. It analyzes stdin with various ioctls, trying to determine whether
  122. it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
  123. On Linux it also checks sysfs for a pointer to the active console.
  124. If cttyhack is able to find the real console device, it closes
  125. stdin/out/err and reopens that device.
  126. Then it executes the given program. Opening the device will make
  127. that device a controlling tty. This may require cttyhack
  128. to be a session leader.
  129. Example for /etc/inittab (for busybox init):
  130. ::respawn:/bin/cttyhack /bin/sh
  131. Starting an interactive shell from boot shell script:
  132. setsid cttyhack sh
  133. Giving controlling tty to shell running with PID 1:
  134. # exec cttyhack sh
  135. Without cttyhack, you need to know exact tty name,
  136. and do something like this:
  137. # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
  138. Starting getty on a controlling tty from a shell script:
  139. # getty 115200 $(cttyhack)
  140. config BUSYBOX_CONFIG_HUSH
  141. bool "hush"
  142. default BUSYBOX_DEFAULT_HUSH
  143. help
  144. hush is a small shell (25k). It handles the normal flow control
  145. constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
  146. case/esac. Redirections, here documents, $((arithmetic))
  147. and functions are supported.
  148. It will compile and work on no-mmu systems.
  149. It does not handle select, aliases, tilde expansion,
  150. &>file and >&file redirection of stdout+stderr.
  151. config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
  152. bool "bash-compatible extensions"
  153. default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
  154. depends on BUSYBOX_CONFIG_HUSH
  155. help
  156. Enable bash-compatible extensions.
  157. config BUSYBOX_CONFIG_HUSH_BRACE_EXPANSION
  158. bool "Brace expansion"
  159. default BUSYBOX_DEFAULT_HUSH_BRACE_EXPANSION
  160. depends on BUSYBOX_CONFIG_HUSH_BASH_COMPAT
  161. help
  162. Enable {abc,def} extension.
  163. config BUSYBOX_CONFIG_HUSH_HELP
  164. bool "help builtin"
  165. default BUSYBOX_DEFAULT_HUSH_HELP
  166. depends on BUSYBOX_CONFIG_HUSH
  167. help
  168. Enable help builtin in hush. Code size + ~1 kbyte.
  169. config BUSYBOX_CONFIG_HUSH_INTERACTIVE
  170. bool "Interactive mode"
  171. default BUSYBOX_DEFAULT_HUSH_INTERACTIVE
  172. depends on BUSYBOX_CONFIG_HUSH
  173. help
  174. Enable interactive mode (prompt and command editing).
  175. Without this, hush simply reads and executes commands
  176. from stdin just like a shell script from a file.
  177. No prompt, no PS1/PS2 magic shell variables.
  178. config BUSYBOX_CONFIG_HUSH_SAVEHISTORY
  179. bool "Save command history to .hush_history"
  180. default BUSYBOX_DEFAULT_HUSH_SAVEHISTORY
  181. depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE && BUSYBOX_CONFIG_FEATURE_EDITING_SAVEHISTORY
  182. help
  183. Enable history saving in hush.
  184. config BUSYBOX_CONFIG_HUSH_JOB
  185. bool "Job control"
  186. default BUSYBOX_DEFAULT_HUSH_JOB
  187. depends on BUSYBOX_CONFIG_HUSH_INTERACTIVE
  188. help
  189. Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
  190. command (not entire shell), fg/bg builtins work. Without this option,
  191. "cmd &" still works by simply spawning a process and immediately
  192. prompting for next command (or executing next command in a script),
  193. but no separate process group is formed.
  194. config BUSYBOX_CONFIG_HUSH_TICK
  195. bool "Process substitution"
  196. default BUSYBOX_DEFAULT_HUSH_TICK
  197. depends on BUSYBOX_CONFIG_HUSH
  198. help
  199. Enable process substitution `command` and $(command) in hush.
  200. config BUSYBOX_CONFIG_HUSH_IF
  201. bool "Support if/then/elif/else/fi"
  202. default BUSYBOX_DEFAULT_HUSH_IF
  203. depends on BUSYBOX_CONFIG_HUSH
  204. help
  205. Enable if/then/elif/else/fi in hush.
  206. config BUSYBOX_CONFIG_HUSH_LOOPS
  207. bool "Support for, while and until loops"
  208. default BUSYBOX_DEFAULT_HUSH_LOOPS
  209. depends on BUSYBOX_CONFIG_HUSH
  210. help
  211. Enable for, while and until loops in hush.
  212. config BUSYBOX_CONFIG_HUSH_CASE
  213. bool "Support case ... esac statement"
  214. default BUSYBOX_DEFAULT_HUSH_CASE
  215. depends on BUSYBOX_CONFIG_HUSH
  216. help
  217. Enable case ... esac statement in hush. +400 bytes.
  218. config BUSYBOX_CONFIG_HUSH_FUNCTIONS
  219. bool "Support funcname() { commands; } syntax"
  220. default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
  221. depends on BUSYBOX_CONFIG_HUSH
  222. help
  223. Enable support for shell functions in hush. +800 bytes.
  224. config BUSYBOX_CONFIG_HUSH_LOCAL
  225. bool "Support local builtin"
  226. default BUSYBOX_DEFAULT_HUSH_LOCAL
  227. depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
  228. help
  229. Enable support for local variables in functions.
  230. config BUSYBOX_CONFIG_HUSH_RANDOM_SUPPORT
  231. bool "Pseudorandom generator and $RANDOM variable"
  232. default BUSYBOX_DEFAULT_HUSH_RANDOM_SUPPORT
  233. depends on BUSYBOX_CONFIG_HUSH
  234. help
  235. Enable pseudorandom generator and dynamic variable "$RANDOM".
  236. Each read of "$RANDOM" will generate a new pseudorandom value.
  237. config BUSYBOX_CONFIG_HUSH_EXPORT_N
  238. bool "Support 'export -n' option"
  239. default BUSYBOX_DEFAULT_HUSH_EXPORT_N
  240. depends on BUSYBOX_CONFIG_HUSH
  241. help
  242. export -n unexports variables. It is a bash extension.
  243. config BUSYBOX_CONFIG_HUSH_MODE_X
  244. bool "Support 'hush -x' option and 'set -x' command"
  245. default BUSYBOX_DEFAULT_HUSH_MODE_X
  246. depends on BUSYBOX_CONFIG_HUSH
  247. help
  248. This instructs hush to print commands before execution.
  249. Adds ~300 bytes.
  250. config BUSYBOX_CONFIG_MSH
  251. bool "msh (deprecated: aliased to hush)"
  252. default BUSYBOX_DEFAULT_MSH
  253. select BUSYBOX_CONFIG_HUSH
  254. help
  255. msh is deprecated and will be removed, please migrate to hush.
  256. choice
  257. prompt "Choose which shell is aliased to 'sh' name"
  258. default BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
  259. help
  260. Choose which shell you want to be executed by 'sh' alias.
  261. The ash shell is the most bash compatible and full featured one.
  262. # note: cannot use "select ASH" here, it breaks "make allnoconfig"
  263. config BUSYBOX_CONFIG_FEATURE_SH_IS_ASH
  264. depends on BUSYBOX_CONFIG_ASH
  265. bool "ash"
  266. depends on !BUSYBOX_CONFIG_NOMMU
  267. config BUSYBOX_CONFIG_FEATURE_SH_IS_HUSH
  268. depends on BUSYBOX_CONFIG_HUSH
  269. bool "hush"
  270. config BUSYBOX_CONFIG_FEATURE_SH_IS_NONE
  271. bool "none"
  272. endchoice
  273. choice
  274. prompt "Choose which shell is aliased to 'bash' name"
  275. default BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
  276. help
  277. Choose which shell you want to be executed by 'bash' alias.
  278. The ash shell is the most bash compatible and full featured one.
  279. Note that selecting this option does not switch on any bash
  280. compatibility code. It merely makes it possible to install
  281. /bin/bash (sym)link and run scripts which start with
  282. #!/bin/bash line.
  283. Many systems use it in scripts which use bash-specific features,
  284. even simple ones like $RANDOM. Without this option, busybox
  285. can't be used for running them because it won't recongnize
  286. "bash" as a supported applet name.
  287. config BUSYBOX_CONFIG_FEATURE_BASH_IS_ASH
  288. depends on BUSYBOX_CONFIG_ASH
  289. bool "ash"
  290. depends on !BUSYBOX_CONFIG_NOMMU
  291. config BUSYBOX_CONFIG_FEATURE_BASH_IS_HUSH
  292. depends on BUSYBOX_CONFIG_HUSH
  293. bool "hush"
  294. config BUSYBOX_CONFIG_FEATURE_BASH_IS_NONE
  295. bool "none"
  296. endchoice
  297. config BUSYBOX_CONFIG_SH_MATH_SUPPORT
  298. bool "POSIX math support"
  299. default BUSYBOX_DEFAULT_SH_MATH_SUPPORT
  300. depends on BUSYBOX_CONFIG_ASH || BUSYBOX_CONFIG_HUSH
  301. help
  302. Enable math support in the shell via $((...)) syntax.
  303. config BUSYBOX_CONFIG_SH_MATH_SUPPORT_64
  304. bool "Extend POSIX math support to 64 bit"
  305. default BUSYBOX_DEFAULT_SH_MATH_SUPPORT_64
  306. depends on BUSYBOX_CONFIG_SH_MATH_SUPPORT
  307. help
  308. Enable 64-bit math support in the shell. This will make the shell
  309. slightly larger, but will allow computation with very large numbers.
  310. This is not in POSIX, so do not rely on this in portable code.
  311. config BUSYBOX_CONFIG_FEATURE_SH_EXTRA_QUIET
  312. bool "Hide message on interactive shell startup"
  313. default BUSYBOX_DEFAULT_FEATURE_SH_EXTRA_QUIET
  314. depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
  315. help
  316. Remove the busybox introduction when starting a shell.
  317. config BUSYBOX_CONFIG_FEATURE_SH_STANDALONE
  318. bool "Standalone shell"
  319. default BUSYBOX_DEFAULT_FEATURE_SH_STANDALONE
  320. depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
  321. help
  322. This option causes busybox shells to use busybox applets
  323. in preference to executables in the PATH whenever possible. For
  324. example, entering the command 'ifconfig' into the shell would cause
  325. busybox to use the ifconfig busybox applet. Specifying the fully
  326. qualified executable name, such as '/sbin/ifconfig' will still
  327. execute the /sbin/ifconfig executable on the filesystem. This option
  328. is generally used when creating a statically linked version of busybox
  329. for use as a rescue shell, in the event that you screw up your system.
  330. This is implemented by re-execing /proc/self/exe (typically)
  331. with right parameters. Some selected applets ("NOFORK" applets)
  332. can even be executed without creating new process.
  333. Instead, busybox will call <applet>_main() internally.
  334. However, this causes problems in chroot jails without mounted /proc
  335. and with ps/top (command name can be shown as 'exe' for applets
  336. started this way).
  337. # untrue?
  338. # Note that this will *also* cause applets to take precedence
  339. # over shell builtins of the same name. So turning this on will
  340. # eliminate any performance gained by turning on the builtin "echo"
  341. # and "test" commands in ash.
  342. # untrue?
  343. # Note that when using this option, the shell will attempt to directly
  344. # run '/bin/busybox'. If you do not have the busybox binary sitting in
  345. # that exact location with that exact name, this option will not work at
  346. # all.
  347. config BUSYBOX_CONFIG_FEATURE_SH_NOFORK
  348. bool "Run 'nofork' applets directly"
  349. default BUSYBOX_DEFAULT_FEATURE_SH_NOFORK
  350. depends on (BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH) && BUSYBOX_CONFIG_FEATURE_PREFER_APPLETS
  351. help
  352. This option causes busybox shells to not execute typical
  353. fork/exec/wait sequence, but call <applet>_main directly,
  354. if possible. (Sometimes it is not possible: for example,
  355. this is not possible in pipes).
  356. This will be done only for some applets (those which are marked
  357. NOFORK in include/applets.h).
  358. This may significantly speed up some shell scripts.
  359. This feature is relatively new. Use with care. Report bugs
  360. to project mailing list.
  361. config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
  362. bool "Use $HISTFILESIZE"
  363. default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
  364. depends on BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_ASH
  365. help
  366. This option makes busybox shells to use $HISTFILESIZE variable
  367. to set shell history size. Note that its max value is capped
  368. by "History size" setting in library tuning section.
  369. endmenu