diff --git a/usage.h b/usage.h
new file mode 100644
index 0000000..22e52f5
--- /dev/null
+++ b/usage.h
@@ -0,0 +1,2038 @@
+#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\tor exactly (NNN)"
+#endif
+#ifdef BB_FEATURE_FIND_MTIME
+	"\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\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
+
