135 lines
3.7 KiB
Plaintext
135 lines
3.7 KiB
Plaintext
// -*- mode:doc; -*-
|
|
// vim: set syntax=asciidoc:
|
|
|
|
[[make-tips]]
|
|
=== 'make' tips
|
|
|
|
This is a collection of tips that help you make the most of Buildroot.
|
|
|
|
.Display all commands executed by make:
|
|
|
|
--------------------
|
|
$ make V=1 <target>
|
|
--------------------
|
|
|
|
.Display the list of boards with a defconfig:
|
|
|
|
--------------------
|
|
$ make list-defconfigs
|
|
--------------------
|
|
|
|
.Display all available targets:
|
|
|
|
--------------------
|
|
$ make help
|
|
--------------------
|
|
|
|
Not all targets are always available,
|
|
some settings in the +.config+ file may hide some targets:
|
|
|
|
* +busybox-menuconfig+ only works when +busybox+ is enabled;
|
|
* +linux-menuconfig+ and +linux-savedefconfig+ only work when
|
|
+linux+ is enabled;
|
|
* +uclibc-menuconfig+ is only available when the uClibc C library is
|
|
selected in the internal toolchain backend;
|
|
* +barebox-menuconfig+ and +barebox-savedefconfig+ only work when the
|
|
+barebox+ bootloader is enabled.
|
|
* +uboot-menuconfig+ and +uboot-savedefconfig+ only work when the
|
|
+U-Boot+ bootloader is enabled and the +uboot+ build system is set
|
|
to +Kconfig+.
|
|
|
|
.Cleaning:
|
|
|
|
Explicit cleaning is required when any of the architecture or toolchain
|
|
configuration options are changed.
|
|
|
|
To delete all build products (including build directories, host, staging
|
|
and target trees, the images and the toolchain):
|
|
|
|
--------------------
|
|
$ make clean
|
|
--------------------
|
|
|
|
.Generating the manual:
|
|
|
|
The present manual sources are located in the 'docs/manual' directory.
|
|
To generate the manual:
|
|
|
|
---------------------------------
|
|
$ make manual-clean
|
|
$ make manual
|
|
---------------------------------
|
|
|
|
The manual outputs will be generated in 'output/docs/manual'.
|
|
|
|
.Notes
|
|
- A few tools are required to build the documentation (see:
|
|
xref:requirement-optional[]).
|
|
|
|
.Resetting Buildroot for a new target:
|
|
|
|
To delete all build products as well as the configuration:
|
|
|
|
--------------------
|
|
$ make distclean
|
|
--------------------
|
|
|
|
.Notes
|
|
If +ccache+ is enabled, running +make clean+ or +distclean+ does
|
|
not empty the compiler cache used by Buildroot. To delete it, refer
|
|
to xref:ccache[].
|
|
|
|
.Dumping the internal make variables:
|
|
|
|
One can dump the variables known to make, along with their values:
|
|
|
|
----
|
|
$ make -s printvars VARS='VARIABLE1 VARIABLE2'
|
|
VARIABLE1=value_of_variable
|
|
VARIABLE2=value_of_variable
|
|
----
|
|
|
|
It is possible to tweak the output using some variables:
|
|
|
|
- +VARS+ will limit the listing to variables which names match the
|
|
specified make-patterns - this must be set else nothing is printed
|
|
- +QUOTED_VARS+, if set to +YES+, will single-quote the value
|
|
- +RAW_VARS+, if set to +YES+, will print the unexpanded value
|
|
|
|
For example:
|
|
|
|
----
|
|
$ make -s printvars VARS=BUSYBOX_%DEPENDENCIES
|
|
BUSYBOX_DEPENDENCIES=skeleton toolchain
|
|
BUSYBOX_FINAL_ALL_DEPENDENCIES=skeleton toolchain
|
|
BUSYBOX_FINAL_DEPENDENCIES=skeleton toolchain
|
|
BUSYBOX_FINAL_PATCH_DEPENDENCIES=
|
|
BUSYBOX_RDEPENDENCIES=ncurses util-linux
|
|
----
|
|
|
|
----
|
|
$ make -s printvars VARS=BUSYBOX_%DEPENDENCIES QUOTED_VARS=YES
|
|
BUSYBOX_DEPENDENCIES='skeleton toolchain'
|
|
BUSYBOX_FINAL_ALL_DEPENDENCIES='skeleton toolchain'
|
|
BUSYBOX_FINAL_DEPENDENCIES='skeleton toolchain'
|
|
BUSYBOX_FINAL_PATCH_DEPENDENCIES=''
|
|
BUSYBOX_RDEPENDENCIES='ncurses util-linux'
|
|
----
|
|
|
|
----
|
|
$ make -s printvars VARS=BUSYBOX_%DEPENDENCIES RAW_VARS=YES
|
|
BUSYBOX_DEPENDENCIES=skeleton toolchain
|
|
BUSYBOX_FINAL_ALL_DEPENDENCIES=$(sort $(BUSYBOX_FINAL_DEPENDENCIES) $(BUSYBOX_FINAL_PATCH_DEPENDENCIES))
|
|
BUSYBOX_FINAL_DEPENDENCIES=$(sort $(BUSYBOX_DEPENDENCIES))
|
|
BUSYBOX_FINAL_PATCH_DEPENDENCIES=$(sort $(BUSYBOX_PATCH_DEPENDENCIES))
|
|
BUSYBOX_RDEPENDENCIES=ncurses util-linux
|
|
----
|
|
|
|
The output of quoted variables can be reused in shell scripts, for example:
|
|
|
|
----
|
|
$ eval $(make -s printvars VARS=BUSYBOX_DEPENDENCIES QUOTED_VARS=YES)
|
|
$ echo $BUSYBOX_DEPENDENCIES
|
|
skeleton toolchain
|
|
----
|