This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.
Do not exit with status 0 if mkdep(1) cannot create output,
e.g. if .depend is not writable or the FS is readonly mounted.
Store arguments as comments for debugging purpose.
correct for C sources that are compiled by cc, while cpp (/usr/bin/cpp)
is bogus since it invokes /usr/libexec/cpp with different flags.
1.1.5 uses plain cc. This should be equivalent after -M is added, but
cc -M foo.s is completely broken (it invokes the assembler) while
cc -E -M foo.s just does nothing instead of generating a foo.o: foo.s
dependency.
IF $MKDEP_CPP is set, use it as the cpp instead of cc -E. Assembler
sources that are preprocessed using cpp directly should be mkdep'ed
with MKDEP_CPP=cpp. Such sources shouldn't exist but we still have
lots. foo.S should be compiled by cc -traditional (cc will invoke the
preprocessor) and foo.s should be compiled by cc (cc won't invoke the
preprocessor).