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
platformAbuild.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.