sof/scripts
Marc Herbert ebaa1429f9 xtensa-build-zephyr.py: log ALL "evil" environment differences
This is a typical example of why environment variables are (a sometimes
necessary) evil: imagine you're trying to reproduce exactly the `west
build` command run by xtensa-build-zephyr.py when building with the
`xt-xcc` toolchain. So you would typically look at the logs, feel lucky
that it shows the extra environment variables used and copy them:

```
XTENSA_TOOLCHAIN_PATH=/srv/home/jenkins/xcc/install/tools
TOOLCHAIN_VER=RG-2017.8-linux
XTENSA_SYSTEM=/home/jenkins/xcc/install/builds/RG-2017.8-linux/cavs...
In dir: workspace/sof; running: west build ...
```

Except this won't work because there's one variable currently missing:
`ZEPHYR_TOOLCHAIN_VARIANT`!

Of course there could be more in the future.

Fix this by leveraging the recent os.environ.copy() added by
commit 8aab18351f ("xtensa-build-zephyr: fix DEFAULT_TOOLCHAIN_VARIANT
spill on next platf") compare it to the current os.environ and show the
difference in a totally generic, non-hardcoded way.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-04-12 20:10:33 +03:00
..
cmake platform: remove support for cAVS 1.5 platforms 2023-03-02 11:28:23 +00:00
docker_build platform: remove support for cAVS 1.8 platforms 2023-03-02 23:02:37 +00:00
kconfig license: use spdx identifier in python files 2019-06-02 16:38:17 +01:00
scan platform: remove support for cAVS 1.5 platforms 2023-03-02 11:28:23 +00:00
README.docker platform: remove support for Baytrail and Cherrytrail 2023-02-08 13:36:04 +00:00
build-tools.sh fuzzer: remove old fuzzer 2023-03-15 13:23:42 +00:00
checkpatch.pl cmake: stop sneakily downloading missing submodules at build time 2022-08-31 10:40:04 +01:00
const_structs.checkpatch dai: supply caps and other info from within drivers 2019-05-03 03:14:43 -07:00
docker-qemu.sh license: use spdx identifier in shell scripts 2019-06-02 16:38:17 +01:00
docker-run.sh platform: remove support for Baytrail and Cherrytrail 2023-02-08 13:36:04 +00:00
fuzz.sh scripts/fuzz.sh: add timeout feature and stdout redirection 2023-03-24 16:20:23 +00:00
gen-doc.sh gen-doc.sh: Use getopts for parsing arguments 2020-03-31 15:10:34 +01:00
host-testbench.sh host-testbench.sh: add FullTest variable and set 0 by default 2022-09-07 22:09:33 +01:00
parse_sparse_output.sh sparse: pass platform argument to error filter script 2022-12-12 12:05:26 +00:00
qemu-check.sh platform: remove support for cAVS 2.0 platforms 2023-03-07 14:02:18 +02:00
rebuild-testbench.sh scripts: replace "make" with "cmake --build" 2021-01-18 16:11:46 +00:00
run-mocks.sh scripts/run-mocks.sh: major refactor 2021-07-26 09:19:50 +01:00
sof-post-commit-hook.sh check patch: allow C99 comments 2021-12-06 09:58:32 +00:00
sof-pre-commit-hook.sh license: use spdx identifier in shell scripts 2019-06-02 16:38:17 +01:00
sof-target-install.sh license: use spdx identifier in shell scripts 2019-06-02 16:38:17 +01:00
sof_fw.kb ci: klocwork: add example config file to avoid FPs 2019-02-22 12:16:05 +01:00
spelling.txt sof: add git pre- and post-commit hooks 2018-01-23 21:08:05 +00:00
sudo-cwd.sh scripts/sudo-cwd.sh: don't try to copy missing sudoers.d/ permissions 2023-01-06 14:52:09 +00:00
test-repro-build.sh scripts/test-repro-build.sh: leave only TGL 2022-09-02 18:30:02 +01:00
xtensa-build-all.sh platform: remove support for cAVS 2.0 platforms 2023-03-07 14:02:18 +02:00
xtensa-build-zephyr.py xtensa-build-zephyr.py: log ALL "evil" environment differences 2023-04-12 20:10:33 +03:00

README.docker

The docker container provided in docker_build sets up a build environment for
building Sound Open Firmware. A working docker installation is needed to run
the docker build container.

Note: In order to run docker as non sudo/root user please run.

sudo usermod -aG docker your-user-name

Then logout and login again.

Quick Start:

First, build the docker container. This step needs to be done initially and
when the toolchain or alsa dependencies are updated.

cd scripts/docker_build

./docker-build.sh

After the container is built, it can be used to run the scripts.

To build for tigerlake:
./scripts/docker-run.sh ./scripts/xtensa-build-all.sh -l tgl
or (may need password test0000 for rimage install)
./scripts/docker-run.sh ./scripts/xtensa-build-all.sh tgl

To rebuild the topology and logger:
./scripts/docker-run.sh ./scripts/build-tools.sh

An incremental sof.git build:
./scripts/docker-run.sh make

Or enter a shell:
./scripts/docker-run.sh bash