#include "Config.h"

extern const char usage_messages[];

#if defined USAGE_ENUM
enum
#elif defined USAGE_MESSAGES
const char usage_messages[] =
#endif

#if defined USAGE_ENUM || defined USAGE_MESSAGES
{
#endif

#if defined USAGE_ENUM
#define DO_COMMA ,
#elif defined USAGE_MESSAGES
#define DO_COMMA "\0"
#else
#define DO_COMMA 
#endif


#if defined BB_AR
#if defined USAGE_ENUM
ar_usage_index
#elif defined USAGE_MESSAGES
	"-[ovR]{ptx} archive filenames"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nExtract or list files from an ar archive.\n\n"
	"Options:\n"
	"\t-o\t\tpreserve original dates\n"
	"\t-p\t\textract to stdout\n"
	"\t-t\t\tlist\n"
	"\t-x\t\textract\n"
	"\t-v\t\tverbosely list files processed\n"
	"\t-R\t\trecursive action"
#endif
#endif
DO_COMMA
#endif

#if defined BB_BASENAME
#if defined USAGE_ENUM
basename_usage_index
#elif defined USAGE_MESSAGES
	"FILE [SUFFIX]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nStrips directory path and suffixes from FILE.\n"
	"If specified, also removes any trailing SUFFIX."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CAT
#if defined USAGE_ENUM
cat_usage_index
#elif defined USAGE_MESSAGES
	"[FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nConcatenates FILE(s) and prints them to stdout."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CHMOD_CHOWN_CHGRP
#if defined USAGE_ENUM
chgrp_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... GROUP FILE..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nChange the group membership of each FILE to GROUP.\n"
	"\nOptions:\n\t-R\tChanges files and directories recursively."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CHMOD_CHOWN_CHGRP
#if defined USAGE_ENUM
chmod_usage_index
#elif defined USAGE_MESSAGES
	"[-R] MODE[,MODE]... FILE..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n"
	"one or more of the letters rwxst.\n\n"
	"\nOptions:\n\t-R\tChanges files and directories recursively."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CHMOD_CHOWN_CHGRP
#if defined USAGE_ENUM
chown_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]...  OWNER[<.|:>[GROUP] FILE..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n"
	"\nOptions:\n\t-R\tChanges files and directories recursively."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CHROOT
#if defined USAGE_ENUM
chroot_usage_index
#elif defined USAGE_MESSAGES
	"NEWROOT [COMMAND...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRun COMMAND with root directory set to NEWROOT."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CHVT
#if defined USAGE_ENUM
chvt_usage_index
#elif defined USAGE_MESSAGES
	"N"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nChanges the foreground virtual terminal to /dev/ttyN"
#endif
#endif
DO_COMMA
#endif

#if defined BB_CLEAR
#if defined USAGE_ENUM
clear_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nClear screen."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CMP
#if defined USAGE_ENUM
cmp_usage_index
#elif defined USAGE_MESSAGES
	"FILE1 [FILE2]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCompare files."
#endif
#endif
DO_COMMA
#endif

#if defined BB_CP_MV
#if defined USAGE_ENUM
cp_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... SOURCE DEST\n"
	"   or: cp [OPTION]... SOURCE... DIRECTORY"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n"
	"\n"
	"\t-a\tSame as -dpR\n"
	"\t-d\tPreserves links\n"
	"\t-p\tPreserves file attributes if possible\n"
	"\t-f\tforce (implied; ignored) - always set\n"
	"\t-R\tCopies directories recursively"
#endif
#endif
DO_COMMA
#endif

#if defined BB_CUT
#if defined USAGE_ENUM
cut_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints selected fields from each input FILE to standard output.\n\n"
	"Options:\n"
	"\t-b LIST\tOutput only bytes from LIST\n"
	"\t-c LIST\tOutput only characters from LIST\n"
	"\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n"
	"\t-s\tOutput only the lines containing delimiter\n"
	"\t-f N\tPrint only these fields\n"
	"\t-n\tIgnored"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DATE
#if defined USAGE_ENUM
date_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [+FORMAT]\n"
	"  or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nDisplays the current time in the given FORMAT, or sets the system date.\n"
	"\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n"
	"\t-d STRING\tdisplay time described by STRING, not `now'\n"
	"\t-s\t\tSets time described by STRING\n"
	"\t-u\t\tPrints or sets Coordinated Universal Time"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DC
#if defined USAGE_ENUM
dc_usage_index
#elif defined USAGE_MESSAGES
	"expression ..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nThis is a Tiny RPN calculator that understands the\n"
	"following operations: +, -, /, *, and, or, not, eor.\n"
	"i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DD
#if defined USAGE_ENUM
dd_usage_index
#elif defined USAGE_MESSAGES
	"[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCopy a file, converting and formatting according to options\n\n"
	"\tif=FILE\tread from FILE instead of stdin\n"
	"\tof=FILE\twrite to FILE instead of stdout\n"
	"\tbs=N\tread and write N bytes at a time\n"
	"\tcount=N\tcopy only N input blocks\n"
	"\tskip=N\tskip N input blocks\n"
	"\tseek=N\tskip N output blocks\n"
	"\tconv=notrunc\tdon't truncate output file\n"
	"\tconv=sync\tpad blocks with zeros\n"
	"\n"
	"Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n"
	"MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_DEALLOCVT
#if defined USAGE_ENUM
deallocvt_usage_index
#elif defined USAGE_MESSAGES
	"N"
#ifndef BB_FEATURE_TRIVIAL_HELP
	 "\n\nDeallocate unused virtual terminal /dev/ttyN"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DF
#if defined USAGE_ENUM
df_usage_index
#elif defined USAGE_MESSAGES
	"[-?"
#ifdef BB_FEATURE_HUMAN_READABLE
	"hm"
#endif
	"k] [filesystem ...]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint the filesystem space used and space available."
	"Options:\n"
	"\t-?\tshow usage information"
#ifdef BB_FEATURE_HUMAN_READABLE
	"\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
	"\t-m\tprint sizes in megabytes\n"
	"\t-k\tprint sizes in kilobytes(default)"
#else
	"\n\t-k\tprint sizes in kilobytes(compatability)"
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_DIRNAME
#if defined USAGE_ENUM
dirname_usage_index
#elif defined USAGE_MESSAGES
	"[FILENAME ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nStrips non-directory suffix from FILENAME"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DMESG
#if defined USAGE_ENUM
dmesg_usage_index
#elif defined USAGE_MESSAGES
	"[-c] [-n LEVEL] [-s SIZE]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints or controls the kernel ring buffer\n\n"
	"Options:\n"
	"\t-c\t\tClears the ring buffer's contents after printing\n"
	"\t-n LEVEL\tSets console logging level\n"
	"\t-s SIZE\t\tUse a buffer of size SIZE"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DOS2UNIX
#if defined USAGE_ENUM
dos2unix_usage_index
#elif defined USAGE_MESSAGES
	"< dosfile > unixfile"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nConverts a text file from dos format to unix format."
#endif
#endif
DO_COMMA
#endif

#if defined BB_DPKG
#if defined USAGE_ENUM
dpkg_usage_index
#elif defined USAGE_MESSAGES
	"<-i|-r|--unpack|--configure> my.deb\n"
	"WORK IN PROGRESS, only usefull for debian-installer"
#ifndef BB_FEATURE_TRIVIAL_HELP
#endif
#endif
DO_COMMA
#endif

#if defined BB_DPKG_DEB
#if defined USAGE_ENUM
dpkg_deb_usage_index
#elif defined USAGE_MESSAGES
	"[-cexX] file directory"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPerform actions on debian packages (.debs)\n\n"
	"Options:\n"
	"\t-c\tList contents of filesystem tree (verbose)\n"
	"\t-l\tList contents of filesystem tree (.list format)\n"
	"\t-e\tExtract control files to directory\n"	
	"\t-x\tExctract packages filesystem tree to directory\n"
	"\t-X\tVerbose extract"
#endif
#endif
DO_COMMA
#endif

#if defined BB_DU
#if defined USAGE_ENUM
du_usage_index
#elif defined USAGE_MESSAGES
	"[-?ls"
#ifdef BB_FEATURE_HUMAN_READABLE
	"hm"
#endif
	"k] [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSummarizes disk space used for each FILE and/or directory.\n"
	"Disk space is printed in units of 1024 bytes.\n\n"
	"Options:\n"
        "\t-?\tshow usage information\n"
	"\t-l\tcount sizes many times if hard linked\n"
	"\t-s\tdisplay only a total for each argument"
#ifdef BB_FEATURE_HUMAN_READABLE
	"\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
	"\t-m\tprint sizes in megabytes\n"
	"\t-k\tprint sizes in kilobytes(default)"
#else
	"\n\t-k\tprint sizes in kilobytes(compatability)"
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_DUMPKMAP
#if defined USAGE_ENUM
dumpkmap_usage_index
#elif defined USAGE_MESSAGES
	"> keymap"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints out a binary keyboard translation table to standard input."
#endif
#endif
DO_COMMA
#endif

#if defined BB_DUTMP
#if defined USAGE_ENUM
dutmp_usage_index
#elif defined USAGE_MESSAGES
	"[FILE]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nDump utmp file format (pipe delimited) from FILE\n"
	"or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')"
#endif
#endif
DO_COMMA
#endif

#if defined BB_ECHO
#if defined USAGE_ENUM
echo_usage_index
#elif defined USAGE_MESSAGES
	"[-neE] [ARG ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints the specified ARGs to stdout\n\n"
	"Options:\n"
	"\t-n\tsuppress trailing newline\n"
	"\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
	"\t-E\tdisable interpretation of backslash-escaped characters"
#endif
#endif
DO_COMMA
#endif

#if defined BB_EXPR
#if defined USAGE_ENUM
expr_usage_index
#elif defined USAGE_MESSAGES
	"EXPRESSION"
#ifndef BB_FEATURE_TRIVIAL_HELP
"\n\nPrints the value of EXPRESSION to standard output.\n\n"
"EXPRESSION may be:\n"
"ARG1 |  ARG2	ARG1 if it is neither null nor 0, otherwise ARG2\n"
"ARG1 &  ARG2	ARG1 if neither argument is null or 0, otherwise 0\n"
"ARG1 <  ARG2	ARG1 is less than ARG2\n"
"ARG1 <= ARG2	ARG1 is less than or equal to ARG2\n"
"ARG1 =  ARG2	ARG1 is equal to ARG2\n"
"ARG1 != ARG2	ARG1 is unequal to ARG2\n"
"ARG1 >= ARG2	ARG1 is greater than or equal to ARG2\n"
"ARG1 >  ARG2	ARG1 is greater than ARG2\n"
"ARG1 +  ARG2	arithmetic sum of ARG1 and ARG2\n"
"ARG1 -  ARG2	arithmetic difference of ARG1 and ARG2\n"
"ARG1 *  ARG2	arithmetic product of ARG1 and ARG2\n"
"ARG1 /  ARG2	arithmetic quotient of ARG1 divided by ARG2\n"
"ARG1 %  ARG2	arithmetic remainder of ARG1 divided by ARG2\n"
"STRING : REGEXP		    anchored pattern match of REGEXP in STRING\n"
"match STRING REGEXP	    same as STRING : REGEXP\n"
"substr STRING POS LENGTH    substring of STRING, POS counted from 1\n"
"index STRING CHARS	    index in STRING where any CHARS is found, or 0\n"
"length STRING		    length of STRING\n"
"quote TOKEN		    interpret TOKEN as a string, even if it is a \n"
"				keyword like `match' or an operator like `/'\n"
"( EXPRESSION )		    value of EXPRESSION\n\n"
"Beware that many operators need to be escaped or quoted for shells.\n"
"Comparisons are arithmetic if both ARGs are numbers, else\n"
"lexicographical.  Pattern matches return the string matched between \n"
"\\( and \\) or null; if \\( and \\) are not used, they return the number \n"
"of characters matched or 0."

#endif
#endif
DO_COMMA
#endif


#if defined BB_TRUE_FALSE
#if defined USAGE_ENUM
false_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nReturn an exit code of FALSE (1)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_FDFLUSH
#if defined USAGE_ENUM
fdflush_usage_index
#elif defined USAGE_MESSAGES
	"DEVICE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nForces floppy disk drive to detect disk change"
#endif
#endif
DO_COMMA
#endif

#if defined BB_FIND
#if defined USAGE_ENUM
find_usage_index
#elif defined USAGE_MESSAGES
	"[PATH...] [EXPRESSION]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSearch for files in a directory hierarchy.  The default PATH is\n"
	"the current directory; default EXPRESSION is '-print'\n\n"
	"\nEXPRESSION may consist of:\n"
	"\t-follow\t\tDereference symbolic links.\n"
	"\t-name PATTERN\tFile name (leading directories removed) matches PATTERN."
#ifdef BB_FEATURE_FIND_TYPE
	"\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)"
#endif
#ifdef BB_FEATURE_FIND_PERM
	"\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)"
#endif
#ifdef BB_FEATURE_FIND_MTIME
	"\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days"
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_FREE
#if defined USAGE_ENUM
free_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nDisplays the amount of free and used system memory"
#endif
#endif
DO_COMMA
#endif

#if defined BB_FREERAMDISK
#if defined USAGE_ENUM
freeramdisk_usage_index
#elif defined USAGE_MESSAGES
	"DEVICE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nFrees all memory used by the specified ramdisk."
#endif
#endif
DO_COMMA
#endif

#if defined BB_FSCK_MINIX
#if defined USAGE_ENUM
fsck_minix_usage_index
#elif defined USAGE_MESSAGES
	"[-larvsmf] /dev/name"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPerforms a consistency check for MINIX filesystems.\n\n"
	"Options:\n"
	"\t-l\tLists all filenames\n"
	"\t-r\tPerform interactive repairs\n"
	"\t-a\tPerform automatic repairs\n"
	"\t-v\tverbose\n"
	"\t-s\tOutputs super-block information\n"
	"\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"
	"\t-f\tForce file system check."
#endif
#endif
DO_COMMA
#endif

#if defined BB_GETOPT
#if defined USAGE_ENUM
getopt_usage_index
#elif defined USAGE_MESSAGES
	"[OPTIONS]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\nParse command options\n"
	"  -a, --alternative            Allow long options starting with single -\n"
	"  -l, --longoptions=longopts   Long options to be recognized\n"
	"  -n, --name=progname          The name under which errors are reported\n"
	"  -o, --options=optstring      Short options to be recognized\n"
	"  -q, --quiet                  Disable error reporting by getopt(3)\n"
	"  -Q, --quiet-output           No normal output\n"
	"  -s, --shell=shell            Set shell quoting conventions\n"
	"  -T, --test                   Test for getopt(1) version\n"
	"  -u, --unqote                 Do not quote the output"
#endif
#endif
DO_COMMA
#endif

#if defined BB_GREP
#if defined USAGE_ENUM
grep_usage_index
#elif defined USAGE_MESSAGES
	"[-ihHnqvs] pattern [files...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSearch for PATTERN in each FILE or standard input.\n\n"
	"Options:\n"
	"\t-H\tprefix output lines with filename where match was found\n"
	"\t-h\tsuppress the prefixing filename on output\n"
	"\t-i\tignore case distinctions\n"
	"\t-n\tprint line number with output lines\n"
	"\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n"
	"\t-v\tselect non-matching lines\n"
	"\t-s\tsuppress file open/read error messages"
#endif
#endif
DO_COMMA
#endif

#if defined BB_GUNZIP
#if defined USAGE_ENUM
gunzip_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... FILE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nUncompress FILE (or standard input if FILE is '-').\n\n"
	"Options:\n"
	"\t-c\tWrite output to standard output\n"
	"\t-t\tTest compressed file integrity"
#endif
#endif
DO_COMMA
#endif

#if defined BB_GZIP
#if defined USAGE_ENUM
gzip_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... FILE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCompress FILE with maximum compression.\n"
	"When FILE is '-', reads standard input.  Implies -c.\n\n"
	"Options:\n"
	"\t-c\tWrite output to standard output instead of FILE.gz\n"
	"\t-d\tdecompress"
#endif
#endif
DO_COMMA
#endif

#if defined BB_HALT
#if defined USAGE_ENUM
halt_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nHalt the system."
#endif
#endif
DO_COMMA
#endif

#if defined BB_HEAD
#if defined USAGE_ENUM
head_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint first 10 lines of each FILE to standard output.\n"
	"With more than one FILE, precede each with a header giving the\n"
	"file name. With no FILE, or when FILE is -, read standard input.\n\n"

	"Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10"
#endif
#endif
DO_COMMA
#endif

#if defined BB_HOSTID
#if defined USAGE_ENUM
hostid_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint out a unique 32-bit identifier for the machine."
#endif
#endif
DO_COMMA
#endif

#if defined BB_HOSTNAME
#if defined USAGE_ENUM
hostname_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] {hostname | -F file}"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nGet or set the hostname or DNS domain name. If a hostname is given\n"
	"(or a file with the -F parameter), the host name will be set.\n\n"

	"Options:\n"
	"\t-s\t\tShort\n"
	"\t-i\t\tAddresses for the hostname\n"
	"\t-d\t\tDNS domain name\n"
	"\t-F, --file FILE\tUse the contents of FILE to specify the hostname"
