OSDN Git Service

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