A task based, dependency aware build system