mirror of
https://github.com/apache/nuttx.git
synced 2026-05-18 00:34:10 +08:00
53fdfa68b9
All of the tools listed on the original documentation are now given their own individual doc pages. This makes it much easier to cross-reference them from other documentation locations (as many are used in CI/for specific architectures) and it also makes it easier for users to digest the information. Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
123 lines
4.7 KiB
ReStructuredText
123 lines
4.7 KiB
ReStructuredText
==============
|
|
``refresh.sh``
|
|
==============
|
|
|
|
.. note::
|
|
|
|
This script with ``--silent`` is really obsolete. The silent option really
|
|
adds default values. However, as of 217-07-09, defconfig files are retained
|
|
in a compressed format, i.e., with default values removed. So the
|
|
``--silent`` option will accomplish nothing. Without ``--silent``, you will
|
|
have the opportunity over override the default value from the command line
|
|
and, in that case, the script may still have some minimal value.
|
|
|
|
This is a bash script that automates refreshing of board default configuration
|
|
(defconfig) files. It does not do anything special that you cannot do manually,
|
|
but is useful for updating dozens of configuration files. It is also used in the
|
|
NuttX CI process.
|
|
|
|
Configuration files have to be updated because over time, the configuration
|
|
settings change; new configurations are added and new dependencies are added.
|
|
So an old configuration file may not be usable anymore until it is refreshed.
|
|
|
|
Help is also available:
|
|
|
|
.. code:: console
|
|
|
|
$ tools/refresh.sh --help
|
|
tools/refresh.sh is a tool for refreshing board configurations
|
|
|
|
USAGE: tools/refresh.sh [options] <board>:<config>+
|
|
|
|
Where [options] include:
|
|
--debug
|
|
Enable script debug
|
|
--silent
|
|
Update board configuration without interaction. Implies --defaults.
|
|
Assumes no prompt for save. Use --silent --prompt to prompt before saving.
|
|
--prompt
|
|
Prompt before updating and overwriting the defconfig file. Default is to
|
|
prompt unless --silent
|
|
--defaults
|
|
Do not prompt for new default selections; accept all recommended default values
|
|
--nocopy
|
|
Do not copy defconfig from nuttx/boards/<board>/configs to nuttx/.config
|
|
--help
|
|
Show this help message and exit
|
|
<board>
|
|
The board directory under nuttx/boards/arch/chip/
|
|
<config>
|
|
The board configuration directory under nuttx/boards/arch/chip/<board>/configs
|
|
<archname>
|
|
The architecture directory under nuttx/boards/
|
|
<chipname>
|
|
The chip family directory under nuttx/boards/<arch>/
|
|
|
|
Note1: all configurations are refreshed if <board>:<config> is replaced with "all" keyword
|
|
Note2: all configurations of arch XYZ are refreshed if "arch:<namearch>" is passed
|
|
Note3: all configurations of chip XYZ are refreshed if "chip:<chipname>" is passed
|
|
Note4: all configurations of board XYZ are refreshed if "board:<boardname>" is passed
|
|
|
|
The steps to refresh the file taken by ``refresh.sh`` are:
|
|
|
|
1. Make ``tools/cmpconfig`` if it is not already built.
|
|
|
|
2. Copy the defconfig file to the top-level NuttX directory as ``.config``
|
|
(being careful to save any previous ``.config`` file that you might want to
|
|
keep!).
|
|
|
|
3. Execute ``make` oldconfig` to update the configuration. ``make oldconfig``
|
|
will prompt you for each change in the configuration that requires that you
|
|
make some decision. With the ``--silent`` option, the script will use ``make
|
|
oldefconfig`` instead and you won't have to answer any questions; the refresh
|
|
will simply accept the default value for any new configuration settings.
|
|
|
|
4. Then it runs ``tools/cmpconfig`` to show the real differences between the
|
|
configuration files. Configuration files are complex and things can move
|
|
around so a simple 'diff' between two configuration files is often not
|
|
useful. But tools/cmpconfig will show only the meaningful differences
|
|
between the two configuration files.
|
|
|
|
5. It will edit the .config file to comment out the setting of the
|
|
``CONFIG_APPS_DIR=`` setting. This setting should not be in checked-in
|
|
defconfig files because the actually must be determined at the next time that
|
|
the configuration is installed.
|
|
|
|
6. Finally, the refreshed defconfig file is copied back in place where it can be
|
|
committed with the next set of difference to the command line. If you select
|
|
the ``--silent`` option, this file copy will occur automatically. Otherwise,
|
|
refresh.sh will prompt you first to avoid overwriting the defconfig file with
|
|
changes that you may not want.
|
|
|
|
Usage examples:
|
|
|
|
Update all boards without verbose output:
|
|
|
|
.. code:: console
|
|
|
|
$ ./tools/refresh.sh --silent --defaults all
|
|
|
|
Update all boards and configs from `arm` architecture:
|
|
|
|
.. code:: console
|
|
|
|
$ ./tools/refresh.sh --silent arch:arm
|
|
|
|
Update all boards from ``stm32f7`` chip family:
|
|
|
|
.. code:: console
|
|
|
|
$ ./tools/refresh.sh --silent chip:stm32f7
|
|
|
|
Update all configs from ``stm32f103-minimum`` board:
|
|
|
|
.. code:: console
|
|
|
|
$ ./tools/refresh.sh --silent board:stm32f103-minimum
|
|
|
|
Update only the `.nsh.` config from stm32f103-minimum board:
|
|
|
|
.. code:: console
|
|
|
|
$ ./tools/refresh.sh --silent stm32f103-minimum:nsh
|