Remove duplicate variable definition
[oweals/busybox.git] / docs / new-applet-HOWTO.txt
index c27aef828cd6d308ba4207b520a49971d346ff9c..7cae30b457c4b81d7da2b2c49d9ec6fe2140245a 100644 (file)
@@ -6,7 +6,7 @@ This document details the steps you must take to add a new applet to BusyBox.
 Credits:
 Matt Kraai - initial writeup
 Mark Whitley - the remix
 Credits:
 Matt Kraai - initial writeup
 Mark Whitley - the remix
-
+Thomas Lundquist - Added stuff for the new directory layout.
 
 Initial Write
 -------------
 
 Initial Write
 -------------
@@ -61,45 +61,69 @@ int mu_main(int argc, char **argv)
 
 ----end example code------
 
 
 ----end example code------
 
+
+Coding Style
+------------
+
+Before you submit your applet for inclusion in BusyBox, (or better yet, before
+you _write_ your applet) please read through the style guide in the docs
+directory and make your program compliant.
+
+
+Some Words on libbb
+-------------------
+
 As you are writing your applet, please be aware of the body of pre-existing
 As you are writing your applet, please be aware of the body of pre-existing
-useful functions in utility.c. Use these instead of reinventing the wheel.
+useful functions in libbb. Use these instead of reinventing the wheel.
+
 Additionally, if you have any useful, general-purpose functions in your
 program that could be useful in another program, consider putting them in
 Additionally, if you have any useful, general-purpose functions in your
 program that could be useful in another program, consider putting them in
-utility.c.
+libbb.
 
 
-Furthermore, please read through the style guide in the docs directory and
-make your program compliant.
+
+Placement / Directory
+---------------------
+
+Find the appropriate directory for your new applet.
+
+Add the applet to the applet directory Makefile:
+
+obj-$(CONFIG_MU)               += mu.o
+
+Add the applet to the applet directory config.in:
+
+bool 'mu'          CONFIG_MU
 
 
 Usage String(s)
 ---------------
 
 
 
 Usage String(s)
 ---------------
 
-Next, add usage information for you applet to usage.c. This should look like
-the following:
+Next, add usage information for you applet to include/usage.h. 
+This should look like the following:
 
 
-       #if defined BB_MU
-       const char mu_usage[] =
-               "mu\n"
-       #ifndef BB_FEATURE_TRIVIAL_HELP
-               "\nReturns an indeterminate value.\n"
-       #endif
-               ;
+       #define mu_trivial_usage \
+               "-[abcde] FILES"
+       #define mu_full_usage \
+               "Returns an indeterminate value.\n\n" \
+               "Options:\n" \
+               "\t-a\t\tfirst function\n" \
+               "\t-b\t\tsecond function\n" \
 
 If your program supports flags, the flags should be mentioned on the first
 
 If your program supports flags, the flags should be mentioned on the first
-line (mu -[bcRovma]) and a detailed description of each flag should go in the
-BB_FEATURE_TRIVIAL_HELP section, one flag per line. (Numerous examples of this
-currently exist in utility.c.)
+line (-[abcde]) and a detailed description of each flag should go in the
+mu_full_usage section, one flag per line. (Numerous examples of this
+currently exist in usage.h.)
 
 
 Header Files
 ------------
 
 
 
 Header Files
 ------------
 
-Next, add an entry to applets.h.  Be *sure* to keep the list in alphabetical
-order, or else it will break the binary-search lookup algorithm in busybox.c
-and the Gods of BusyBox smite you. Yea, verily:
+Next, add an entry to include/applets.h.  Be *sure* to keep the list 
+in alphabetical order, or else it will break the binary-search lookup 
+algorithm in busybox.c and the Gods of BusyBox smite you. Yea, verily:
 
        /* all programs above here are alphabetically "less than" 'mu' */
 
        /* all programs above here are alphabetically "less than" 'mu' */
-       #ifdef BB_MU
+       #ifdef CONFIG_MU
                APPLET("mu", mu_main, _BB_DIR_USR_BIN, mu_usage)
        #endif
        /* all programs below here are alphabetically "greater than" 'mu' */
                APPLET("mu", mu_main, _BB_DIR_USR_BIN, mu_usage)
        #endif
        /* all programs below here are alphabetically "greater than" 'mu' */
@@ -107,7 +131,7 @@ and the Gods of BusyBox smite you. Yea, verily:
 
 Finally, add a define for your applet to Config.h:
 
 
 Finally, add a define for your applet to Config.h:
 
-       #define BB_MU
+       #define CONFIG_MU
 
 
 Documentation
 
 
 Documentation
@@ -116,13 +140,15 @@ Documentation
 If you're feeling especially nice, you should also document your applet in the
 docs directory (but nobody ever does that).
 
 If you're feeling especially nice, you should also document your applet in the
 docs directory (but nobody ever does that).
 
+Adding some text to docs/Configure.help is a nice start.
+
 
 The Grand Announcement
 ----------------------
 
 Then create a diff -urN of the files you added (<applet>.c, usage.c,
 applets.h, Config.h) and send it to the mailing list:
 
 The Grand Announcement
 ----------------------
 
 Then create a diff -urN of the files you added (<applet>.c, usage.c,
 applets.h, Config.h) and send it to the mailing list:
-busybox@opensource.lineo.com. Sending patches as attachments is preferred, but
+busybox@busybox.net. Sending patches as attachments is preferred, but
 not required.
 
 
 not required.