mksys is the main Legato build tool. It generates a "system bundle" update pack (.update file) to install and run on a target device.

System bundles are compressed archives containing a collection of apps and access control configuration settings that allow the apps to interact with each other.

The main input for mksys is an system definition (.sdef) file that contains these definitions:

  • apps to deploy to the target device
  • permitted inter-app communication
  • limits, environment variables, and configuration settings to add or override.

mksys will parse the .sdef file, find the .adef or .app files for the apps, build or bundle the apps, generate on-target access control configuration settings, and bundle everything into a system bundle for atomic (all or nothing) installation on the target device.

mksys can also help to validate inter-app dependencies and conflicts, while mkapp can't because it only knows about the one app it's building. For example, certain typos in binding values won't be detected by mkapp and can cause your app to hang at start-up. mksys can catch these errors at build time.

To display usage help, run

$ mksys --help

See Definition Files for information on specifying what mksys should build.

See Tool Chain Configuration for information on how mksys decides what compilers, etc. to use.