Config.in 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  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. choice
  8. prompt "Choose which shell is aliased to 'sh' name"
  9. default SH_IS_ASH
  10. help
  11. Choose which shell you want to be executed by 'sh' alias.
  12. The ash shell is the most bash compatible and full featured one.
  13. # note: cannot use "select ASH" here, it breaks "make allnoconfig"
  14. config SH_IS_ASH
  15. depends on !NOMMU
  16. bool "ash"
  17. help
  18. Choose ash to be the shell executed by 'sh' name.
  19. The ash code will be built into busybox. If you don't select
  20. "ash" choice (CONFIG_ASH), this shell may only be invoked by
  21. the name 'sh' (and not 'ash').
  22. config SH_IS_HUSH
  23. bool "hush"
  24. help
  25. Choose hush to be the shell executed by 'sh' name.
  26. The hush code will be built into busybox. If you don't select
  27. "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  28. the name 'sh' (and not 'hush').
  29. config SH_IS_NONE
  30. bool "none"
  31. endchoice
  32. choice
  33. prompt "Choose which shell is aliased to 'bash' name"
  34. default BASH_IS_NONE
  35. help
  36. Choose which shell you want to be executed by 'bash' alias.
  37. The ash shell is the most bash compatible and full featured one,
  38. although compatibility is far from being complete.
  39. Note that selecting this option does not switch on any bash
  40. compatibility code. It merely makes it possible to install
  41. /bin/bash (sym)link and run scripts which start with
  42. #!/bin/bash line.
  43. Many systems use it in scripts which use bash-specific features,
  44. even simple ones like $RANDOM. Without this option, busybox
  45. can't be used for running them because it won't recongnize
  46. "bash" as a supported applet name.
  47. config BASH_IS_ASH
  48. depends on !NOMMU
  49. bool "ash"
  50. help
  51. Choose ash to be the shell executed by 'bash' name.
  52. The ash code will be built into busybox. If you don't select
  53. "ash" choice (CONFIG_ASH), this shell may only be invoked by
  54. the name 'bash' (and not 'ash').
  55. config BASH_IS_HUSH
  56. bool "hush"
  57. help
  58. Choose hush to be the shell executed by 'bash' name.
  59. The hush code will be built into busybox. If you don't select
  60. "hush" choice (CONFIG_HUSH), this shell may only be invoked by
  61. the name 'bash' (and not 'hush').
  62. config BASH_IS_NONE
  63. bool "none"
  64. endchoice
  65. config ASH
  66. bool "ash (77 kb)"
  67. default y
  68. depends on !NOMMU
  69. help
  70. The most complete and most pedantically correct shell included with
  71. busybox. This shell is actually a derivative of the Debian 'dash'
  72. shell (by Herbert Xu), which was created by porting the 'ash' shell
  73. (written by Kenneth Almquist) from NetBSD.
  74. # ash options
  75. # note: Don't remove !NOMMU part in the next line; it would break
  76. # menuconfig's indenting.
  77. if !NOMMU && (ASH || SH_IS_ASH || BASH_IS_ASH)
  78. config ASH_OPTIMIZE_FOR_SIZE
  79. bool "Optimize for size instead of speed"
  80. default y
  81. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  82. config ASH_INTERNAL_GLOB
  83. bool "Use internal glob() implementation"
  84. default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
  85. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  86. help
  87. Do not use glob() function from libc, use internal implementation.
  88. Use this if you are getting "glob.h: No such file or directory"
  89. or similar build errors.
  90. Note that as of now (2017-01), uclibc and musl glob() both have bugs
  91. which would break ash if you select N here.
  92. config ASH_BASH_COMPAT
  93. bool "bash-compatible extensions"
  94. default y
  95. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  96. config ASH_JOB_CONTROL
  97. bool "Job control"
  98. default y
  99. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  100. config ASH_ALIAS
  101. bool "Alias support"
  102. default y
  103. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  104. config ASH_RANDOM_SUPPORT
  105. bool "Pseudorandom generator and $RANDOM variable"
  106. default y
  107. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  108. help
  109. Enable pseudorandom generator and dynamic variable "$RANDOM".
  110. Each read of "$RANDOM" will generate a new pseudorandom value.
  111. You can reset the generator by using a specified start value.
  112. After "unset RANDOM" the generator will switch off and this
  113. variable will no longer have special treatment.
  114. config ASH_EXPAND_PRMT
  115. bool "Expand prompt string"
  116. default y
  117. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  118. help
  119. $PS# may contain volatile content, such as backquote commands.
  120. This option recreates the prompt string from the environment
  121. variable each time it is displayed.
  122. config ASH_IDLE_TIMEOUT
  123. bool "Idle timeout variable $TMOUT"
  124. default y
  125. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  126. help
  127. Enable bash-like auto-logout after $TMOUT seconds of idle time.
  128. config ASH_MAIL
  129. bool "Check for new mail in interactive shell"
  130. default y
  131. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  132. help
  133. Enable "check for new mail" function:
  134. if set, $MAIL file and $MAILPATH list of files
  135. are checked for mtime changes, and "you have mail"
  136. message is printed if change is detected.
  137. config ASH_ECHO
  138. bool "echo builtin"
  139. default y
  140. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  141. config ASH_PRINTF
  142. bool "printf builtin"
  143. default y
  144. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  145. config ASH_TEST
  146. bool "test builtin"
  147. default y
  148. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  149. config ASH_HELP
  150. bool "help builtin"
  151. default y
  152. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  153. config ASH_GETOPTS
  154. bool "getopts builtin"
  155. default y
  156. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  157. config ASH_CMDCMD
  158. bool "command builtin"
  159. default y
  160. depends on ASH || SH_IS_ASH || BASH_IS_ASH
  161. help
  162. Enable support for the 'command' builtin, which allows
  163. you to run the specified command or builtin,
  164. even when there is a function with the same name.
  165. endif # ash options
  166. config CTTYHACK
  167. bool "cttyhack (2.5 kb)"
  168. default y
  169. help
  170. One common problem reported on the mailing list is the "can't
  171. access tty; job control turned off" error message, which typically
  172. appears when one tries to use a shell with stdin/stdout on
  173. /dev/console.
  174. This device is special - it cannot be a controlling tty.
  175. The proper solution is to use the correct device instead of
  176. /dev/console.
  177. cttyhack provides a "quick and dirty" solution to this problem.
  178. It analyzes stdin with various ioctls, trying to determine whether
  179. it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
  180. On Linux it also checks sysfs for a pointer to the active console.
  181. If cttyhack is able to find the real console device, it closes
  182. stdin/out/err and reopens that device.
  183. Then it executes the given program. Opening the device will make
  184. that device a controlling tty. This may require cttyhack
  185. to be a session leader.
  186. Example for /etc/inittab (for busybox init):
  187. ::respawn:/bin/cttyhack /bin/sh
  188. Starting an interactive shell from boot shell script:
  189. setsid cttyhack sh
  190. Giving controlling tty to shell running with PID 1:
  191. # exec cttyhack sh
  192. Without cttyhack, you need to know exact tty name,
  193. and do something like this:
  194. # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
  195. Starting getty on a controlling tty from a shell script:
  196. # getty 115200 $(cttyhack)
  197. config HUSH
  198. bool "hush (64 kb)"
  199. default y
  200. help
  201. hush is a small shell. It handles the normal flow control
  202. constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
  203. case/esac. Redirections, here documents, $((arithmetic))
  204. and functions are supported.
  205. It will compile and work on no-mmu systems.
  206. It does not handle select, aliases, tilde expansion,
  207. &>file and >&file redirection of stdout+stderr.
  208. config HUSH_BASH_COMPAT
  209. bool "bash-compatible extensions"
  210. default y
  211. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  212. config HUSH_BRACE_EXPANSION
  213. bool "Brace expansion"
  214. default y
  215. depends on HUSH_BASH_COMPAT
  216. help
  217. Enable {abc,def} extension.
  218. config HUSH_INTERACTIVE
  219. bool "Interactive mode"
  220. default y
  221. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  222. help
  223. Enable interactive mode (prompt and command editing).
  224. Without this, hush simply reads and executes commands
  225. from stdin just like a shell script from a file.
  226. No prompt, no PS1/PS2 magic shell variables.
  227. config HUSH_SAVEHISTORY
  228. bool "Save command history to .hush_history"
  229. default y
  230. depends on HUSH_INTERACTIVE && FEATURE_EDITING_SAVEHISTORY
  231. config HUSH_JOB
  232. bool "Job control"
  233. default y
  234. depends on HUSH_INTERACTIVE
  235. help
  236. Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
  237. command (not entire shell), fg/bg builtins work. Without this option,
  238. "cmd &" still works by simply spawning a process and immediately
  239. prompting for next command (or executing next command in a script),
  240. but no separate process group is formed.
  241. config HUSH_TICK
  242. bool "Support process substitution"
  243. default y
  244. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  245. help
  246. Enable `command` and $(command).
  247. config HUSH_IF
  248. bool "Support if/then/elif/else/fi"
  249. default y
  250. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  251. config HUSH_LOOPS
  252. bool "Support for, while and until loops"
  253. default y
  254. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  255. config HUSH_CASE
  256. bool "Support case ... esac statement"
  257. default y
  258. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  259. help
  260. Enable case ... esac statement. +400 bytes.
  261. config HUSH_FUNCTIONS
  262. bool "Support funcname() { commands; } syntax"
  263. default y
  264. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  265. help
  266. Enable support for shell functions. +800 bytes.
  267. config HUSH_LOCAL
  268. bool "local builtin"
  269. default y
  270. depends on HUSH_FUNCTIONS
  271. help
  272. Enable support for local variables in functions.
  273. config HUSH_RANDOM_SUPPORT
  274. bool "Pseudorandom generator and $RANDOM variable"
  275. default y
  276. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  277. help
  278. Enable pseudorandom generator and dynamic variable "$RANDOM".
  279. Each read of "$RANDOM" will generate a new pseudorandom value.
  280. config HUSH_MODE_X
  281. bool "Support 'hush -x' option and 'set -x' command"
  282. default y
  283. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  284. help
  285. This instructs hush to print commands before execution.
  286. Adds ~300 bytes.
  287. config HUSH_ECHO
  288. bool "echo builtin"
  289. default y
  290. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  291. config HUSH_PRINTF
  292. bool "printf builtin"
  293. default y
  294. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  295. config HUSH_TEST
  296. bool "test builtin"
  297. default y
  298. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  299. config HUSH_HELP
  300. bool "help builtin"
  301. default y
  302. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  303. config HUSH_EXPORT
  304. bool "export builtin"
  305. default y
  306. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  307. config HUSH_EXPORT_N
  308. bool "Support 'export -n' option"
  309. default y
  310. depends on HUSH_EXPORT
  311. help
  312. export -n unexports variables. It is a bash extension.
  313. config HUSH_READONLY
  314. bool "readonly builtin"
  315. default y
  316. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  317. help
  318. Enable support for read-only variables.
  319. config HUSH_KILL
  320. bool "kill builtin (supports kill %jobspec)"
  321. default y
  322. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  323. config HUSH_WAIT
  324. bool "wait builtin"
  325. default y
  326. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  327. config HUSH_TRAP
  328. bool "trap builtin"
  329. default y
  330. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  331. config HUSH_TYPE
  332. bool "type builtin"
  333. default y
  334. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  335. config HUSH_TIMES
  336. bool "times builtin"
  337. default y
  338. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  339. config HUSH_READ
  340. bool "read builtin"
  341. default y
  342. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  343. config HUSH_SET
  344. bool "set builtin"
  345. default y
  346. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  347. config HUSH_UNSET
  348. bool "unset builtin"
  349. default y
  350. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  351. config HUSH_ULIMIT
  352. bool "ulimit builtin"
  353. default y
  354. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  355. config HUSH_UMASK
  356. bool "umask builtin"
  357. default y
  358. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  359. config HUSH_GETOPTS
  360. bool "getopts builtin"
  361. default y
  362. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  363. config HUSH_MEMLEAK
  364. bool "memleak builtin (debugging)"
  365. default n
  366. depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
  367. comment "Options common to all shells"
  368. if ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  369. config FEATURE_SH_MATH
  370. bool "POSIX math support"
  371. default y
  372. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  373. help
  374. Enable math support in the shell via $((...)) syntax.
  375. config FEATURE_SH_MATH_64
  376. bool "Extend POSIX math support to 64 bit"
  377. default y
  378. depends on FEATURE_SH_MATH
  379. help
  380. Enable 64-bit math support in the shell. This will make the shell
  381. slightly larger, but will allow computation with very large numbers.
  382. This is not in POSIX, so do not rely on this in portable code.
  383. config FEATURE_SH_EXTRA_QUIET
  384. bool "Hide message on interactive shell startup"
  385. default y
  386. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  387. help
  388. Remove the busybox introduction when starting a shell.
  389. config FEATURE_SH_STANDALONE
  390. bool "Standalone shell"
  391. default n
  392. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  393. help
  394. This option causes busybox shells to use busybox applets
  395. in preference to executables in the PATH whenever possible. For
  396. example, entering the command 'ifconfig' into the shell would cause
  397. busybox to use the ifconfig busybox applet. Specifying the fully
  398. qualified executable name, such as '/sbin/ifconfig' will still
  399. execute the /sbin/ifconfig executable on the filesystem. This option
  400. is generally used when creating a statically linked version of busybox
  401. for use as a rescue shell, in the event that you screw up your system.
  402. This is implemented by re-execing /proc/self/exe (typically)
  403. with right parameters.
  404. However, there are drawbacks: it is problematic in chroot jails
  405. without mounted /proc, and ps/top may show command name as 'exe'
  406. for applets started this way.
  407. config FEATURE_SH_NOFORK
  408. bool "Run 'nofork' applets directly"
  409. default n
  410. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  411. help
  412. This option causes busybox shells to not execute typical
  413. fork/exec/wait sequence, but call <applet>_main directly,
  414. if possible. (Sometimes it is not possible: for example,
  415. this is not possible in pipes).
  416. This will be done only for some applets (those which are marked
  417. NOFORK in include/applets.h).
  418. This may significantly speed up some shell scripts.
  419. This feature is relatively new. Use with care. Report bugs
  420. to project mailing list.
  421. config FEATURE_SH_READ_FRAC
  422. bool "read -t N.NNN support (+110 bytes)"
  423. default y
  424. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  425. help
  426. Enable support for fractional second timeout in read builtin.
  427. config FEATURE_SH_HISTFILESIZE
  428. bool "Use $HISTFILESIZE"
  429. default y
  430. depends on ASH || HUSH || SH_IS_ASH || BASH_IS_ASH || SH_IS_HUSH || BASH_IS_HUSH
  431. help
  432. This option makes busybox shells to use $HISTFILESIZE variable
  433. to set shell history size. Note that its max value is capped
  434. by "History size" setting in library tuning section.
  435. endif # Options common to all shells
  436. endmenu