Please see the LICENSE file for copyright information.

Busybox is a multicall binary used to provide a minimal subset of 
POSIX style commands and specialized functions.

It is geared toward the very small, i.e. boot floppies, embedded-
systems, etc. Specifically it is used in the Debian Rescue/Install
system (which caused the original busybox to be made), the Linux Router
Project, and others.

As of version 0.20 there is a version number. : )
Also as of version 0.20, BB is modularized to allow an easy build of
only the BB parts you need, to reduce binary size.

Edit the file busybox.def.h and comment out the parts you do not need
using C++ comments (//)

After the build is complete a busybox.links file is generated to allow
you to easily make the sym/hard links to the busybox binary.

Note the modular system is Makefile based, and purposely very
simplistic. It does no dependency checking. That is left for you
to figure out by trial and error.

Please feed patches back to:
	Erik Andersen <andersee@deban.org>
