Buildroot:ManualOrganization

= Discussion around the organization of the Buildroot manual =

List of topics that must be covered

 * Starting with Buildroot (out-of-box experience, just using menuconfig options to get something, no need to hack anything)
 * Configuration
 * Explain the impact of the target architecture variant selection
 * Explain the toolchain backends
 * Explain the init systems
 * Explain the /dev management strategies. Explain custom device tables.
 * Explain the configuration of the kernel, and real-time extensions
 * Explain the root filesystem types, with specific details on the special initramfs case
 * Explain usage of the board/ directory
 * Explain usage of post-build scripts, give examples (set a root password, etc.), and explain why it's better than custom target skeletons.
 * How to add new packages
 * The different package infrastructures
 * Details on autotools-package infrastructure, on cmake-package infrastructure, generic-package infrastructure
 * Details on how to write the Config.in files: when 'depends on' should be used, when 'select' should be used. How to properly handle dependencies on toolchain features (RPC, locale, etc.)
 * Details on hooks
 * Details on adding patches to packages
 * Details on adding licensing information to packages
 * Details on gettext/libiconv handling
 * The different download infrastructures
 * Contribution
 * How to report bugs (bug tracker, IRC). Explain to include the .config file + 100-200 last lines of build log after doing a complete 'make clean; make'
 * How to send patches.

Proposed organization
This toc suggestion is close to the one already posted on the mailing list (see: http://lists.busybox.net/pipermail/buildroot/2012-March/051952.html), and is here to give some starting-point.


 * 1) About Buildroot
 * 2) Starting up
 * 3) System requirements
 * 4) Mandatory packages
 * 5) Optional packages
 * 6) Getting Buildroot
 * 7) Using Buildroot
 * 8) Working with Buildroot
 * 9) make tips
 * 10) Customization
 * 11) Customizing the generated target filesystem
 * 12) Customizing the Busybox configuration
 * 13) Customizing the uClibc configuration
 * 14) Customizing the Linux kernel configuration
 * 15) Customizing the toolchain
 * 16) Using the external toolchain backend
 * 17) Using the internal Buildroot toolchain backend
 * 18) Using the Crosstool-NG backend
 * 19) Daily use
 * 20) Understanding how to rebuild packages
 * 21) Offline builds
 * 22) Building out-of-tree
 * 23) Environment variables
 * 24) Hacking Buildroot
 * 25) Frequently Asked Questions & Troubleshooting
 * 26) The boot hangs after Starting network…
 * 27) module-init-tools fails to build with cannot find -lc
 * 28) LZO package configuration failure due to incorrect host architecture detection
 * 29) Typical error output
 * 30) Solution
 * 31) Going further in Buildroot’s innards
 * 32) Embedded system basics & Reasons to use Buildroot
 * 33) Cross-compilation & cross-toolchain
 * 34) Why choose Buildroot
 * 35) How Buildroot works
 * 36) Advanced usage
 * 37) Using the generated toolchain outside Buildroot
 * 38) Using an external toolchain
 * 39) Using ccache in Buildroot
 * 40) Location of downloaded packages
 * 41) Package make targets
 * 42) Developer Guidelines
 * 43) Writing rules
 * 44) Config.in file
 * 45) The .mk file
 * 46) The documentation
 * 47) Adding new packages to Buildroot
 * 48) Package directory
 * 49) Config.in file
 * 50) The .mk file
 * 51) Infrastructure for packages with specific build systems
 * 52) generic-package Tutorial
 * 53) generic-package Reference
 * 54) Infrastructure for autotools-based packages
 * 55) autotools-package tutorial
 * 56) autotools-package reference
 * 57) Infrastructure for CMake-based packages
 * 58) cmake-package tutorial
 * 59) cmake-package reference
 * 60) Manual Makefile
 * 61) Gettext integration and interaction with packages
 * 62) Conclusion
 * 63) Patch Policy
 * 64) Provinding patches
 * 65) Additionnal tarball
 * 66) Within Buildroot
 * 67) How patches are applied
 * 68) Format and licensing of the package patches
 * 69) Download infrastructure
 * 70) Creating your own board support
 * 71) Getting involved
 * 72) Mailing List
 * 73) Subscribing to the mailing list
 * 74) Searching the List Archives
 * 75) IRC
 * 76) Patchwork
 * 77) Bugtracker
 * 78) Buildroot wikipage
 * 79) Contibuting to Buildroot
 * 80) Submitting patches
 * 81) Reviewing/Testing patches
 * 82) Autobuild
 * 83) Legal notice and licensing
 * 84) Complying with opensource licenses
 * 85) Complying with the Buildroot license
 * 86) Appendix
 * 87) Makedev syntax documentation
 * 88) Deprecated list