#endif
#endif
DO_COMMA
#endif

#if defined BB_ID
#if defined USAGE_ENUM
id_usage_index
#elif defined USAGE_MESSAGES
	"[OPTIONS]... [USERNAME]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint information for USERNAME or the current user\n\n"
	"Options:\n"
	"\t-g\tprints only the group ID\n"
	"\t-u\tprints only the user ID\n"
	"\t-n\tprint a name instead of a number (with for -ug)\n"
	"\t-r\tprints the real user ID instead of the effective ID (with -ug)"
#endif
#endif
DO_COMMA
#endif

#if defined BB_IFCONFIG
#if defined USAGE_ENUM
ifconfig_usage_index
#elif defined USAGE_MESSAGES
	"[-a] [-i] [-v] <interface> [<address>]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nconfigure a network interface\n\n"
	"Options:\n"
	"  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]\n"
	"  [netmask <address>]  [dstaddr <address>]  [tunnel <adress>]\n"
#ifdef SIOCSKEEPALIVE
	"  [outfill <NN>] [keepalive <NN>]\n"
#endif
	"  [hw ether <address>]  [metric <NN>]  [mtu <NN>]\n"
	"  [[-]trailers]  [[-]arp]  [[-]allmulti]\n"
	"  [multicast]  [[-]promisc]\n"
	"  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]\n"
	"  [up|down] ..."
