* [PATCH] Documentation: User manual, "barebox" section
@ 2014-06-30 14:41 Robert P. J. Day
2014-06-30 16:08 ` Sascha Hauer
0 siblings, 1 reply; 4+ messages in thread
From: Robert P. J. Day @ 2014-06-30 14:41 UTC (permalink / raw)
To: U-Boot Version 2 (barebox)
Various grammar/font fixes to that section, including adding an
additional section describing how to properly do "out of tree"
configuration and building.
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
---
diff --git a/Documentation/user/barebox.rst b/Documentation/user/barebox.rst
index 70bdedc..6a679c0 100644
--- a/Documentation/user/barebox.rst
+++ b/Documentation/user/barebox.rst
@@ -13,8 +13,8 @@ All releases can be downloaded from:
http://www.barebox.org/download/
-Development versions of barebox are accessible via git. A local repository clone
-can be created using git::
+Development versions of barebox are accessible via Git. A local repository clone
+can be checked out as follows::
$ git clone git://git.pengutronix.de/git/barebox.git
Cloning into 'barebox'...
@@ -26,8 +26,9 @@ can be created using git::
Checking connectivity... done.
Checking out files: 100% (5651/5651), done.
-After this, make sure to check out needed branch. If you want to
-develop for barebox, it's better to check the the next branch::
+After this, make sure to check out the appropriate branch. If you want to
+develop for barebox, it's best to check out the ``next`` branch rather than
+the ``master`` branch::
$ git checkout -b next origin/remotes/next
@@ -39,11 +40,11 @@ http://git.pengutronix.de/?p=barebox.git.
Configuration
-------------
-barebox uses Kconfig from the Linux Kernel as a configuration tool.
-All configuration is accessible via the 'make' command. Before running
-it you have to specify your architecture with the ARCH environment
-variable and the cross compiler with the CROSS_COMPILE environment
-variable. ARCH has to be one of:
+barebox uses Kconfig from the Linux kernel as a configuration tool,
+where all configuration is done via the ``make`` command. Before running
+it you have to specify your architecture with the ``ARCH`` environment
+variable and the cross compiler with the ``CROSS_COMPILE`` environment
+variable. ``ARCH`` has to be one of:
* arm
* blackfin
@@ -54,17 +55,17 @@ variable. ARCH has to be one of:
* sandbox
* x86
-CROSS_COMPILE should be the prefix of your cross compiler. This can
+``CROSS_COMPILE`` should be the prefix of your cross compiler. This can
either contain the full path or, if the cross compiler binary is
in your $PATH, just the prefix.
-Either export ARCH and CROSS_COMPILE once before working on barebox::
+Either export ``ARCH`` and ``CROSS_COMPILE`` once before working on barebox::
export ARCH=arm
export CROSS_COMPILE=/path/to/arm-cortexa8-linux-gnueabihf-
make ...
-or add them before each 'make' command::
+or add them to each invocation of the ``make`` command::
ARCH=arm CROSS_COMPILE=/path/to/arm-cortexa8-linux-gnueabihf- make ...
@@ -73,11 +74,23 @@ For readability, ARCH/CROSS_COMPILE are skipped from the following examples.
Configuring for a board
^^^^^^^^^^^^^^^^^^^^^^^
-All configuration files can be found under arch/$ARCH/configs/. For an
-overview type::
+All configuration files can be found under the ``arch/${ARCH}/configs/``
+directory. For an overview of possible Make targets for your architecture,
+type::
make help
+Your output from ``make help`` will be based on the architecture you've
+selected via the ``ARCH`` variable. So if, for example, you had selected::
+
+ export ARCH=mips
+
+your help output would represent all of the generic (architecture-independent)
+targets, followed by the MIPS-specific ones::
+
+ make [ARCH=mips] help
+ ...
+ ... list of generic targets ...
...
Architecture specific targets (mips):
No architecture specific help defined for mips
@@ -100,20 +113,51 @@ with the most popular being ``menuconfig``::
make menuconfig
-barebox used the same configuration system as Linux, so you can use
-all the things you know, e.g. ``make xconfig``, ``make allyesconfig`` etc.
+barebox uses the same (Kbuild) configuration system as Linux, so you can use
+all the kernel config targets you already know, e.g. ``make xconfig``,
+``make allyesconfig`` etc.
+
+Configuring and compiling "out-of-tree"
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Before going any further, it's worth knowing how you can do all your barebox
+configuration and compilation "out of tree"; that is, how you can keep your
+source directory pristine and have all output from the various ``make`` commands
+generated in a separate build directory.
+
+Once you check out your barebox source directory, and before you do any
+configuration or building, set the environment variable ``KBUILD_OUTPUT``
+to point to your intended output directory, as in::
+
+ export KBUILD_OUTPUT=.../my_barebox_build_directory
+
+From that point on, all of the ``make`` commands you run in your source
+directory will generate their output in your specified output directory.
+Not only does this keep your source directory clean, but it allows several
+developers to share the same source directory while doing all their own
+configuration and building in their own individual build directories.
+
+.. note::
+
+ To do out-of-tree builds, your source tree must be absolutely clean
+ of all generated artifacts from previous configurations and builds.
+ In other words, if you had earlier done any configuration or building
+ in that source tree that dumped its results into the same source tree
+ directory, you need to do the equivalent of a ``make distclean`` before
+ using that source directory for any out-of-tree builds.
Compilation
-----------
-After barebox has been :ref:`configured <configuration>` it can be compiled::
+After barebox has been :ref:`configured <configuration>` it can be compiled
+simply with::
make
The resulting binary varies depending on the board barebox is compiled for.
-Without :ref:`multi_image` support the 'barebox-flash-image' link will point
+Without :ref:`multi_image` support the ``barebox-flash-image`` link will point
to the binary for flashing/uploading to the board. With :ref:`multi_image` support
-the compilation process will finish with a list of images built under images/::
+the compilation process will finish with a list of images built under ``images/``::
images built:
barebox-freescale-imx51-babbage.img
@@ -142,7 +186,7 @@ with U-Boot's 'go' command::
With barebox already running on your board, this can be used to chainload another barebox::
- bootm /mntf/tftp/barebox.bin
+ bootm /mnt/tftp/barebox.bin
At least ``barebox.bin`` (with :ref:`pbl` support enabled ``arch/$ARCH/pbl/zbarebox.bin``)
should be startable second stage. The flash binary (``barebox-flash-image``) may or may not
@@ -177,9 +221,9 @@ This is a typical barebox startup log::
barebox@Genesi Efika MX Smartbook:/
Without intervention, barebox will continue booting after 3 seconds. If interrupted
-by pressing a key, you will find yourself on the :ref:`shell <hush>`.
+by pressing a key, you will find yourself at the :ref:`shell <hush>`.
-On the shell type ``help`` for a list of supported commands. ``help <command>`` shows
+At the shell type ``help`` for a list of supported commands. ``help <command>`` shows
the usage for a particular command. barebox has tab completion which will complete
your command. Arguments to commands are also completed depending on the command. If
a command expects a file argument only files will be offered as completion. Other
diff --git a/Makefile b/Makefile
index 6dad637..a8e57ee 100644
--- a/Makefile
+++ b/Makefile
@@ -1076,7 +1076,7 @@ help:
@echo ' enough build support to build external modules'
@echo ' mrproper - Remove all generated files + config + various backup files'
@echo ' distclean - mrproper + remove editor backup and patch files'
- @echo ' docs - build documentation
+ @echo ' docs - build documentation'
@echo ''
@echo 'Configuration targets:'
@$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] Documentation: User manual, "barebox" section
2014-06-30 14:41 [PATCH] Documentation: User manual, "barebox" section Robert P. J. Day
@ 2014-06-30 16:08 ` Sascha Hauer
2014-06-30 16:34 ` Robert P. J. Day
2014-06-30 16:59 ` Robert P. J. Day
0 siblings, 2 replies; 4+ messages in thread
From: Sascha Hauer @ 2014-06-30 16:08 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: U-Boot Version 2 (barebox)
On Mon, Jun 30, 2014 at 10:41:58AM -0400, Robert P. J. Day wrote:
>
> Various grammar/font fixes to that section, including adding an
> additional section describing how to properly do "out of tree"
> configuration and building.
>
> Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Thanks for documenting the out of tree build. I always forget how to do
this. Finally I have a place to look at ;)
BTW buildinf the documentation out of tree is currently broken. This is
because we autogenerate the command files:
@$(srctree)/Documentation/gen_commands.py $(srctree) $(srctree)/Documentation/command
We should generate them in $(objtree), but then we the autogenerated
command files in another place than the rest of the documentation.
sphinx expects a single directory though.
I have no good idea how to solve this, other than copying all doc files
to $(objtree)/Documentation before calling sphinxs-build.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Documentation: User manual, "barebox" section
2014-06-30 16:08 ` Sascha Hauer
@ 2014-06-30 16:34 ` Robert P. J. Day
2014-06-30 16:59 ` Robert P. J. Day
1 sibling, 0 replies; 4+ messages in thread
From: Robert P. J. Day @ 2014-06-30 16:34 UTC (permalink / raw)
To: Sascha Hauer; +Cc: U-Boot Version 2 (barebox)
On Mon, 30 Jun 2014, Sascha Hauer wrote:
> On Mon, Jun 30, 2014 at 10:41:58AM -0400, Robert P. J. Day wrote:
> >
> > Various grammar/font fixes to that section, including adding an
> > additional section describing how to properly do "out of tree"
> > configuration and building.
> >
> > Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
>
> Thanks for documenting the out of tree build. I always forget how to do
> this. Finally I have a place to look at ;)
>
> BTW buildinf the documentation out of tree is currently broken. This is
> because we autogenerate the command files:
>
> @$(srctree)/Documentation/gen_commands.py $(srctree) $(srctree)/Documentation/command
>
> We should generate them in $(objtree), but then we the autogenerated
> command files in another place than the rest of the documentation.
> sphinx expects a single directory though.
>
> I have no good idea how to solve this, other than copying all doc files
> to $(objtree)/Documentation before calling sphinxs-build.
hmmmmmm ... i seem to be able to generate the docs out of tree just
fine. i'll check again and make sure. all i'm doing is setting:
$ export KBUILD_OUTPUT=<dest dir>
and running
$ make docs
and the sphinx-based documentation appears to be created just fine in
that output/build directory. am i misunderstanding something here?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] Documentation: User manual, "barebox" section
2014-06-30 16:08 ` Sascha Hauer
2014-06-30 16:34 ` Robert P. J. Day
@ 2014-06-30 16:59 ` Robert P. J. Day
1 sibling, 0 replies; 4+ messages in thread
From: Robert P. J. Day @ 2014-06-30 16:59 UTC (permalink / raw)
To: Sascha Hauer; +Cc: U-Boot Version 2 (barebox)
On Mon, 30 Jun 2014, Sascha Hauer wrote:
> On Mon, Jun 30, 2014 at 10:41:58AM -0400, Robert P. J. Day wrote:
> >
> > Various grammar/font fixes to that section, including adding an
> > additional section describing how to properly do "out of tree"
> > configuration and building.
> >
> > Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
>
> Thanks for documenting the out of tree build. I always forget how to do
> this. Finally I have a place to look at ;)
>
> BTW buildinf the documentation out of tree is currently broken. This is
> because we autogenerate the command files:
>
> @$(srctree)/Documentation/gen_commands.py $(srctree) $(srctree)/Documentation/command
>
> We should generate them in $(objtree), but then we the autogenerated
> command files in another place than the rest of the documentation.
> sphinx expects a single directory though.
>
> I have no good idea how to solve this, other than copying all doc files
> to $(objtree)/Documentation before calling sphinxs-build.
> Sascha
ah, i see what you mean ... i was running
$ git status -u
to get a list of generated files in the source tree, but didn't notice
that .rst files were set as being ignored, so i can see them now with:
$ git status -u --ignored
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-30 17:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-30 14:41 [PATCH] Documentation: User manual, "barebox" section Robert P. J. Day
2014-06-30 16:08 ` Sascha Hauer
2014-06-30 16:34 ` Robert P. J. Day
2014-06-30 16:59 ` Robert P. J. Day
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.