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