Makefile: Stop building on ggo errors.
authorAndre Noll <maan@systemlinux.org>
Mon, 28 Feb 2011 10:32:16 +0000 (11:32 +0100)
committerAndre Noll <maan@systemlinux.org>
Mon, 28 Feb 2011 10:32:16 +0000 (11:32 +0100)
commit002115fc06853f219215319b3c7769ba6881a0b4
tree7dbdf5e8026f93d7881f3e276e0bab62c6fd4bc4
parentdd98d31d017bbbe16bf6711e0343b267dd6cfe89
Makefile: Stop building on ggo errors.

The dependency files *.d are implicitly made by -include command
during make's first pass. The "-" prefix instructs make to ignore any
non-existing files *and* all errors resulting from executing the rules
for the *.d targets . This prefix is necessary to avoid the warning
messages about non-existing dependency files, for example after a
"make clean2".

This implies that make proceeds even if a dependency file could not
be created due to a syntax error in a .ggo file. We'd like to stop
if this happens, but unfortunately gnu make does not have an option
for specifying this behaviour in an include command.

This patch works around this shortcoming by letting the "all"
target depend on the new phony target "dep" which depends on all .d
files. This way all *.d targets are considered twice: Once during the
first pass (where errors are ignored) and again due to the all->dep
dependency.

If no errors occur, "make dep" is a no-op, so this change should not
slow down the build noticeably. A slight drawback of this solution
is that, in case of an error in a ggo file, the error will be printed
twice. But this it is still better than silently ignoring the error.
Makefile.in