auto-detection of source files
auto-detection of output file dependencies
auto-generation of makefiles and build rules
project-oriented configuration files isolate the build
environment from an individual's shell
a Single Makefile design avoids pitfalls of recursive
make
plug-able 'XMExtensions' support arbitrary source to
output filename suffix mapping
a set of pre-defined macros, component makefiles and
makefile naming conventions support extendability
variable naming conventions allow use of core makefiles
together with custom makefiles without risk of
side-effects when included in the same namespace
peacefully coexists with Gnu Make, avoiding name
collisions with Gnu makefiles, command line options and
environmental variables
target files can be shared between projects and
recursively built, in the correct order, when
dependencies are unkown, thereby avoiding the dangers of
incomplete Directed Acyclic Graph (DAG) of dependency
relationships
debugging features include PHP 'lint' checking and
custom error handling