to be able to understand which packages are the longest to build, to
see if anything can be done to speed up the build. In order to help
such build time analysis, Buildroot collects the build time of each
-step of each package, and allows to generate graphs from these data.
+step of each package, and allows to generate graphs from this data.
To generate the build time graph after a build, run:
This will generate a set of files in +output/graphs+ :
-* +build.hist-build.pdf+, an histogram of the build time for each
+* +build.hist-build.pdf+, a histogram of the build time for each
package, ordered in the build order.
-* +build.hist-duration.pdf+, an histogram of the build time for each
+* +build.hist-duration.pdf+, a histogram of the build time for each
package, ordered by duration (longest first)
-* +build.hist-name.pdf+, an histogram of the build time for each
+* +build.hist-name.pdf+, a histogram of the build time for each
package, order by package name.
* +build.pie-packages.pdf+, a pie chart of the build time per package
* When a change to the root filesystem skeleton is made, a full
rebuild is needed. However, when changes to the root filesystem
- overlay, to a post-build script or a post-image script are made,
+ overlay, a post-build script or a post-image script are made,
there is no need for a full rebuild: a simple +make+ invocation
will take the changes into account.
package from its compilation step, you can run +make
<package>-rebuild+, followed by +make+ or +make <package>+. It will
restart the compilation and installation of the package, but not from
-scratch: it basically simply re-executes +make+ and +make install+
+scratch: it basically re-executes +make+ and +make install+
inside the package, so it will only rebuild files that changed.
If you want to restart the build process of a package from its
with Buildroot.
Making changes directly in +output/build/<package>-<version>+ is not
-appropriate solution, because this directory is removed on +make
+an appropriate solution, because this directory is removed on +make
clean+.
Therefore, Buildroot provides a specific mechanism for this use case: