digraph G { rank=same {linker_src libc_src kernel_src cc_src} linker_src [label="$LINKER source\n(binutils-source)"] libc_src [label="$LIBC source\n(eglibc-source)"] kernel_src [label="$KERNEL source\n(linux-source-2.6.29)"] cc_src [label="$CC source\n(gcc-4.4-source)"] subgraph cluster_linker { label="linker build\n(src:binutils-mips-linux-gnu)" linker [label="$LINKER for $TRIPLET\n(binutils-mips-linux-gnu)"] } subgraph cluster_kernel_headers { label="kernel headers build\n(src:linux-libc-dev-mips-cross)" kernel_headers [label="$KERNEL headers for $ARCH\n(linux-libc-dev-mips-cross)"] } subgraph cluster_cc { label="crosscompiler build\n(src:gcc4.4-mips-linux-gnu)" libc_headers [style=dotted, label="$LIBC headers for $TRIPLET"] libc_stage1 [style=dotted, label="limited $LIBC code for $TRIPLET"] cc_stage1 [style=dotted, label="stage 1 limited $CC crosscompiler for $TRIPLET"] cc_stage2 [style=dotted, label="stage 2 limited $CC crosscompiler for $TRIPLET"] libc [label="$LIBC headers and libs for $TRIPLET\n(libc6-mips-linux-gnu)"] cc [label="$CC crosscompiler for $TRIPLET\n(gcc-4.4-mips-linux-gnu)"] } // rank=same {linker libc kernel_headers cc} linker_src -> linker kernel_src -> kernel_headers 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 }