• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1mainmenu "Toybox Configuration"
2
3
4source generated/Config.probed
5source generated/Config.in
6
7comment ""
8
9menu "Toybox global settings"
10
11# This entry controls the multiplexer, disabled for single command builds
12config TOYBOX
13	bool
14	default y
15	help
16	  usage: toybox [--long | --help | --version | [command] [arguments...]]
17
18	  With no arguments, shows available commands. First argument is
19	  name of a command to run, followed by any arguments to that command.
20
21	  --long	Show path to each command
22
23	  To install command symlinks, try:
24	    for i in $(/bin/toybox --long); do ln -s /bin/toybox $i; done
25
26	  Most toybox commands also understand the following arguments:
27
28	  --help		Show command help (only)
29	  --version	Show toybox version (only)
30
31	  The filename "-" means stdin/stdout, and "--" stops argument parsing.
32
33	  Numerical arguments accept a single letter suffix for
34	  kilo, mega, giga, tera, peta, and exabytes, plus an additional
35	  "d" to indicate decimal 1000's instead of 1024.
36
37	  Durations can be decimal fractions and accept minute ("m"), hour ("h"),
38	  or day ("d") suffixes (so 0.1m = 6s).
39
40config TOYBOX_SUID
41	bool "SUID support"
42	default y
43	help
44	  Support for the Set User ID bit, to install toybox suid root and drop
45	  permissions for commands which do not require root access. To use
46	  this change ownership of the file to the root user and set the suid
47	  bit in the file permissions:
48
49	  chown root:root toybox; chmod +s toybox
50
51choice
52	prompt "Security Blanket"
53	default TOYBOX_LSM_NONE
54	help
55	  Select a Linux Security Module to complicate your system
56	  until you can't find holes in it.
57
58config TOYBOX_LSM_NONE
59	bool "None"
60	help
61          Don't try to achieve "watertight" by plugging the holes in a
62          collander, instead use conventional unix security (and possibly
63          Linux Containers) for a simple straightforward system.
64
65config TOYBOX_SELINUX
66	bool "SELinux support"
67	help
68	  Include SELinux options in commands such as ls, and add
69	  SELinux-specific commands such as chcon to the Android menu.
70
71config TOYBOX_SMACK
72	bool "SMACK support"
73	help
74	  Include SMACK options in commands like ls for systems like Tizen.
75
76endchoice
77
78config TOYBOX_LIBCRYPTO
79       bool "Use libcrypto (OpenSSL/BoringSSL)"
80       default n
81       help
82         Use faster hash functions out of external -lcrypto library.
83
84config TOYBOX_LIBZ
85       bool "Use libz (zlib)"
86       default n
87       help
88         Use libz for gz support.
89
90config TOYBOX_FLOAT
91	bool "Floating point support"
92	default y
93	help
94	  Include floating point support infrastructure and commands that
95	  require it.
96
97config TOYBOX_HELP
98	bool "Help messages"
99	default y
100	help
101	  Include help text for each command.
102
103config TOYBOX_HELP_DASHDASH
104	bool "--help and --version"
105	default y
106	depends on TOYBOX_HELP
107	help
108	  Support --help argument in all commands, even ones with a NULL
109	  optstring. (Use TOYFLAG_NOHELP to disable.) Produces the same output
110	  as "help command". --version shows toybox version.
111
112config TOYBOX_I18N
113	bool "Internationalization support"
114	default y
115	help
116	  Support for UTF-8 character sets, and some locale support.
117
118config TOYBOX_FREE
119	bool "Free memory unnecessarily"
120	default n
121	help
122	  When a program exits, the operating system will clean up after it
123	  (free memory, close files, etc). To save size, toybox usually relies
124	  on this behavior. If you're running toybox under a debugger or
125	  without a real OS (ala newlib+libgloss), enable this to make toybox
126	  clean up after itself.
127
128config TOYBOX_NORECURSE
129	bool "Disable recursive execution"
130	default n
131	help
132	  When one toybox command calls another, usually it just calls the new
133	  command's main() function rather than searching the $PATH and calling
134	  exec on another file (which is much slower).
135
136	  This disables that optimization, so toybox will run external commands
137          even when it has a built-in version of that command. This requires
138          toybox symlinks to be installed in the $PATH, or re-invoking the
139          "toybox" multiplexer command by name.
140
141config TOYBOX_DEBUG
142	bool "Debugging tests"
143	default n
144	help
145	  Enable extra checks for debugging purposes. All of them catch
146	  things that can only go wrong at development time, not runtime.
147
148config TOYBOX_PEDANTIC_ARGS
149	bool "Pedantic argument checking"
150	default n
151	help
152	  Check arguments for commands that have no arguments.
153
154config TOYBOX_UID_SYS
155	int "First system UID"
156	default 100
157	help
158	  When commands like useradd/groupadd allocate system IDs, start here.
159
160config TOYBOX_UID_USR
161	int "First user UID"
162	default 500
163	help
164	  When commands like useradd/groupadd allocate user IDs, start here.
165
166config TOYBOX_MUSL_NOMMU_IS_BROKEN
167	bool "Workaround for musl-libc breakage on nommu systems."
168	default n
169	help
170	  When using musl-libc on a nommu system, you'll need to say "y" here.
171
172	  Although uclibc lets you detect support for things like fork() and
173	  daemon() at compile time, musl intentionally includes broken versions
174	  that always return -ENOSYS on nommu systems, and goes out of its way
175	  to prevent any cross-compile compatible compile-time probes for a
176	  nommu system. (It doesn't even #define __MUSL__ in features.h.)
177
178	  Musl does this despite the fact that a nommu system can't even run
179	  standard ELF binaries, and requires specially packaged executables.
180	  So our only choice is to manually provide a musl nommu bug workaround
181	  you can manually select to enable (larger, slower) nommu support with
182	  musl.
183
184endmenu
185