Legato definition files are used as input to the Build tools mksys
, mkapp
, mkcomp
, and mkexe
(known collectively as the mk tools). The definition files, together with Interface Definition Language, make it easier to develop component-based software, automatically generating a lot of boiler-plate code.
Interfaces are defined using .api
files. Implementations of those interfaces are constructed as reusable components. Components can be combined into apps. Apps can be installed and run on target devices and integrated into systems of inter-communicating applications deployed together to target devices in a single step.
All def files use a Common File Format.
Application definition .adef files are used to specify the external interfaces and internal content of applications that can be built, installed, and run on target devices.
.adef
files can also be used to override some settings of components without having to change those components themselves, thereby making the components more reusable.
Each application has a .adef
file that describes:
Component definition .cdef files are used to specify the external interfaces and internal content of reusable software components.
Each component has a single Component.cdef
file that defines:
System definition .sdef files are used to interconnect applications with each other and with the target's runtime environment (e.g., hardware devices).
.sdef files can also override some app settings.
An .sdef
file defines a system of one or more applications that can be deployed to target devices in the field. Each .sdef
file lists:
Two are used:
The default search path ā.ā is the current working directory where the build tool ran.
Search paths can be changed through mk tools command-line options:
Settings in a .sdef
file override settings from both the .adef
and Component.cdef
, while the .adef
overrides settings in the Component.cdef
. This increases reusability by allowing an integrator to override a component's or app's settings without having to change that component or app.
Most configuration settings can be overridden on the target device at runtime (although, some won't take effect until the app is restarted).
Although it's better for apps to be sandboxed, apps aren't limited to running inside a sandbox. We call these unsandboxed apps.
Even though unsanboxed apps aren't constrained the same way sandboxed apps are constrained, the Supervisor will still enforce CPU Share and Max File Bytes limits.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.