Another (IMO pretty important) thing the build system needs: easy configurability. Users should be able to select stuff like --with-pam/--without-pam easily (without editing Makefiles or the likes), and where possible this stuff should be autodetected while keeping it overridable...