Updated build system.
Added recursive Documentation generation
Warning fix
Added template functions for the drivers