#endif
#endif
DO_COMMA
#endif

#if defined BB_INIT
#if defined USAGE_ENUM
init_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nInit is the parent of all processes.\n\n"
	"This version of init is designed to be run only by the kernel."
#endif
#endif
DO_COMMA
#endif

#if defined BB_INSMOD
#if defined USAGE_ENUM
insmod_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... MODULE [symbol=value]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLoads the specified kernel modules into the kernel.\n\n"
	"Options:\n"
	"\t-f\tForce module to load into the wrong kernel version.\n"
	"\t-k\tMake module autoclean-able.\n"
	"\t-v\tverbose output\n" 
	"\t-L\tLock to prevent simultaneous loads of a module\n"
	"\t-x\tdo not export externs"
#endif
#endif
DO_COMMA
#endif

#if defined BB_KILL
#if defined USAGE_ENUM
kill_usage_index
#elif defined USAGE_MESSAGES
	"[-signal] process-id [process-id ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
	"Options:\n" "\t-l\tList all signal names and numbers."
#endif
#endif
DO_COMMA
#endif

#if defined BB_KILLALL
#if defined USAGE_ENUM
killall_usage_index
#elif defined USAGE_MESSAGES
	"[-signal] process-name [process-name ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
	"Options:\n" "\t-l\tList all signal names and numbers."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LENGTH
