1The GNUmakefile in this directory prepares ``/lib/firmware/intel/sof/`` and 2``/lib/firmware/intel/sof-tplg/`` directories. 3 4It extracts what's needed from the output of the scripts 5``./scripts/xtensa-build-all.sh`` and ``./scripts/build-tools.sh -T 6-l``. It automatically runs these scripts when needed for the platforms 7listed in config.mk and performs incremental builds when they have 8already been run. 9 10It does not copy anything to ``/lib/firmware/`` directly but to local, 11"staging" subdirectory first. The staging area can then be installed with 12rsync to a local or remote ``/lib/firmware/intel/`` or to a release 13location. This gives an opportunity to inspect the staging area and 14avoids running everything as root. 15 16The default target (re-)generates the staging area: 17 18 make -C installer/ 19 20Then, to install the staging area: 21 22 sudo make -C installer/ rsync 23 24By default, the "rsync" target installs to the local 25``/lib/firmware/intel/`` directory. To install to a different host or 26different directory, copy the ``sample-config.mk`` file to ``config.mk`` 27and follow the instructions inside the file. ``config.mk`` can also be 28used to change the list of platforms installed and a number of other 29Make variables. As usual with Make, many parameters can also be 30overridden on the command line. 31 32To stage and install in one go: 33 34 make -C installer/ stage rsync 35 36"stage" is the default target and it tries to stage everything: 37firmware, dictionaries and topologies. As usual with Make, it's possible 38to invoke individual targets. Find a list of targets at the top of 39GNUMakefile. 40 41You can use `make -jN stage` to build multiple platforms faster but do 42*not* `make -jN stage rsync` as this will start deploying before the 43builds are all complete. That's because we want the rsync target to be 44able to deploy subsets. Instead do: `make -jN somethings && make rsync`. 45 46Sample output: 47 48 staging/sof: symbolic link to sof-v1.6.1 49 staging/sof-v1.6.1/ 50 ├── community/ 51 │ ├── sof-tgl.ri 52 │ ├── sof-cnl.ri 53 │ ├── sof-icl.ri 54 │ ├── sof-jsl.ri 55 │ ├── sof-apl.ri 56 │ ├── sof-cfl.ri -> sof-cnl.ri 57 │ ├── sof-cml.ri -> sof-cnl.ri 58 │ ├── sof-ehl.ri -> sof-tgl.ri 59 │ └── sof-glk.ri -> sof-apl.ri 60 ├── intel-signed/ 61 ├── sof-bdw.ri 62 ├── sof-cht.ri 63 ├── sof-byt.ri 64 ├── sof-cnl.ldc 65 ├── sof-tgl.ldc 66 ├── sof-icl.ldc 67 ├── sof-jsl.ldc 68 ├── sof-apl.ldc 69 ├── sof-bdw.ldc 70 ├── sof-byt.ldc 71 ├── sof-cht.ldc 72 ├── sof-apl.ri -> intel-signed/sof-apl.ri 73 ├── sof-cfl.ri -> intel-signed/sof-cfl.ri 74 ├── sof-cml.ri -> intel-signed/sof-cml.ri 75 ├── sof-cnl.ri -> intel-signed/sof-cnl.ri 76 ├── sof-ehl.ri -> intel-signed/sof-ehl.ri 77 ├── sof-glk.ri -> intel-signed/sof-glk.ri 78 ├── sof-icl.ri -> intel-signed/sof-icl.ri 79 ├── sof-jsl.ri -> intel-signed/sof-jsl.ri 80 ├── sof-tgl.ri -> intel-signed/sof-tgl.ri 81 ├── sof-cfl.ldc -> sof-cnl.ldc 82 ├── sof-cml.ldc -> sof-cnl.ldc 83 ├── sof-ehl.ldc -> sof-tgl.ldc 84 └── sof-glk.ldc -> sof-apl.ldc 85 86