digraph G { size="8,10" rank=same {linker kernel_headers libc_src cc_src} linker [color="blue", label="$TRIPLET $LINKER\n(binutils-mips-linux-gnu)"] kernel_headers [color="blue", label="$ARCH $KERNEL headers\n(linux-libc-dev-mips-cross)"] libc_src [color="blue", label="$LIBC source\n(eglibc-source)"] cc_src [color="blue", label="$CC source\n(gcc-4.4-source)"] subgraph cluster_cc { color="red" label="crosscompiler build\n(src:gcc4.4-mips-linux-gnu)" libc_headers [style=dotted, label="$TRIPLET $LIBC headers"] libc_stage1 [style=dotted, label="limited $TRIPLET $LIBC code"] cc_stage1 [style=dotted, label="stage 1 limited $TRIPLET $CC"] cc_stage2 [style=dotted, label="stage 2 limited $TRIPLET $CC"] libc [color="blue", label="$TRIPLET $LIBC headers and libs\n(libc6-mips-linux-gnu)"] cc [color="blue", label="$TRIPLET $CC\n(gcc-4.4-mips-linux-gnu)"] } // hack to push subgraph down below line of dependencies cc_src -> libc_headers [style="invis"] libc_src -> libc_headers cc_src -> cc_stage1 linker -> cc_stage1 kernel_headers -> cc_stage1 libc_headers -> cc_stage1 libc_src -> libc_stage1 kernel_headers -> libc_stage1 cc_stage1 -> libc_stage1 linker -> libc_stage1 cc_src -> cc_stage2 kernel_headers -> cc_stage2 libc_headers -> cc_stage2 libc_stage1 -> cc_stage2 linker -> cc_stage2 libc_src -> libc kernel_headers -> libc cc_stage2 -> libc linker -> libc cc_src -> cc kernel_headers -> cc // libc_headers -> cc libc -> cc linker -> cc }