#if defined USAGE_ENUM
length_usage_index
#elif defined USAGE_MESSAGES
	"STRING"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints out the length of the specified STRING."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LN
#if defined USAGE_ENUM
ln_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] TARGET... LINK_NAME|DIRECTORY"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n"
	"\nYou may use '--' to indicate that all following arguments are non-options.\n\n"
	"Options:\n"
	"\t-s\tmake symbolic links instead of hard links\n"
	"\t-f\tremove existing destination files\n"
	"\t-n\tno dereference symlinks - treat like normal file"
#endif
#endif
DO_COMMA
#endif

#if defined BB_LOADACM
#if defined USAGE_ENUM
loadacm_usage_index
#elif defined USAGE_MESSAGES
	"< mapfile"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLoads an acm from standard input."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LOADFONT
#if defined USAGE_ENUM
loadfont_usage_index
#elif defined USAGE_MESSAGES
	"< font"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLoads a console font from standard input."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LOADKMAP
#if defined USAGE_ENUM
loadkmap_usage_index
#elif defined USAGE_MESSAGES
	"< keymap"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLoads a binary keyboard translation table from standard input."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LOGGER
#if defined USAGE_ENUM
logger_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [MESSAGE]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nWrite MESSAGE to the system log.  If MESSAGE is omitted, log stdin.\n\n"
	"Options:\n"
	"\t-s\tLog to stderr as well as the system log.\n"
	"\t-t\tLog using the specified tag (defaults to user name).\n"
	"\t-p\tEnter the message with the specified priority.\n"
	"\t\tThis may be numerical or a ``facility.level'' pair."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LOGNAME
#if defined USAGE_ENUM
logname_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint the name of the current user."
#endif
#endif
DO_COMMA
#endif

#if defined BB_LS
#if defined USAGE_ENUM
ls_usage_index
#elif defined USAGE_MESSAGES
	"[-1Aa"
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"c"
#endif
	"Cd"
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"e"
#endif
#ifdef BB_FEATURE_LS_FILETYPES
	"F"
#endif
	"iln"
#ifdef BB_FEATURE_LS_FILETYPES
	"p"
#endif
#ifdef BB_FEATURE_LS_FOLLOWLINKS
    "L"
#endif
#ifdef BB_FEATURE_LS_RECURSIVE
	"R"
#endif
#ifdef BB_FEATURE_LS_SORTFILES
	"rS"
#endif
	"s"
#ifdef BB_FEATURE_AUTOWIDTH
	"T"
#endif
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"tu"
#endif
#ifdef BB_FEATURE_LS_SORTFILES
	"v"
#endif
#ifdef BB_FEATURE_AUTOWIDTH
	"w"
#endif
	"x"
#ifdef BB_FEATURE_LS_SORTFILES
	"X"
#endif
#ifdef BB_FEATURE_HUMAN_READABLE
	"h"
#endif
	"k] [filenames...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nList directory contents\n\n"
	"Options:\n"
	"\t-1\tlist files in a single column\n"
	"\t-A\tdo not list implied . and ..\n"
	"\t-a\tdo not hide entries starting with .\n"
	"\t-C\tlist entries by columns\n"
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"\t-c\twith -l: show ctime (the time of last\n"
	"\t\tmodification of file status information)\n"
#endif
	"\t-d\tlist directory entries instead of contents\n"
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"\t-e\tlist both full date and full time\n"
#endif
#ifdef BB_FEATURE_LS_FILETYPES
	"\t-F\tappend indicator (one of */=@|) to entries\n"
#endif
	"\t-i\tlist the i-node for each file\n"
	"\t-l\tuse a long listing format\n"
	"\t-n\tlist numeric UIDs and GIDs instead of names\n"
#ifdef BB_FEATURE_LS_FILETYPES
	"\t-p\tappend indicator (one of /=@|) to entries\n"
#endif
#ifdef BB_FEATURE_LS_FOLLOWLINKS
	"\t-L\tlist entries pointed to by symbolic links\n"
#endif
#ifdef BB_FEATURE_LS_RECURSIVE
	"\t-R\tlist subdirectories recursively\n"
#endif
#ifdef BB_FEATURE_LS_SORTFILES
	"\t-r\tsort the listing in reverse order\n"
	"\t-S\tsort the listing by file size\n"
#endif
	"\t-s\tlist the size of each file, in blocks\n"
#ifdef BB_FEATURE_AUTOWIDTH
	"\t-T NUM\tassume Tabstop every NUM columns\n"
#endif
#ifdef BB_FEATURE_LS_TIMESTAMPS
	"\t-t\twith -l: show modification time (the time of last\n"
	"\t\tchange of the file)\n"
	"\t-u\twith -l: show access time (the time of last\n"
	"\t\taccess of the file)\n"
#endif
#ifdef BB_FEATURE_LS_SORTFILES
	"\t-v\tsort the listing by version\n"
#endif
#ifdef BB_FEATURE_AUTOWIDTH
	"\t-w NUM\tassume the terminal is NUM columns wide\n"
#endif
	"\t-x\tlist entries by lines instead of by columns\n"
#ifdef BB_FEATURE_LS_SORTFILES
	"\t-X\tsort the listing by extension\n"
#endif

#ifdef BB_FEATURE_HUMAN_READABLE
	"\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
	"\t-k\tprint sizes in kilobytes(default)"
#else
	"\t-k\tprint sizes in kilobytes(compatability)"
#endif

