|
@@ -3,6 +3,8 @@
|
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
|
#
|
|
|
|
|
|
+(Please read 'How to change from MAKEALL' if you are used to that tool)
|
|
|
+
|
|
|
What is this?
|
|
|
=============
|
|
|
|
|
@@ -663,6 +665,96 @@ Other options
|
|
|
Buildman has various other command line options. Try --help to see them.
|
|
|
|
|
|
|
|
|
+How to change from MAKEALL
|
|
|
+==========================
|
|
|
+
|
|
|
+Buildman includes most of the features of MAKEALL and is generally faster
|
|
|
+and easier to use. In particular it builds entire branches: if a particular
|
|
|
+commit introduces an error in a particular board, buildman can easily show
|
|
|
+you this, even if a later commit fixes that error.
|
|
|
+
|
|
|
+The reasons to deprecate MAKEALL are:
|
|
|
+- We don't want to maintain two build systems
|
|
|
+- Buildman is typically faster
|
|
|
+- Buildman has a lot more features
|
|
|
+
|
|
|
+But still, many people will be sad to lose MAKEALL. If you are used to
|
|
|
+MAKEALL, here are a few pointers.
|
|
|
+
|
|
|
+First you need to set up your tool chains - see the 'Setting up' section
|
|
|
+for details. Once you have your required toolchain(s) detected then you are
|
|
|
+ready to go.
|
|
|
+
|
|
|
+Buildman works on entire branches, so the normal use is:
|
|
|
+
|
|
|
+ ./tools/buildman/buildman -b <branch_name> <list of things to build>
|
|
|
+
|
|
|
+followed by (afterwards, or perhaps concurrently in another terminal):
|
|
|
+
|
|
|
+ ./tools/buildman/buildman -b <branch_name> -s <list of things to build>
|
|
|
+
|
|
|
+to see the results of the build. Rather than showing you all the output,
|
|
|
+buildman just shows a summary, with red indicating that a commit introduced
|
|
|
+an error and green indicating that a commit fixed an error. Use the -e
|
|
|
+flag to see the full errors.
|
|
|
+
|
|
|
+You don't need to stick around on that branch while buildman is running. It
|
|
|
+checks out its own copy of the source code, so you can change branches,
|
|
|
+add commits, etc. without affecting the build in progress.
|
|
|
+
|
|
|
+The <list of things to build> can include board names, architectures or the
|
|
|
+like. There are no flags to disambiguate since ambiguities are rare. Using
|
|
|
+the examples from MAKEALL:
|
|
|
+
|
|
|
+Examples:
|
|
|
+ - build all Power Architecture boards:
|
|
|
+ MAKEALL -a powerpc
|
|
|
+ MAKEALL --arch powerpc
|
|
|
+ MAKEALL powerpc
|
|
|
+ ** buildman -b <branch> powerpc
|
|
|
+ - build all PowerPC boards manufactured by vendor "esd":
|
|
|
+ MAKEALL -a powerpc -v esd
|
|
|
+ ** buildman -b <branch> esd
|
|
|
+ - build all PowerPC boards manufactured either by "keymile" or "siemens":
|
|
|
+ MAKEALL -a powerpc -v keymile -v siemens
|
|
|
+ ** buildman -b <branch> keymile siemens
|
|
|
+ - build all Freescale boards with MPC83xx CPUs, plus all 4xx boards:
|
|
|
+ MAKEALL -c mpc83xx -v freescale 4xx
|
|
|
+ ** buildman -b <branch> mpc83xx freescale 4xx
|
|
|
+
|
|
|
+Buildman automatically tries to use all the CPUs in your machine. If you
|
|
|
+are building a lot of boards it will use one thread for every CPU core
|
|
|
+it detects in your machine. This is like MAKEALL's BUILD_NBUILDS option.
|
|
|
+You can use the -T flag to change the number of threads. If you are only
|
|
|
+building a few boards, buildman will automatically run make with the -j
|
|
|
+flag to increase the number of concurrent make tasks. It isn't normally
|
|
|
+that helpful to fiddle with this option, but if you use the BUILD_NCPUS
|
|
|
+option in MAKEALL then -j is the equivalent in buildman.
|
|
|
+
|
|
|
+Buildman puts its output in ../<branch_name> by default but you can change
|
|
|
+this with the -o option. Buildman normally does out-of-tree builds: use -i
|
|
|
+to disable that if you really want to. But be careful that once you have
|
|
|
+used -i you pollute buildman's copies of the source tree, and you will need
|
|
|
+to remove the build directory (normally ../<branch_name>) to run buildman
|
|
|
+in normal mode (without -i).
|
|
|
+
|
|
|
+Buildman doesn't keep the output result normally, but use the -k option to
|
|
|
+do this.
|
|
|
+
|
|
|
+Please read 'Theory of Operation' a few times as it will make a lot of
|
|
|
+things clearer.
|
|
|
+
|
|
|
+Some options you might like are:
|
|
|
+
|
|
|
+ -B shows which functions are growing/shrinking in which commit - great
|
|
|
+ for finding code bloat.
|
|
|
+ -S shows image sizes for each commit (just an overall summary)
|
|
|
+ -u shows boards that you haven't built yet
|
|
|
+ --step 0 will build just the upstream commit and the last commit of your
|
|
|
+ branch. This is often a quick sanity check that your branch doesn't
|
|
|
+ break anything. But note this does not check bisectability!
|
|
|
+
|
|
|
+
|
|
|
TODO
|
|
|
====
|
|
|
|