Having a direct dependency
Makefile: $(GENERATED_HEADERS)
can result in not-from-clean builds failing sometimes, because it means
that when Make does its "is any makefile or include out of date and
needing a rebuild?" check, as well as possibly running configure (to
update config-host.mak) it will also rebuild GENERATED_HEADERS under
the "old" config-host.mak regime. If the makefile rules for rebuilding
the generated headers have changed in a way that means they're not
compatible with the old config-host.mak variable names, the build will
fail. Even if it does work, it's wasted effort since we'll need to
rebuild them with the right config-host.mak settings immediately.
Instead, make the generated headers depend on config-host.mak
and config-target.mak. This means we'll definitely rebuild them
if the configuration changes, but it will be done after Make
reloads its makefiles and includes so will happen with the
correct set of config-host.mak settings.
We rely on the various .o files having correct autogenerated
dependency rules to cause the generated headers to be generated
as and when they are needed.