config
element
and an arbitrary number of dependency
and target
elements.
var
elements.
Configuration variables are supposed to be used in the configure script and are also
written to the resulting config file (in contrast to make variables, which are only
written to the config file).
The name
attribute is mandatory, the value is defined by the text body of the element.
The optional Boolean exec
attribute (false by default) controls, whether the entire
definition is automatically executed under command substitution.
pkg-config
, if present on the system, to determine
compiler and linker flags. The text body of this element defines the package name to search.
To constrain the allowed versions, use the attributes atleast, exact, max
.
If the optional name
attribute is omitted, the dependency is global
and must be satisfied, otherwise configuration shall fail.
A named dependency can be referenced by a target (or is implicitly referenced
by the default target, if no targets are specified).
Multiple declarations for the same named dependency may exist, in which case each declaration
is checked one after another, until one block is satisfied. The result of the first satisfied
dependency declaration is supposed to be applied to the config file.
The optional platform
attribute may specify a single platform identifier and
the optional toolchain
attribute may specify a single toolchain.
The optional not
attribute may specify a comma-separated list of platform and/or
toolchain identifiers.
The configure script shall skip this dependency declaration if the detected platform and toolchain
is not matching the filter specification of these attributes.
exec
flag is set to true
, the contents are supposed to be
executed under command substitution at configuration time before they are applied.
If no build target is declared explicitly, an implicit default
target is generated, which has the alldependencies
flag set.
The optional name
attribute is also used to generate a prefix
for the compiler and linker flags variables.
Furthermore, a target may consist of an arbitrary number of feature
,
option
, and define
elements.
Named dependencies can be listed (separated by comma) in the dependencies
element. If this target shall use all available named dependencies, the empty
element alldependencies
can be used as a shortcut.
dependencies
are satisfied.
If a feature is enabled, all define
and make
definitions are
supposed to be applied to the config file.
In case the optional default
attribute is set to true, the feature is enabled by default
and is supposed to be automatically disabled (without error) when the dependencies are not satisfied.
The name that is supposed to be used for the --enable and --disable arguments can be optionally
specified with the arg
attribute. Otherwise, the name
is used by default.
Optionally, a description for the help text of the resulting configure script can be specified by
adding a desc
element.
arg
attribute.
Then, the children of this element specify possible values
by defining the conditions
(in terms of dependencies) and effects (in terms of defines and make variables) of each value.
Finally, a set of default
s is specified which supposed to automagically select the most
appropriate value for a specific platform under the available dependencies (in case the option is not
explicitly specified by using the command line argument).
str
attribute) and
the conditions (dependencies
) and effects, the value has.
platform
attribute,
the default value can be constrained to a single specific platform and is supposed to be
skipped by configure, when this platform is not detected.