Allow a subset of boards to be built with the "buildall" target.
Allow a subset of boards to be built with the "buildall" target.

In order to reduce build times during development, this change allows an
engineer to build a subset of all boards, writing the results for each
board into the ".failedboards" directory.

The expectation is that, while working on code that affects multiple
boards, the engineer will invoke "make build_boards BOARDS=<board-list>"
periodically to confirm that all affected boards still build.

Before pushing any code for review, however, the engineer is still expected
to run "make buildall" to ensure all boards still build and tests pass.

* Define a new make variable, BOARDS, whose default value is $(boards).
  This variable can be overridden on the make command line or via the
  environment. Its value must be non-empty.

* Use the BOARDS make variable to control which boards will be built by the
  new "build_boards" and "try_build_boards" targets.

* Refactor the "buildall" target so that it depends on "build_boards". This
  indirectly allows the boards built to be controlled via the BOARDS make
  variable.

* Here are some make command lines that were used to test the behavior of
  the change:
    make -j buildall  # Builds all boards, runs tests.
    make -j build_boards  # Builds all boards, doesn't run tests.
    make -j build_boards BOARDS="cr50 reef"  # Builds cr50 and reef boards
    make -j build_boards BOARDS=  # Fails due to empty BOARDS.

BUG=none
BRANCH=none
TEST=make -j buildall

Change-Id: I833277842e5e20d86eaa90df6457264a2f86a3fa
Reviewed-on: https://chromium-review.googlesource.com/420110
Commit-Ready: Carl Hamilton <32ebda5be60bff17e355b43d7795cb4f4fd6ece9@chromium.org>
Tested-by: Carl Hamilton <32ebda5be60bff17e355b43d7795cb4f4fd6ece9@chromium.org>
Reviewed-by: Randall Spangler <62698fdbb84d1779579ee80c3f39fac22017e5bc@chromium.org>
Reviewed-by: Martin Roth <79230511ccf79da3f7e9e82dbcc9c1ec2f734fa0@chromium.org>

coreboot/chrome-ec,coreboot/chrome-ec,coreboot/chrome-ec,coreboot/chrome-ec,coreboot/chrome-ec,coreboot/chrome-ec