diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/yacco2/diagrams/o2linker_overview.mp |
Initial commit
Diffstat (limited to 'web/yacco2/diagrams/o2linker_overview.mp')
-rw-r--r-- | web/yacco2/diagrams/o2linker_overview.mp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/web/yacco2/diagrams/o2linker_overview.mp b/web/yacco2/diagrams/o2linker_overview.mp new file mode 100644 index 0000000000..f07b8dbe10 --- /dev/null +++ b/web/yacco2/diagrams/o2linker_overview.mp @@ -0,0 +1,78 @@ +% file: o2linker_overview.mp +% flow control of O2, O2linker, and c++ +input boxes +u:=1cc; +pair sep,fldsep; +sep := (0,3u); +fldsep := (3u,0); +beginfig(1); + +boxit.fsc(btex yyy.fsc etex); % input control file +boxit.o(btex \strut$O_{2}$linker etex); % linker prg +boxit.err(btex yyy\_errors.log etex); % error log +boxit.tr(btex yyy\_tracings.log etex); % trace log and o2linker chatter + +boxit.occ(btex yyy\_fsc.cpp file etex); % linker c++ tble +boxit.docs(btex \strut$O_{2}$linker\_doc.w etex); % linker doc +boxit.cpp(btex CC etex); % c++ compiler +boxit.objs(btex threads's bit maps object etex); +boxit.cweave(btex cweave etex); +boxit.tex(btex \strut$O_{2}$linker\_doc.tex etex); +boxit.pdftex(btex pdftex etex); +boxit.xpdf(btex \strut$O_{2}$linker\_doc.pdf file etex); +%% place the boxes + +.5[fsc.e,fsc.w] - sep = .5[o.e,o.w]; +tr.e + fldsep = o.w; +o.e + fldsep = err.w; +occ.e + 1.5fldsep = docs.w; +docs.e + .5fldsep = cweave.w; +cweave.e + .5fldsep = tex.w; +tex.s - .5sep = pdftex.n; +pdftex.s - .5sep = xpdf.n; + +o.s - sep = .5[occ.e,docs.w]; + +occ.s -.5sep = cpp.n; +cpp.s -.5sep = objs.n; + +%% form the boxes +drawboxed(fsc); +drawboxed(o); +drawboxed(err); +drawboxed(tr); + +drawboxed(occ); +drawboxed(docs); + +drawboxed(cweave); +drawboxed(tex); +drawboxed(pdftex); +drawboxed(xpdf); + +drawboxed(cpp); +drawboxed(objs); + +%% draw lined arrows between the boxes +drawarrow fsc.s -- o.n; +pair mopt,ldeltaopt,rdeltaopt; +mopt := .5[o.e,o.w] - .5(0,ypart sep); +ldeltaopt := (xpart occ.n, ypart mopt); +rdeltaopt := (xpart docs.n, ypart mopt); +drawarrow o.e -- err.w dashed withdots; +drawarrow o.w -- tr.e dashed withdots; +draw o.s -- mopt; +draw mopt -- ldeltaopt; +draw mopt -- rdeltaopt; +drawarrow ldeltaopt -- occ.n; +drawarrow rdeltaopt -- docs.n; + +%y = ypart objs.n - ypart cpp.s; +drawarrow occ.s -- cpp.n; +drawarrow cpp.s -- objs.n; +drawarrow docs.e -- cweave.w; +drawarrow cweave.e -- tex.w; +drawarrow tex.s -- pdftex.n; +drawarrow pdftex.s -- xpdf.n; +endfig; +end;
\ No newline at end of file |