Fix depfile parser handling of multiple rules

Currently we handle Makefile rules of the form:

    out: in1 in2 in3

and the form:

    out: in1 \
         in2 \

Teach the depfile parser to handle the additional form:

    out: in1
    out: in2
    out: in3

This is also valid Makefile syntax and is the depfile format
generated by the Intel Compiler for Windows.

Note that the `gcc -MP` option adds empty phony rules to the generated
Makefile fragment:

    out: in1 in2 in3

Previously we tolerated these because they were treated as inputs, which
was accidentally correct.  Instead we must now tolerate these by
ignoring targets for which no dependencies are specified.
3 files changed