#endif /*  BB_FEATURE_TRIVIAL_HELP */
#endif
DO_COMMA
#endif /* BB_LS */

#if defined BB_LSMOD
#if defined USAGE_ENUM
lsmod_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nList the currently loaded kernel modules."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MAKEDEVS
#if defined USAGE_ENUM
makedevs_usage_index
#elif defined USAGE_MESSAGES
	"NAME TYPE MAJOR MINOR FIRST LAST [s]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreates a range of block or character special files\n\n"
	"TYPEs include:\n"
	"\tb:\tMake a block (buffered) device.\n"
	"\tc or u:\tMake a character (un-buffered) device.\n"
	"\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n\n"
	"FIRST specifies the number appended to NAME to create the first device.\n"
	"LAST specifies the number of the last item that should be created.\n"
	"If 's' is the last argument, the base device is created as well.\n\n"
	"For example:\n"
	"\tmakedevs /dev/ttyS c 4 66 2 63   ->  ttyS2-ttyS63\n"
	"\tmakedevs /dev/hda b 3 0 0 8 s    ->  hda,hda1-hda8"
#endif
#endif
DO_COMMA
#endif

#if defined BB_MD5SUM
#if defined USAGE_ENUM
md5sum_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] [FILE]...\n"
	"or:    md5sum [OPTION] -c [FILE]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint or check MD5 checksums.\n\n"
	"Options:\n"
	"With no FILE, or when FILE is -, read standard input.\n\n"
	"\t-b\tread files in binary mode\n"
	"\t-c\tcheck MD5 sums against given list\n"
	"\t-t\tread files in text mode (default)\n"
	"\t-g\tread a string\n"
	"\nThe following two options are useful only when verifying checksums:\n"
	"\t-s,\tdon't output anything, status code shows success\n"
	"\t-w,\twarn about improperly formated MD5 checksum lines"
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKDIR
#if defined USAGE_ENUM
mkdir_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] DIRECTORY..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreate the DIRECTORY(ies), if they do not already exist\n\n"
	
	"Options:\n"
	"\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n"
	"\t-p\tno error if existing, make parent directories as needed"
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKFIFO
#if defined USAGE_ENUM
mkfifo_usage_index
#elif defined USAGE_MESSAGES
	"[OPTIONS] name"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreates a named pipe (identical to 'mknod name p')\n\n"
	"Options:\n"
	"\t-m\tcreate the pipe using the specified mode (default a=rw)"
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKFS_MINIX
#if defined USAGE_ENUM
mkfs_minix_usage_index
#elif defined USAGE_MESSAGES
	"[-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nMake a MINIX filesystem.\n\n"
	"Options:\n"
	"\t-c\t\tCheck the device for bad blocks\n"
	"\t-n [14|30]\tSpecify the maximum length of filenames\n"
	"\t-i INODES\tSpecify the number of inodes for the filesystem\n"
	"\t-l FILENAME\tRead the bad blocks list from FILENAME\n"
	"\t-v\t\tMake a Minix version 2 filesystem"
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKNOD
#if defined USAGE_ENUM
mknod_usage_index
#elif defined USAGE_MESSAGES
	"[OPTIONS] NAME TYPE MAJOR MINOR"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreate a special file (block, character, or pipe).\n\n"
	"Options:\n"
	"\t-m\tcreate the special file using the specified mode (default a=rw)\n\n"
	"TYPEs include:\n"
	"\tb:\tMake a block (buffered) device.\n"
	"\tc or u:\tMake a character (un-buffered) device.\n"
	"\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKSWAP
#if defined USAGE_ENUM
mkswap_usage_index
#elif defined USAGE_MESSAGES
	"[-c] [-v0|-v1] device [block-count]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrepare a disk partition to be used as a swap partition.\n\n"
	"Options:\n" "\t-c\t\tCheck for read-ability.\n"
	"\t-v0\t\tMake version 0 swap [max 128 Megs].\n"
	"\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n"
	"\tblock-count\tNumber of block to use (default is entire partition)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MKTEMP
#if defined USAGE_ENUM
mktemp_usage_index
#elif defined USAGE_MESSAGES
	"[-q] TEMPLATE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreates a temporary file with its name based on TEMPLATE.\n"
	"TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MORE
#if defined USAGE_ENUM
more_usage_index
#elif defined USAGE_MESSAGES
	"[FILE ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nMore is a filter for viewing FILE one screenful at a time."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MOUNT
#if defined USAGE_ENUM
mount_usage_index
#elif defined USAGE_MESSAGES
	"[flags] device directory [-o options,more-options]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nMount a filesystem\n\n"
	"Flags:\n" 
	"\t-a:\t\tMount all filesystems in fstab.\n"
#ifdef BB_MTAB
	"\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n"
	"\t-n:\t\tDon't write a mount table entry.\n"
#endif
	"\t-o option:\tOne of many filesystem options, listed below.\n"
	"\t-r:\t\tMount the filesystem read-only.\n"
	"\t-t fs-type:\tSpecify the filesystem type.\n"
	"\t-w:\t\tMount for reading and writing (default).\n"
	"\n"
	"Options for use with the \"-o\" flag:\n"
	"\tasync/sync:\tWrites are asynchronous / synchronous.\n"
	"\tatime/noatime:\tEnable / disable updates to inode access times.\n"
	"\tdev/nodev:\tAllow use of special device files / disallow them.\n"
	"\texec/noexec:\tAllow use of executable files / disallow them.\n"
#if defined BB_FEATURE_MOUNT_LOOP
	"\tloop:\t\tMounts a file via loop device.\n"
#endif
	"\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n"
	"\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n"
	"\tro/rw:\t\tMount for read-only / read-write.\n"
	"\nThere are EVEN MORE flags that are specific to each filesystem.\n"
	"You'll have to see the written documentation for those."
#endif
#endif
DO_COMMA
#endif

#if defined BB_MT
#if defined USAGE_ENUM
mt_usage_index
#elif defined USAGE_MESSAGES
	"[-f device] opcode value"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nControl magnetic tape drive operation\n"
	"\nAvailable Opcodes:\n\n"
	"bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n"
	"fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n"
	"ras3 reset retension rew rewoffline seek setblk setdensity\n"
	"setpart tell unload unlock weof wset"
#endif
#endif
DO_COMMA
#endif

#if defined BB_CP_MV
#if defined USAGE_ENUM
mv_usage_index
#elif defined USAGE_MESSAGES
	"SOURCE DEST\n"
	"   or: mv SOURCE... DIRECTORY"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
#endif
#endif
DO_COMMA
#endif

#if defined BB_NC
#if defined USAGE_ENUM
nc_usage_index
#elif defined USAGE_MESSAGES
	"[IP] [port]" 
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nNetcat opens a pipe to IP:port"
#endif
#endif
DO_COMMA
#endif

#if defined BB_NSLOOKUP
#if defined USAGE_ENUM
nslookup_usage_index
#elif defined USAGE_MESSAGES
	"[HOST]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nQueries the nameserver for the IP address of the given HOST"
#endif
#endif
DO_COMMA
#endif

#if defined BB_PING
#if defined BB_FEATURE_SIMPLE_PING
#if defined USAGE_ENUM
ping_usage_index
#elif defined USAGE_MESSAGES
	"host"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSend ICMP ECHO_REQUEST packets to network hosts"
#endif
#endif
DO_COMMA
#else /* ! defined BB_FEATURE_SIMPLE_PING */
#if defined USAGE_ENUM
ping_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... host"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n"
	"Options:\n"
	"\t-c COUNT\tSend only COUNT pings.\n"
	"\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n"
	"\t-q\t\tQuiet mode, only displays output at start\n"
	"\t\t\tand when finished."
#endif
#endif
DO_COMMA
#endif
#endif

#if defined BB_PIVOT_ROOT
#if defined USAGE_ENUM
pivot_root_usage_index
#elif defined USAGE_MESSAGES
	"new_root put_old"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nMove the current root file system to put_old and make new_root\n"
	"the new root file system."
#endif
#endif
DO_COMMA
#endif

#if defined BB_POWEROFF
#if defined USAGE_ENUM
poweroff_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nHalt the system and request that the kernel shut off the power."
#endif
#endif
DO_COMMA
#endif

#if defined BB_PRINTF
#if defined USAGE_ENUM
printf_usage_index
#elif defined USAGE_MESSAGES
	"FORMAT [ARGUMENT...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nFormats and prints ARGUMENT(s) according to FORMAT,\n"
	"Where FORMAT controls the output exactly as in C printf."
#endif
#endif
DO_COMMA
#endif

#if defined BB_PS
#if defined USAGE_ENUM
ps_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nReport process status\n"
	"\nThis version of ps accepts no options."
#endif
#endif
DO_COMMA
#endif

#if defined BB_PWD
#if defined USAGE_ENUM
pwd_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint the full filename of the current working directory."
#endif
#endif
DO_COMMA
#endif

#if defined BB_RDATE
#if defined USAGE_ENUM
rdate_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] HOST"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nGet and possibly set the system date and time from a remote HOST.\n"
	"Options:\n"
	"\t-s\tSet the system date and time (default).\n"
	"\t-p\tPrint the date and time."
#endif
#endif
DO_COMMA
#endif

#if defined BB_READLINK
#if defined USAGE_ENUM
readlink_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRead a symbolic link."
#endif
#endif
DO_COMMA
#endif

#if defined BB_REBOOT
#if defined USAGE_ENUM
reboot_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nReboot the system."
#endif
#endif
DO_COMMA
#endif
	
#if defined BB_RENICE
#if defined USAGE_ENUM
renice_usage_index
#elif defined USAGE_MESSAGES
	"priority pid [pid ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nChanges priority of running processes. Allowed priorities range\n"
	"from 20 (the process runs only when nothing else is running) to 0\n"
	"(default priority) to -20 (almost nothing else ever gets to run)."
#endif
#endif
DO_COMMA
#endif


#if defined BB_RESET
#if defined USAGE_ENUM
reset_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nResets the screen."
#endif
#endif
DO_COMMA
#endif

#if defined BB_RM
#if defined USAGE_ENUM
rm_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... FILE..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRemove (unlink) the FILE(s).  You may use '--' to\n"
	"indicate that all following arguments are non-options.\n\n"
	"Options:\n"
	"\t-f\t\tremove existing destinations, never prompt\n"
	"\t-r or -R\tremove the contents of directories recursively"
#endif
#endif
DO_COMMA
#endif

#if defined BB_RMDIR
#if defined USAGE_ENUM
rmdir_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... DIRECTORY..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRemove the DIRECTORY(ies), if they are empty."
#endif
#endif
DO_COMMA
#endif

#if defined BB_RMMOD
#if defined USAGE_ENUM
rmmod_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [MODULE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nUnloads the specified kernel modules from the kernel.\n\n"
	"Options:\n" 
	"\t-a\tTry to remove all unused kernel modules."
#endif
#endif
DO_COMMA
#endif

#if defined BB_ROUTE
#if defined USAGE_ENUM
route_usage_index
#elif defined USAGE_MESSAGES
	"[{add|del|flush}]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nEdit the kernel's routing tables"
#endif
#endif
DO_COMMA
#endif

#if defined BB_RPMUNPACK
#if defined USAGE_ENUM
rpmunpack_usage_index
#elif defined USAGE_MESSAGES
	"< package.rpm | gunzip | cpio -idmuv"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nExtracts an rpm archive."
#endif
#endif
DO_COMMA
#endif

#if defined BB_SED
#if defined USAGE_ENUM
sed_usage_index
#elif defined USAGE_MESSAGES
	"[-Vhnef] pattern [files...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\n"
	"-n\t\tsuppress automatic printing of pattern space\n"
	"-e script\tadd the script to the commands to be executed\n"
	"-f scriptfile\tadd the contents of script-file to the commands to be executed\n"
	"-h\t\tdisplay this help message\n"
	"\n"
	"If no -e or -f is given, the first non-option argument is taken as the\n"
	"sed script to interpret. All remaining arguments are names of input\n"
	"files; if no input files are specified, then the standard input is read."
#endif
#endif
DO_COMMA
#endif

#if defined BB_SETKEYCODES
#if defined USAGE_ENUM
setkeycodes_usage_index
#elif defined USAGE_MESSAGES
	"SCANCODE KEYCODE ..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSet entries into the kernel's scancode-to-keycode map,\n"
	"allowing unusual keyboards to generate usable keycodes.\n\n" 
	"SCANCODE may be either xx or e0xx (hexadecimal),\n"
	"and KEYCODE is given in decimal"
#endif
#endif
DO_COMMA
#endif

#if defined BB_SH
#if defined USAGE_ENUM
shell_usage_index
#elif defined USAGE_MESSAGES
	"[FILE]...\n"
	"   or: sh -c command [args]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nlash: The BusyBox command interpreter (shell)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_SLEEP
#if defined USAGE_ENUM
sleep_usage_index
#elif defined USAGE_MESSAGES
	"N" 
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPause for N seconds."
#endif
#endif
DO_COMMA
#endif

#if defined BB_SORT
#if defined USAGE_ENUM
sort_usage_index
#elif defined USAGE_MESSAGES
	"[-n]"
#ifdef BB_FEATURE_SORT_REVERSE
	" [-r]"
#endif
	" [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nSorts lines of text in the specified files"
#endif
#endif
DO_COMMA
#endif

#if defined BB_STTY
#if defined USAGE_ENUM
stty_usage_index
#elif defined USAGE_MESSAGES
	"stty [-a|g] [-F device] [SETTING]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nWithout arguments, prints baud rate, line discipline,"
	"\nand deviations from stty sane."
	"\n -F device  open and use the specified device instead of stdin"
	"\n -a         print all current settings in human-readable form. Or"
	"\n -g         print in a stty-readable form"
	"\n [SETTING]  see in documentation"
#endif
#endif
DO_COMMA
#endif

#if defined BB_SWAPONOFF
#if defined USAGE_ENUM
swapoff_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] [device]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nStop swapping virtual memory pages on the given device.\n\n"
	"Options:\n"
	"\t-a\tStop swapping on all swap devices"
#endif
#endif
DO_COMMA
#endif

#if defined BB_SWAPONOFF
#if defined USAGE_ENUM
swapon_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] [device]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nStart swapping virtual memory pages on the given device.\n\n"
	"Options:\n"
	"\t-a\tStart swapping on all swap devices"
#endif
#endif
DO_COMMA
#endif

#if defined BB_SYNC
#if defined USAGE_ENUM
sync_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nWrite all buffered filesystem blocks to disk."
#endif
#endif
DO_COMMA
#endif

#if defined BB_SYSLOGD
#if defined USAGE_ENUM
syslogd_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLinux system and kernel (provides klogd) logging utility.\n"
	"Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n"
	"Options:\n"
	"\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n"
	"\t-n\t\tRun as a foreground process\n"
#ifdef BB_FEATURE_KLOGD
	"\t-K\t\tDo not start up the klogd process\n"
#endif
	"\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)"
#ifdef BB_FEATURE_REMOTE_LOG
	"\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
	"\t-L\t\tLog locally as well as network logging (default is network only)"
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_TAIL
#if defined USAGE_ENUM
tail_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint last 10 lines of each FILE to standard output.\n"
	"With more than one FILE, precede each with a header giving the\n"
	"file name. With no FILE, or when FILE is -, read standard input.\n\n"
	"Options:\n"
#ifndef BB_FEATURE_SIMPLE_TAIL
	"\t-c N[kbm]\toutput the last N bytes\n"
#endif
	"\t-n N[kbm]\tprint last N lines instead of last 10\n"
	"\t-f\t\toutput data as the file grows"
#ifndef BB_FEATURE_SIMPLE_TAIL
	"\n\t-q\t\tnever output headers giving file names\n"
	"\t-s SEC\t\twait SEC seconds between reads with -f\n"
	"\t-v\t\talways output headers giving file names\n\n"
	"If the first character of N (bytes or lines) is a `+', output begins with \n"
	"the Nth item from the start of each file, otherwise, print the last N items\n"
	"in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)."
//#else
//	"\nIf the first character of N (bytes or lines) is a `+', output begins with \n"
//	"the Nth item from the start of each file."
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_TAR
#if defined USAGE_ENUM
tar_usage_index
#elif defined USAGE_MESSAGES
#ifdef BB_FEATURE_TAR_CREATE
	"-[cxtvO] "
#else
	"-[xtvO] "
#endif
#if defined BB_FEATURE_TAR_EXCLUDE
	"[--exclude File] "
        "[-X File]"
#endif
	"[-f tarFile] [FILE(s)] ..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCreate, extract, or list files from a tar file.\n\n"
	"Main operation mode:\n"
#ifdef BB_FEATURE_TAR_CREATE
	"\tc\t\tcreate\n"
#endif
	"\tx\t\textract\n"
	"\tt\t\tlist\n"
	"\nFile selection:\n"
	"\tf\t\tname of tarfile or \"-\" for stdin\n"
	"\tO\t\textract to stdout\n"
#if defined BB_FEATURE_TAR_EXCLUDE
	"\texclude\t\tfile to exclude\n"
        "\tX\t\tfile with names to exclude\n"
#endif
	"\nInformative output:\n"
	"\tv\t\tverbosely list files processed"
#endif
#endif
DO_COMMA
#endif

#if defined BB_TEE
#if defined USAGE_ENUM
tee_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nCopy standard input to each FILE, and also to standard output.\n\n"
	"Options:\n" "\t-a\tappend to the given FILEs, do not overwrite"
#endif
#endif
DO_COMMA
#endif

#if defined BB_TELNET
#if defined USAGE_ENUM
telnet_usage_index
#elif defined USAGE_MESSAGES
	"host [port]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nTelnet is used to establish interactive communication with another\n"
	"computer over a network using the TELNET protocol."
#endif
#endif
DO_COMMA
#endif

#if defined BB_TEST
#if defined USAGE_ENUM
test_usage_index
#elif defined USAGE_MESSAGES
	"\ntest EXPRESSION\n"
	"or   [ EXPRESSION ]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nChecks file types and compares values returning an exit\n"
	"code determined by the value of EXPRESSION."
#endif
#endif
DO_COMMA
#endif

#if defined BB_TOUCH
#if defined USAGE_ENUM
touch_usage_index
#elif defined USAGE_MESSAGES
	"[-c] file [file ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nUpdate the last-modified date on the given file[s].\n\n"
	"Options:\n"
	"\t-c\tDo not create any files"
#endif
#endif
DO_COMMA
#endif

#if defined BB_TR
#if defined USAGE_ENUM
tr_usage_index
#elif defined USAGE_MESSAGES
	"[-cds] STRING1 [STRING2]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nTranslate, squeeze, and/or delete characters from\n"
	"standard input, writing to standard output.\n\n"
	"Options:\n"
	"\t-c\ttake complement of STRING1\n"
	"\t-d\tdelete input characters coded STRING1\n"
	"\t-s\tsqueeze multiple output characters of STRING2 into one character"
