// -*- mode:doc; -*-
// vim: set syntax=asciidoc:

= The Buildroot user manual
:toc:

Buildroot {sys:echo $\{BR2_VERSION%%-git*\}} manual generated on {localdate}
{localtime} from git revision {sys:git rev-parse --short HEAD}

The Buildroot manual is written by the Buildroot developers.
It is licensed under the GNU General Public License, version 2. Refer to the
http://git.buildroot.org/buildroot/tree/COPYING?id={sys:git rev-parse HEAD}[COPYING]
file in the Buildroot sources for the full text of this license.

Copyright (C) 2004-2019 The Buildroot developers

image::logo.png[]

= Getting started

include::introduction.txt[]

include::prerequisite.txt[]

include::getting.txt[]

include::quickstart.txt[]

include::resources.txt[]

= User guide

include::configure.txt[]

include::configure-other-components.txt[]

include::common-usage.txt[]

include::customize.txt[]

include::faq-troubleshooting.txt[]

include::known-issues.txt[]

include::legal-notice.txt[]

include::beyond-buildroot.txt[]

= Developer guide

include::how-buildroot-works.txt[]

include::writing-rules.txt[]

include::adding-board-support.txt[]

include::adding-packages.txt[]

include::patch-policy.txt[]

include::download-infra.txt[]

include::debugging-buildroot.txt[]

include::contribute.txt[]

include::developers.txt[]

= Appendix

include::appendix.txt[]
