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 \
         in3

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
    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