#endif
#endif
DO_COMMA
#endif

#if defined BB_TRUE_FALSE
#if defined USAGE_ENUM
true_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nReturn an exit code of TRUE (0)."
#endif
#endif
DO_COMMA
#endif

#if defined BB_TTY
#if defined USAGE_ENUM
tty_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint the file name of the terminal connected to standard input.\n\n"
	"Options:\n"
	"\t-s\tprint nothing, only return an exit status"
#endif
#endif
DO_COMMA
#endif

#if defined BB_UMOUNT
#if defined USAGE_ENUM
umount_usage_index
#elif defined USAGE_MESSAGES
	"[flags] filesystem|directory"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\nUnmount file systems\n"
	"\nFlags:\n" "\t-a:\tUnmount all file systems"
#ifdef BB_MTAB
	" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n"
#else
	"\n"
#endif
	"\t-r:\tTry to remount devices as read-only if mount is busy"
#if defined BB_FEATURE_MOUNT_FORCE
	"\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)"
#endif
#if defined BB_FEATURE_MOUNT_LOOP
	"\n\t-l:\tDo not free loop device (if a loop device has been used)"
#endif
#endif
#endif
DO_COMMA
#endif

#if defined BB_UNAME
#if defined USAGE_ENUM
uname_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint certain system information.  With no OPTION, same as -s.\n\n"
	"Options:\n"
	"\t-a\tprint all information\n"
	"\t-m\tthe machine (hardware) type\n"
	"\t-n\tprint the machine's network node hostname\n"
	"\t-r\tprint the operating system release\n"
	"\t-s\tprint the operating system name\n"

	"\t-p\tprint the host processor type\n"
	"\t-v\tprint the operating system version"
#endif
#endif
DO_COMMA
#endif

#if defined BB_UNIQ
#if defined USAGE_ENUM
uniq_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [INPUT [OUTPUT]]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nDiscard all but one of successive identical lines from INPUT\n"
	"(or standard input), writing to OUTPUT (or standard output).\n"
	"Options:\n"
	"\t-c\tprefix lines by the number of occurrences\n"
	"\t-d\tonly print duplicate lines\n"
	"\t-u\tonly print unique lines"
#endif
#endif
DO_COMMA
#endif

#if defined BB_UNIX2DOS
#if defined USAGE_ENUM
unix2dos_usage_index
#elif defined USAGE_MESSAGES
	"< unixfile > dosfile"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nConverts a text file from unix format to dos format."
#endif
#endif
DO_COMMA
#endif

#if defined BB_UPDATE
#if defined USAGE_ENUM
update_usage_index
#elif defined USAGE_MESSAGES
	"[options]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPeriodically flushes filesystem buffers.\n\n"
	"Options:\n"
	"\t-S\tforce use of sync(2) instead of flushing\n"
	"\t-s SECS\tcall sync this often (default 30)\n"
	"\t-f SECS\tflush some buffers this often (default 5)"
#endif
#endif
DO_COMMA
#endif

#if defined BB_UPTIME
#if defined USAGE_ENUM
uptime_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nDisplay the time since the last boot."
#endif
#endif
DO_COMMA
#endif

#if defined BB_USLEEP
#if defined USAGE_ENUM
usleep_usage_index
#elif defined USAGE_MESSAGES
	"N" 
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPause for N microseconds."
#endif
#endif
DO_COMMA
#endif

#if defined BB_UUDECODE
#if defined USAGE_ENUM
uudecode_usage_index
#elif defined USAGE_MESSAGES
	"[FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nUudecode a file that is uuencoded.\n\n"
	"Options:\n"
	"\t-o FILE\tdirect output to FILE"
#endif
#endif
DO_COMMA
#endif

#if defined BB_UUENCODE
#if defined USAGE_ENUM
uuencode_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION] [INFILE] REMOTEFILE"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nUuencode a file.\n\n"
	"Options:\n"
	"\t-m\tuse base64 encoding as of RFC1521"
#endif
#endif
DO_COMMA
#endif

#if defined BB_WATCHDOG
#if defined USAGE_ENUM
watchdog_usage_index
#elif defined USAGE_MESSAGES
	"dev"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPeriodically write to watchdog device \"dev\""
#endif
#endif
DO_COMMA
#endif

#if defined BB_WC
#if defined USAGE_ENUM
wc_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [FILE]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrint line, word, and byte counts for each FILE, and a total line if\n"
	"more than one FILE is specified.  With no FILE, read standard input.\n\n"
	"Options:\n"
	"\t-c\tprint the byte counts\n"
	"\t-l\tprint the newline counts\n"

	"\t-L\tprint the length of the longest line\n"
	"\t-w\tprint the word counts"
#endif
#endif
DO_COMMA
#endif

#if defined BB_WGET
#if defined USAGE_ENUM
wget_usage_index
#elif defined USAGE_MESSAGES
 "[-c] [-O file] url"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nwget retrieves files via HTTP\n\n"
	"Options:\n"
	"\t-c\tcontinue retrieval of aborted transfers\n"
	"\t-O\tsave to filename ('-' for stdout)"
#endif
#endif
DO_COMMA
#endif

#if defined BB_WHICH
#if defined USAGE_ENUM
which_usage_index
#elif defined USAGE_MESSAGES
	"[COMMAND ...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nLocates a COMMAND."
#endif
#endif
DO_COMMA
#endif

#if defined BB_WHOAMI
#if defined USAGE_ENUM
whoami_usage_index
#elif defined USAGE_MESSAGES
	""
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nPrints the user name associated with the current effective user id."
#endif
#endif
DO_COMMA
#endif

#if defined BB_XARGS
#if defined USAGE_ENUM
xargs_usage_index
#elif defined USAGE_MESSAGES
 "[COMMAND] [ARGS...]"
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nExecutes COMMAND on every item given by standard input." 
#endif
#endif
DO_COMMA
#endif

#if defined BB_YES
#if defined USAGE_ENUM
yes_usage_index
#elif defined USAGE_MESSAGES
	"[OPTION]... [STRING]..."
#ifndef BB_FEATURE_TRIVIAL_HELP
	"\n\nRepeatedly outputs a line with all specified STRING(s), or `y'."
#endif
#endif
DO_COMMA
#endif

#if defined USAGE_ENUM || defined USAGE_MESSAGES
};
#endif

#undef DOCOMMA
#undef USAGE_ENUM
#undef USAGE_MESSAGES

