To add a new applet to Busybox, first pick a name for the applet and a corresponding CONFIG_NAME. Then do this:
- Figure out where in the Busybox source tree your applet best fits, and put your source code there. Be sure to use APPLET_main() instead of main(), where APPLET is the name of your applet.
- Add your applet to the relevant Config.in file (which file you add it to determines where it shows up in "make menuconfig"). This uses the same general format as the linux kernel's configuration system.
- Add your applet to the relevant Kbuild file (in the same directory as the Config.in you chose), using the existing entries as a template and the same CONFIG symbol as you used for Config.in.
- Add your applet to "include/applets.h", using one of the existing entries as a template. (Note: they are in alphabetical order. Applets are found via binary search, and if you add an applet out of order it won't work.)
- Add your applet's runtime help text to "include/usage.h". You need at least appname_trivial_usage (the minimal help text, always included in the Busybox binary when this applet is enabled) and appname_full_usage (extra help text included in the Busybox binary with CONFIG_FEATURE_VERBOSE_USAGE is enabled), or it won't compile. The other two help entry types (appname_example_usage and appname_notes_usage) are optional. They don't take up space in the binary, but instead show up in the generated documentation (BusyBox.html, BusyBox.txt, and the man page busybox.1).
- Run menuconfig, switch your applet on, compile, test, and fix the bugs. Be sure to try both "allyesconfig" and "allnoconfig".