All the files in this directory except this README are generated by the
build.  (See scripts/make.sh)

config.h: CFG_COMMAND and USE_COMMAND() macros set by menuconfig via .config.

Config.in: Kconfig entries for each command.  Included by top level Config.in.
           The help text in here is used to generated help.h

help.h: Help text strings for use by "help" command.  Building this file
        requires python on the host system, so the prebuilt file is shipped
        in the build tarball to avoid requiring python to build toybox.

newtoys.h: List of NEWTOY() or OLDTOY() macros for all available commands.
           Associates command_main() functions with command names, provides
           option string for command line parsing (see lib/args.c), specifies
           where to install each command and whether toysh should fork before
           calling it.
