]> git.ipfire.org Git - thirdparty/make.git/commit
[SV 102] Don't show unnecessary include file errors.
authorPaul Smith <psmith@gnu.org>
Sat, 9 Apr 2016 23:49:27 +0000 (19:49 -0400)
committerPaul Smith <psmith@gnu.org>
Sun, 10 Apr 2016 00:06:46 +0000 (20:06 -0400)
commit87a5f98d248fe63fe6e3e53ee3e1b1b1fa5e49dc
treee97a49d65b0cf7901eb6b551a7d5085353e6f04a
parent53554e41e8ab9ba4d70787881d0a57b94eda1c63
[SV 102] Don't show unnecessary include file errors.

Delay the generation of error messages for included files until we
are sure that we can't rebuild that included file.
* dep.h (struct dep): Don't reuse "changed"; make a separate field
to keep "flags".  Get rid of dontcare and use the flag.
(struct goaldep): Create a new structure for goal prereqs
that tracks an errno value and the floc where the include happened.
Rework the structures to ensure they are supersets as expected.
In maintainer mode with GCC, use inline to get type checking.
* read.c (eval_makefile): Return a struct goaldep for the new
makefile.  Ensure errno is set properly to denote a failure.
(read_all_makefiles): Switch to goaldep and check errno.
(eval): Don't show included file errors; instead remember them.
* remake.c (update_goal_chain): Set global variables to the current
goaldep we're building, and the entire chain.
(show_goal_error): Check if the current failure is a consequence
of building an included makefile and if so print an error.
(complain): Call show_goal_error() on rule failure.
* job.c (child_error): Call show_goal_error() on child error.
* main.c (main): Switch from struct dep to goaldep.
* misc.c (free_dep_chain): Not used; make into a macro.
* tests/scripts/features/include: Update and include new tests.
* tests/scripts/options/dash-B, tests/scripts/options/dash-W,
tests/scripts/options/print-directory,
tests/scripts/variables/MAKE_RESTARTS: Update known-good-output.
dep.h
job.c
main.c
misc.c
read.c
remake.c
tests/scripts/features/include
tests/scripts/options/dash-B
tests/scripts/options/dash-W
tests/scripts/options/print-directory
tests/scripts/variables/MAKE_RESTARTS