Sorry, but Linus' mkdep _does_ skip stuff.
Assume that a1.c and a2.c both include b.h which in turn includes c.h.
GCC -M output would be
a1.o: a1.c b.h c.h
a2.o: a1.c b.h c.h
Linus' mkdep instead depends on being executed on the heders too:
a1.o: a1.c b.h
a2.o: a1.c b.h
b.h: c.h
touch b.h
This all works out perfectly well. Well... almost. The big advantage of the
latter is that you scan b.h only once; gcc scans it twice. The big
disadvantage is that you can't keep your kernel sources on a readonly
partition.
-- It were not best that we should all think alike; it is the difference of opinion that makes horse races.-- Matthias Urlichs \ noris network GmbH / Xlink-POP Nürnberg Schleiermacherstraße 12 \ Linux+Internet / EMail: urlichs@noris.de 90491 Nürnberg (Germany) \ Consulting+Programming+Networking+etc'ing PGP: 1024/4F578875 1B 89 E2 1C 43 EA 80 44 15 D2 29 CF C6 C7 E0 DE Click <A HREF="http://info.noris.de/~smurf/finger">here</A>. 42