[U-Boot] [PATCH v5 12/15] buildman: adjust for Kconfig

Masahiro Yamada yamada.m at jp.panasonic.com
Sun Jul 27 11:29:48 CEST 2014


Hi Simon,


On Sat, 26 Jul 2014 09:44:06 +0100
Simon Glass <sjg at chromium.org> wrote:

> Hi Masahiro,
> 
> On 24 July 2014 05:00, Masahiro Yamada <yamada.m at jp.panasonic.com> wrote:
> > Use "make <board>_defconfig" instead of "make <board>_config".
> >
> > Invoke tools/genboardscfg.py to generate boards.cfg when it is missing.
> >
> > Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
> 
> Acked-by: Simon Glass <sjg at chromium.org>
> 
> (see comment below)
> 
> > ---
> >
> > Changes in v5: None
> > Changes in v4:
> >   - Generate boards.cfg automatically if it is missing
> >
> > Changes in v3: None
> > Changes in v2: None
> >
> >  tools/buildman/board.py   |  2 +-
> >  tools/buildman/builder.py |  6 +++---
> >  tools/buildman/control.py | 10 ++++++++++
> >  3 files changed, 14 insertions(+), 4 deletions(-)
> >
> > diff --git a/tools/buildman/board.py b/tools/buildman/board.py
> > index 5172a47..7bcc932 100644
> > --- a/tools/buildman/board.py
> > +++ b/tools/buildman/board.py
> > @@ -17,7 +17,7 @@ class Board:
> >              soc: Name of SOC, or '' if none (e.g. mx31)
> >              vendor: Name of vendor (e.g. armltd)
> >              board_name: Name of board (e.g. integrator)
> > -            target: Target name (use make <target>_config to configure)
> > +            target: Target name (use make <target>_defconfig to configure)
> >              options: board-specific options (e.g. integratorcp:CM1136)
> >          """
> >          self.target = target
> > diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
> > index 4987fc9..502a35a 100644
> > --- a/tools/buildman/builder.py
> > +++ b/tools/buildman/builder.py
> > @@ -198,7 +198,7 @@ class BuilderThread(threading.Thread):
> >              commit_upto: Commit number to build (0...n-1)
> >              brd: Board object to build
> >              work_dir: Directory to which the source will be checked out
> > -            do_config: True to run a make <board>_config on the source
> > +            do_config: True to run a make <board>_defconfig on the source
> >              force_build: Force a build even if one was previously done
> >
> >          Returns:
> > @@ -251,7 +251,7 @@ class BuilderThread(threading.Thread):
> >                  args = ['O=build', '-s']
> >                  if self.builder.num_jobs is not None:
> >                      args.extend(['-j', str(self.builder.num_jobs)])
> > -                config_args = ['%s_config' % brd.target]
> > +                config_args = ['%s_defconfig' % brd.target]
> >                  config_out = ''
> >                  args.extend(self.builder.toolchains.GetMakeArguments(brd))
> >
> > @@ -404,7 +404,7 @@ class BuilderThread(threading.Thread):
> >          work_dir = self.builder.GetThreadDir(self.thread_num)
> >          self.toolchain = None
> >          if job.commits:
> > -            # Run 'make board_config' on the first commit
> > +            # Run 'make board_defconfig' on the first commit
> >              do_config = True
> >              commit_upto  = 0
> >              force_build = False
> > diff --git a/tools/buildman/control.py b/tools/buildman/control.py
> > index fd6f197..d032a95 100644
> > --- a/tools/buildman/control.py
> > +++ b/tools/buildman/control.py
> > @@ -15,6 +15,7 @@ import patchstream
> >  import terminal
> >  import toolchain
> >  import command
> > +import subprocess
> >
> >  def GetPlural(count):
> >      """Returns a plural 's' if count is not 1"""
> > @@ -109,6 +110,15 @@ def DoBuildman(options, args):
> >          sys.exit(1)
> >
> >      # Work out what subset of the boards we are building
> > +    board_file = os.path.join(options.git, 'boards.cfg')
> > +    if not os.path.exists(board_file):
> > +        print 'Could not find %s' % board_file
> > +        status = subprocess.call([os.path.join(options.git,
> > +                                               'tools/genboardscfg.py')])
> > +        if status != 0:
> > +            print >> sys.stderr, "Failed to generate boards.cfg"
> > +            sys.exit(1)
> > +
> 
> This could go in board.py but since this is temporary code anyway I
> think it is OK to leave it here.

I leave this item to you. Anyway I do not mind it.


> Changing he Boards class to read from various directories should not
> be too hard. Will we have to run 'make xxx_defconfig' to get access to
> all the values for a board? If we could avoid that then it would be
> quite a bit faster.

Yup.
This is our next TODO item.

If we could know where CPU, Vendor, Board, etc. are defined,
it would be possible to replace it by the grep approach.

I was not sure what is (is not) requirement for buildman,
so I chose to keep the boards.cfg feature as is.



Best Regards
Masahiro Yamada



More information about the U-Boot mailing list