Fix a bug with #1954. If generating the .o failed due to a non-existent dependency, the .d file wasn't regenerated (e.g. for some #include "foo.h", if the build failed because foo.h didn't exist then removing the #include wouldn't allow the build to proceed)
Clarify the error message when a dependency file doesn't exist by allowing scaninc to ignore it (example below)
Silence some warnings when a .d file doesn't exist yet
Silence some warnings for -Wunqualified-std-cast-call
Explicitly default KEEP_TEMPS to 0
Example -- given #include "foo.h" in parent.c where foo.h doesn't exist...
before:
make: *** No rule to make target `src/foo.h', needed by `build/emerald/src/parent.o'. Stop.
after:
src/parent.c:<line_num>:<col_num>: fatal error: foo.h: No such file or directory
<line_num> | #include "foo.h"
.o
failed due to a non-existent dependency, the.d
file wasn't regenerated (e.g. for some#include "foo.h"
, if the build failed becausefoo.h
didn't exist then removing the#include
wouldn't allow the build to proceed).d
file doesn't exist yet-Wunqualified-std-cast-call
KEEP_TEMPS
to0
Example -- given
#include "foo.h"
inparent.c
wherefoo.h
doesn't exist... before:after: