X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=docs%2Fnew-applet-HOWTO.txt;h=7cae30b457c4b81d7da2b2c49d9ec6fe2140245a;hb=008c01915b69b006da92b986dd6fea6edb3c3097;hp=c27aef828cd6d308ba4207b520a49971d346ff9c;hpb=eac2636513fbe876480e38519c09481612131393;p=oweals%2Fbusybox.git diff --git a/docs/new-applet-HOWTO.txt b/docs/new-applet-HOWTO.txt index c27aef828..7cae30b45 100644 --- a/docs/new-applet-HOWTO.txt +++ b/docs/new-applet-HOWTO.txt @@ -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 - +Thomas Lundquist - Added stuff for the new directory layout. Initial Write ------------- @@ -61,45 +61,69 @@ int mu_main(int argc, char **argv) ----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 -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 -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) --------------- -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 -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 ------------ -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' */ - #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' */ @@ -107,7 +131,7 @@ and the Gods of BusyBox smite you. Yea, verily: Finally, add a define for your applet to Config.h: - #define BB_MU + #define CONFIG_MU 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). +Adding some text to docs/Configure.help is a nice start. + The Grand Announcement ---------------------- Then create a diff -urN of the files you added (.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.