Commit Graph

10 Commits

Author SHA1 Message Date
Marc Herbert 21f4e74dd7 installer: fix incremental builds
Building "sof" does not rebuild the .ri firmware file. Switch to the
"bin" target which is what ./scripts/xtensa-build-all.sh builds.

Fixes: 479809663e ("installer: (re)build firmware, topologies and user
space tools)

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-11 16:52:29 +00:00
Marc Herbert b809caeb5d installer: --no-print-directory
Gets the length of a no-op "make topologies" from 380 down to 140
lines. From 300 to 200 for one "make signed" platform.

Ninja is more quiet by default.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-11 16:52:29 +00:00
Marc Herbert 1371d479ab installer: add tgl-h
add tgl-h

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-09 19:55:45 +00:00
Marc Herbert 969f370a36 installer: add missing mkdir staging/* dep. for symlinks
Fixes:

 rm -rf staging ; make aliases
 ln: failed to create symbolic link 'staging/sof/sof-glk.ri': No such
 file or directory

This also happens on a brand new checkout when building in parallel with
make -j because symbolic links don't have any dependency. Example at:

  https://github.com/marc-hb/sof/runs/2036288013

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-08 12:06:31 +00:00
Marc Herbert 907f8691c2 installer: TOOLCHAIN default value depends on XTENSA_TOOLS_ROOT
XTENSA_TOOLS_ROOT is required by xtensa-build-all.sh anyway, so don't
force the user to say twice that they want xcc.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-05 11:42:36 +00:00
Marc Herbert 25fc45143b installer: disable incremental builds with XCC due to $XTENSA_SYSTEM
In the future we should probably extract the array of XTENSA_SYSTEM
values out of xtensa-build-all.sh

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-03-04 22:07:48 +00:00
Marc Herbert 5dea5aead9 installer: add checktree target
Simple check of the "tree" output

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert 479809663e installer: (re)build firmware, topologies and user space tools
One-touch "make -C installer rsync" combines fast incremental build,
staging and deploy in one command.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert f9545c8f59 installer: new BUILD_TOOLS directory
The tools build is independent from the firmware build. The next step is
to invoke it from here if needed.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-26 16:17:41 +00:00
Marc Herbert c6edc5f51e New install/GNUmakefile to gradually replace scripts in sof-bin.git
More specifically replacing sof-bin/go.sh and sof-bin/publish.sh and
also sof/scripts/sof-target-install.sh eventually.

"make install" code has always belonged to source repositories because
developers need to install too and we want everyone to use the same
installers. It's also easier to have all the information in a single
place.

Once the layout in sof-bin mirrors the /lib/firmware/intel layout
exactly, sof-bin does not need any installation code any more.

Mixing source and binaries in the same repo is also a "code smell",
notably because it forces branching them together.

Using a higher level build tool for installation instead of plain
scripts has a few benefits:

- Multiple entry points: easy to invoke (and test) any part of the
  installer individually
- ... while invoking dependencies automatically.
- Other features "for free" like:
  - errexit
  - error messages like "dunno how to build file x"
  - commands are logged by default

- Also gets rid of most of the large code duplication in go.sh and
  publish.sh, so:
  - Enabling or disabling a platform is a 3-character change
  - Allows platform selection in local config file (even just one platform)
  - Much harder to add inconsistencies
  - Much easier to review correctness, for instance no need to
    scrutinize every line to see which platforms are aliased.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-02-16 11:23:28 +00:00