1make ordering: zow.h boz.h zig.cpp zig.o dax.h yow.h zag.cpp zag.o bar.cpp bar.o foo.cpp foo.o libfoobar.a libzigzag.a killerapp 2 3parallel make ordering, 4vertices with same group number can be made in parallel 5time_slot[dax.h] = 0 6time_slot[yow.h] = 1 7time_slot[boz.h] = 0 8time_slot[zow.h] = 0 9time_slot[foo.cpp] = 1 10time_slot[foo.o] = 2 11time_slot[bar.cpp] = 2 12time_slot[bar.o] = 3 13time_slot[libfoobar.a] = 4 14time_slot[zig.cpp] = 1 15time_slot[zig.o] = 2 16time_slot[zag.cpp] = 2 17time_slot[zag.o] = 3 18time_slot[libzigzag.a] = 5 19time_slot[killerapp] = 6 20 21A change to yow.h will cause what to be re-made? 22yow.h bar.cpp zag.cpp bar.o zag.o libfoobar.a libzigzag.a killerapp 23 24The graph has a cycle? 0 25 26adding edge bar_cpp -> dax_h 27 28The graph has a cycle now? 1 29