When abuild starts up, it decides that it is running in an output directory if all of the following conditions hold:
The current directory does not contain an
Abuild.conf
file
The parent directory does contain an
Abuild.conf
file
The current directory name starts with abuild-
The current directory contains a file called
.abuild
If abuild is invoked in an output directory, it determines the
current platform from the name of the output directory (which is
always called
abuild-
)
and the current build item from the
platform
Abuild.conf
in the parent directory. Then
it will run a build only for that specific platform on that
specific build item. In this mode, abuild explicitly prohibits
specification of a build set or clean set and does not build
dependencies, as if --no-deps
were specified.
In this mode, the clean target recursively
removes all files only in the current output directory (except
that it leaves the empty .abuild
file
behind). The main use for this feature would be in testing rules,
but it could also be useful in helping to track down some
hard-to-trace build problem that applies to only one of several
platforms that are being built for a specific build item. Most
users will never use this functionality.