Ito ang command mppg na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
makeppgraph -- Graphical na pagsusuri ng dependency graph
DESCRIPTION
?: -?, A: -A,
--args-file,
--arguments-file, B: -b,
--dahil,
--build-reasons, C: &cwd, D: -D,
-d,
--dependencies,
&dir,
--tuldok,
--pababa,
--pababa, G: -g,
--graphviz, H: -h,
--tulong,
&bahay,
--html, I: -ako,
-ako,
--isama,
--include-dir,
--kabilang ang, L: -l,
--log,
--log-file, M: -M,
-m,
&makepp,
$MAKEPPGRAPHFLAGS,
--pagsamahin,
--modyul, O: -o,
--output, P: -p,
--simple, R: -r,
--palitan ang pangalan, S: -oo,
--separate-directions,
&suf, T: -t,
--text, U: -ikaw,
--pataas,
--pataas,
&usr, V: -V,
--bersyon
makeppgraph [ opsyon ... ] [ huwaran ... ]
mppg [ opsyon ... ] [ huwaran ... ]
Sabi nila "A picture is worth a thousand words". Kaya't iguhit natin ang iyong dependency o isama
graph mula sa iba't ibang pananaw. Tingnan ang gallery
<http://makepp.sourceforge.net/gallery/> para makakuha ng ilang ideya kung ano ang maaari mong gawin.
Ang bawat node ay kumakatawan sa isang source file o isang target, na may kulay ayon sa mga pattern ng pangalan ng file.
Ang node ng file ay hugis-parihaba. Ang node ng huwad na target ay hugis-itlog. Ang bawat solidong gilid ay kumakatawan
isang direktang dependency. Bilang kahalili o bilang karagdagan, maaari mong ipakita ang mga relasyon bilang
tuldok na mga linya. Para sa isang mas detalyado ngunit hindi masyadong magandang textual view tingnan ang makepplog.
Ngunit mag-ingat, kahit na para sa isang maliit na build ang pagiging kumplikado ay maaaring nakakagulat! Ito ay dahil sa
.o Kasama sa mga file at system na madali kang magkaroon ng dobleng dami ng mga node kaysa sa mga source file. Pero
iyan ay wala -- ang bilang ng mga gilid ay kadalasang lumalampas sa mga node, dahil sa maramihang
isama ang mga pahayag. Ang layout na walang tawiran ay kadalasang imposible.
Sa mga totoong proyekto, nagiging nakakabaliw ang pagiging kumplikado. Mga diskarte tulad ng template batay sa pinagmulan
pagbuo ng file, mga preprocessor (hal. naka-embed na SQL, mga wika sa kahulugan ng interface, Qt
library) o pag-publish ng mga file sa mga sentral na direktoryo (hal para magkaroon lamang ng isang "-I" o "-L"
opsyon) gawin ang graph na sumabog. Kahit na isang pixel lang ang lapad ng mga gilid, matatapos ka
malalawak na itim na guhitan ng magkadikit na mga gilid.
Kapag napagtanto mo kung ano talaga ang nangyayari, kung ikaw ay mapalad, maaari kang makahanap ng paraan
pinapasimple ang iyong setup ng build. Ngunit bago ka makarating doon, dapat mong bawasan nang husto ang
dami ng impormasyong ipinapakita mo. Sa layuning iyon mayroong iba't ibang pagpili, pagpapalit ng pangalan at
pagsasama-sama ng mga posibilidad sa "makeppgraph". Kapag hindi mo nagawang balansehin ang pagitan
binabawasan ang graph hanggang sa ito ay nagiging matinong maipapakita, habang ipinapakita pa rin kung ano
gusto mong makita, maaari kang bumalik sa isang textual graph.
oUTPUT FORMATS
Ang layout ng graph, pagpapakita at pagmamanipula ay mga kumplikadong gawain, na lampas sa saklaw ng
"makeppgraph". Sa halip, gumagawa ito ng mga input file para sa mga espesyal na tool. Lumilikha ito ng isang
output file na pinapalitan o idinaragdag ang naaangkop na suffix sa unang input file nito. Kung ganun
is .makepp/log, ang default, lalaktawan ng output file ang .makepp direktoryo, na humahantong sa
log.udg. Kung ang unang input ay - (stdin), ang output ay napupunta sa stdout.
uDraw(Graph)
Gamit ang uDraw(Graph)http://www.informatik.uni-bremen.de/uDrawGraph/> nakakakuha ka ng patas
modernong GUI, na nagpapahintulot na pumili ng mga magulang o mga anak, hanapin ang kabilang dulo ng isang gilid, o
itago ang mga subgraph. Pagsasaayos ng mga opsyon tulad ng mga distansya ng node, at paggamit ng mga spline para sa mga gilid
maaaring gawing mas maganda ang graph.
Habang ang mga tampok sa itaas ay ginagawa itong isang napakalaking kapaki-pakinabang na tool, mayroong ilang maliit
hitches:
· Ito ay lubos na memory gutom, kaya na, pagkatapos ng mahabang pagninilay-nilay, maaari itong bumagsak nang wala
pagkakaroon ng pagpapakita ng kahit ano -- isang malinaw na senyales na dapat mong bawasan ang bilang ng mga node
at/o mga gilid pa.
· Mahigpit nitong pinaghihiwalay ang mga katangian ng graph at mga opsyon sa pagpapakita. Ibig sabihin hindi mo kaya
ilagay sa isang nabuong graph ang katotohanan na dapat itong i-orient nang patagilid (na
sa pangkalahatan ay kinakailangan dito dahil, kahit na pinalitan ng pangalan sa isang bagay na maikli, ang mga filename ay
mas malawak kaysa sa taas). Bilang isang solusyon, kung hindi mo gustong gawin itong iyong default, o
pumili ng oryentasyon mula sa menu sa bawat oras, nagmumungkahi sila ng isang maliit na script ng starter:
i-export ang UDG_HOME=/where/ever/uDrawGraph-3.1
TMP=`mktemp -t udg.XXXXXX` || labasan 1
bitag "rm -f $TMP" EXIT
echo "[menu(file(open_graph(\"${1-log.udg}\"))),menu(layout(orientation(kaliwa_kanan))]" >$TMP
$UDG_HOME/bin/uDrawGraph -init $TMP
· Hindi pa nito sinusuportahan ang mga kulay ng hangganan ng node. Dahil dito, doble ang ipinapakita ng "--because".
mga hangganan kapag sila ay dapat na pula.
· Kapag pinagsasama ang ilang mga file sa isang node ay humahantong sa mga gilid sa sarili pareho sa
"--dependencies" at "--includes", isa lang sa mga ito ang ipapakita, nang random
may tuldok o iginuhit at may label na "2*".
Graphviz
Graphvizhttp://www.graphviz.org/> binubuo ng ilang command line tool, na nagbibigay-daan
marami pang mga export na format kaysa sa uDraw(Graph). Kasama diyan hindi lamang ang mga static na format ng imahe
ngunit din input para sa mga programang taga-disenyo tulad ng dia. Mayroong isang utility na "twopi" para sa paglikha ng isang
radial layout, na maganda kung ang iyong graph ay malapit sa isang tunay na puno, ibig sabihin, ang iyong
ang mga dependency ay lumalabas, ngunit kakaunti ang mga node na may mga karaniwang dependency sa iba. Mayroong kaunti
available ang mga manonood, wala sa mga ito ang tumutulong sa iyo na mag-navigate kasama ang istraktura ng graph:
tuldok
Ang sarili nitong tool sa pagpapakita, dotty, ay may kalamangan sa uDraw(Graph) na maaari mong malaya
i-drag ang mga node, nang hindi nililimitahan sa antas na itinalaga ng layout. Kailan
ang iyong screen ay puno ng mga gilid, ang pag-drag ng isang node ay nagbibigay sa iyo ng magandang impresyon kung saan
ang mga gilid ng node na iyon ay humahantong sa. Ngunit nawawalan din ito ng impormasyon kapag binago mo ito.
Bukod sa ito ay isang lumang Xlib tool. Nagpapakita rin ito ng medyo nakakainis
bilog sa gitna ng bawat gilid, at tila walang pagpipilian upang mapupuksa ito.
ZGRViewer
ZGRViewerhttp://zvtm.sourceforge.net/zgrviewer.html> ay isang hiwalay na nada-download
Java viewer na may kumportableng pag-zoom at pag-pan. Ang graph ay makikita lamang, hindi
paglipat ng mga node. Mayroong limang mga pindutan sa view area, na nag-aalok ng karagdagang
magarbong mga variation ng semi-3D zoom, ngunit, hindi tulad ng pangunahing pag-andar, maaari silang maging
napakabagal depende sa iyong setup ng Java. Para sa aking Sun Linux Java, ang mga sumusunod
nagbigay ng napakalaking tulong:
i-export ang J2D_PIXMAPS=shared USE_DGA_PIXMAPS=1
Grappa
Ang Grappa ay isang hiwalay na nada-download na Java 1.2 viewer. Walang balot na balot
script, walang manifest ang jar, wala sa mga source ang naglalaman ng pangunahing function, at
gamit ang appletviewer gumawa ito ng dalawang matataas na bintana na nakabitin na may "nagsisimulang applet"
mensahe, kaya hindi ko alam kung paano subukan ito. Maaari itong subukan sa isang demo web site bilang isang
applet
Ang pagpili ng isang gilid ay ginagawa itong naka-bold na pula, kaya maaari mong manual na mag-scroll sa kabilang dulo nito
tingnan nang hindi nawawala ito sa paningin. Maliban doon at pag-zoom at pagtanggal ng mga node
ito ay tila walang kapaki-pakinabang na mga tampok. Hindi nito pinapansin ang wastong hexadecimal na kulay
mga pagtutukoy.
Ang SVG SVG, isa sa mga uri ng file na maaaring i-export ng mga backend, ay medyo luma na. Ngunit ang ilan
may mga problema pa rin dito ang mga browser. Kapag ini-embed ito gamit ang isang object tag lamang ng Opera
kaliskis ito, ang iba ay i-clip ito, na walang silbi para sa isang thumbnail. Kung titingnan bilang a
sarili nitong dokumento, tanging ang Opera at Konqueror ang nagpapahintulot sa pag-scale nito, habang ang Firefox ay nagsusukat
ang mga label lamang. Kahit na ang mga label ay teksto, walang browser ang makakapaghanap sa kanila.
Ang IE6 ay walang clue, maliban kung mag-install ka ng plugin. Isang nakatuong application, tulad ng
Ang Inkscape, ay maaaring magsilbi sa iyo nang mas mahusay.
HTML
Ito ay isang simpleng unordered list tree na format na maaaring basahin sa anumang browser. Ikaw
dapat mayroong JavaScript at CSS, na nagbibigay-daan sa natitiklop na mga subtree at makakita ng mga kulay. Karaniwan
ang iyong graph ay hindi magiging isang puno, na ginagawa sa pamamagitan ng paulit-ulit na mga node sa bawat subtree
kailangan, ngunit bilang isang link sa unang pangyayari kung saan makikita mo ang lahat ng mga katangian nito. Dahil
sa limitadong suporta sa Unicode ng IE, sa halip ay ginagamit ang mga patayong arrow para sa mga ugnayang kasama
ng karaniwang tuldok-tuldok na mga arrow.
Tekstwal Talangguhit
Ito ay isang simpleng indentation-based na format na maaaring basahin sa anumang text viewer. Ito
nangangahulugang maaari kang mag-aral ng mas malalaking graph kaysa sa iba pang mga format. Sa Emacs mo
maaaring gumamit ng outline at foldout para sa napakalakas na graph navigation gamit ang maliit na wrapper na ito
mode:
(define-derived-mode textgraph-mode outline-mode "Graph"
(view-mode)
(set (make-local-variable 'outline-regexp) " *.")
(set (make-local-variable 'outline-level)
(lambda () (/ (- (match-end 0) (match-simula 0) -1) 2)))
(set (make-local-variable 'outline-font-lock-keywords)
'(("^ *\\(?:{[az,]+} \\)?\\([^{\n]+\\)" (1 (outline-font-lock-face) nil t) )))
(setq imenu-generic-expression
'((nil "^ *\\(?:{[az,]+} \\)?\\(.+?\\)\\(?:{[az,]+}\\)?$" 1))))
Ang mga linya ay maaaring may comma separated annotation sa pagitan ng mga brace, maliban kung ibibigay mo rin ang
"-p, --plain" na opsyon. Kapag ang mga ito ay nauna sa target na ito ay tumutukoy sa relasyon
sa magulang, ibig sabihin, ang nakaraang linya ay naka-indent nang mas kaunti. Pagdating nila sa target,
ang mga ito ay tumutukoy sa mismong target. Ang mga ito ay ang mga sumusunod:
dahil sa
Kapag ito ay nauna sa isang target, ang magulang ay binuo dahil sa isang ito. Kapag ito
pagkatapos, ang target ay may ilang likas na dahilan para muling itayo.
bidirectional
Ang dependency o pagsasama na ito ay napupunta sa parehong direksyon.
isama
Kasama ng magulang ang file na ito. Ibinibigay lang ang anotasyong ito kapag ipinapakita din
dependencies.
hindi pagkakasundo
Ito ay isang huwad na target.
paulit-ulit
Ang impormasyon tungkol sa target na ito at sa mga anak nito ay naibigay na kanina.
Opsyon
Kung hindi ka magbibigay ng mga pattern, magsisimulang gumana ang makeppgraph sa lahat ng mga node na magagawa nito
extract mula sa makepp's log. Kapag binigyan ng isa o higit pang pattern (gamit ang "?", "*", "**" at/o
"[...]"), tutugma ito sa mga nasa file system at gagana sa alinmang nagaganap din sa
log. Para sa mga ito, bilang default ay pipiliin ang "pataas", ibig sabihin, lahat ng mga target na umaasa
at/o isama ang alinman sa mga ito at "pababa", ibig sabihin, lahat ng mga target at/o pinagmumulan, na alinman sa
ang mga ito ay nakasalalay sa at/o kasama. (Ang mga direksyon ay metaporikal, dahil ang graph ay
pinakamahusay na ipinapakita mula kaliwa "itaas" hanggang kanan "ibaba" dahil sa lapad ng mga node.)
-A filename
--args-file=filename
--arguments-file=filename
Basahin ang file at i-parse ito bilang posibleng naka-quote na whitespace- at/o newline-separated
mga pagpipilian.
-b
--dahil
--build-reasons
Kung ang isang node ay itinayong muli dahil sa isang dependency, ang gilid na iyon ay ipinapakita sa pula. Naku
makepp ay naglalapat ng mga pag-optimize upang matukoy kung kailan ang isang target ay nangangailangan ng muling pagtatayo, upang ito ay
madalas ay hindi masabi kung aling file ang nag-trigger sa muling pagtatayo. Kung ang node ay itinayong muli para sa a
dahilan na hindi naiugnay sa isa pang file, kung gayon ang hangganan ng node ay pula. Sa
uDraw(Graph) isang double border ang ginagamit sa halip, dahil hindi nito sinusuportahan ang kulay ng border.
-D
--mga dependencies
Gumuhit ng graph ng ugnayan ng dependency na tinutukoy ng makepp. Ito ang default
maliban kung ang "-i, --includes" ay ibinigay din.
-d
--pababa
--pababa
Ang pagpipiliang ito ay makabuluhan lamang kung magbibigay ka ng isa o higit pang mga pattern. Ito ay pagkatapos lamang
piliin ang mga target at/o pinagmumulan kung saan nakasalalay ang mga katugmang file, o kung saan sila
isama
-g
--graphviz
--tuldok
Gumawa ng isang Graphviz .tuldok file, sa halip na ang default na uDraw(Graph) .udg file.
-h
--html
Gumawa ng browser . Html file, sa halip na ang default na uDraw(Graph) .udg file.
-?
- Tumulong
Mag-print ng maikling buod ng mga opsyon.
-I direktoryo
--include=direktoryo
--include-dir=direktoryo
Idagdag direktoryo sa Perl load path @INC.
-i
--kabilang ang
Sa halip na mga dependencies (o may "-D, --dependencies" bilang karagdagan sa kanila) gumuhit ng a
graph ng isama ang mga relasyon. Ito ay mai-log lamang hangga't kinakailangan
susuriin. Upang makuha ang buong larawan kailangan mo ng bagong buong build.
-l filename
--log=filename
--log-file=filename
Ang filename ay kung saan sinulat ni makepp ang log nito. Maaari rin itong isang direktoryo, kung saan a
tinawag ang file .makepp/log or mag-log hahanapin. Upang basahin mula sa stdin, dapat kang magbigay -
bilang isang filename. Kapag hindi ibinigay ang opsyong ito, magde-default ito sa kasalukuyang direktoryo.
Ang pagpipiliang ito ay maaaring ibigay ng maraming beses, hal para sa pagsasama-sama ng lahat ng mga log mula sa
"--traditional-recursive-make". Ngunit ang mga dependency na itinago mo mula sa makepp sa pamamagitan ng
evil recursion paradigm siyempre hindi makikita dito.
-M module[=arg,...]
--module=module[=arg,...]
Mag-load ng module at mag-import ng anumang mga function na ini-export nito.
-m perlcode
--merge=perlcode
Magsagawa perlcode para sa bawat target at mga dependencies nito. Tingnan ang pagsasanib para sa mga detalye tungkol sa
pagpipiliang ito.
-o filename
--output=filename
Isulat ang output sa file na ito.
-p
--payak
Huwag gumamit ng mga katangian tulad ng mga kulay o tuldok na linya. Ito ay lalong kapaki-pakinabang para sa
uncluttering "-t, --text" na output. Sa format na iyon, mawawala ang mga bidirectional na gilid
maliban kung pagsamahin mo ito sa "-s, --separate-directions".
-r perlcode
--rename=perlcode
Magsagawa perlcode para sa bawat target at mga dependencies nito. Tingnan ang pagpapalit ng pangalan para sa mga detalye
tungkol sa opsyong ito.
-s
--separate-directions
Gumuhit ng dalawang magkahiwalay na arrow, sa halip ng bawat double ended arrow, upang gawing mas madali ang mga ito
patalastas.
-t
--text
Gumawa ng isang taong nababasa . Txt file, sa halip na ang default na uDraw(Graph) .udg file.
-u
--pataas
--pataas
Ang pagpipiliang ito ay makabuluhan lamang kung magbibigay ka ng isa o higit pang mga pattern. Ito ay pagkatapos lamang
piliin ang mga target na nakadepende sa at/o kasama ang mga katugmang file.
-V
--bersyon
I-print ang numero ng bersyon.
MULING PAGSULAT
Ang mga diskarte sa kabanatang ito ay karaniwang mahalaga upang makakuha ng isang makatwirang laki ng graph. Bilang
ang mga ito ay binuo bilang Perl code, alam na ang wika ay kapaki-pakinabang. Pero dapat kaya mo
upang makamit ang marami sa mga halimbawa dito o sa gallery
<http://makepp.sourceforge.net/gallery/>.
Pangalan ng pangalan
Ito ang unang pagsusulat ng pangalan na nangyayari, kung ang "-r, --rename" na opsyon ay ibinigay. Para sa
bawat pangalan na nakatagpo, perlcode ay tatawagin. Nakakakuha ito ng filename sa $_, at maaari itong magbago
ito. Ito ay madalas na kailangan, dahil ang makepp ay nag-log ng ganap na kwalipikadong mga pangalan ng file, kaya ang isang node ay maaaring
madaling maging kalahating screen ang lapad.
Sa isang bagay, maaari mong muling isulat ang mga pangalan sa "undef" o ang walang laman na string. Aalisin nito
ang node mula sa graph. Tandaan na ang pag-aalis ng node sa unang yugtong ito ay masisira a
chain of dependency kung nasa gitna ang node na ito.
Maaari mo ring muling isulat ang iba't ibang mga pangalan sa parehong string, na pinipilit silang lahat sa pareho
node, na nag-iipon ng pinagsamang dependencies at dependents.
Sa kabilang banda, maaari mo lamang palitan ang pangalan ng mga pangalan sa (karaniwang) mas maiikling mga pangalan, upang mabawasan
ang lapad ng mga node, na maaaring malayo hanggang malawak na may ganap na mga filename. Mayroong kaunti
mga paunang natukoy na function sa package na "Mpp::Rewrite", kung saan tumatakbo din ang iyong code, maaari mong gamitin
para dito. Nagbabalik ito ng totoo kung gumawa sila ng isang bagay para pagsamahin mo sila gaya ng sa:
--rename='cwd( 1 ) || &home || &usr'
&cwd
cwd numero
cwd numero, pangalan [, separator]
Tinatanggal ang kasalukuyang gumaganang direktoryo mula sa simula ng landas. Sa isang numero, din
pinapalitan ang mga direktoryo ng magulang na maraming antas na may tamang bilang ng .. /
mga direktoryo, kung saan naaangkop. Sa kasong ito maaari kang magbigay ng kahaliling pangalan, tulad ng isang
nakasalansan ':' sa halip na '..' at isa pang kahaliling panghiwalay parang '' sa halip
ng '/'. Sa unang kaso maaari kang makakuha :/:/a/b, sa pangalawa ay mas maikli pa ::a/b
sa halip ng ../../a/b. Ang pagpasa ng isang numero ay kapaki-pakinabang kung kumukuha ka ng mga bagay mula sa
mga kalapit na puno. O mayroon kang isang SRC direktoryo, kung saan ang karamihan ng aksyon ay, kaya ikaw
tumawag makeppgraph doon, ngunit nais na makita ang kaugnayan sa iyong iba pang mga direktoryo masyadong.
Kung hindi ka magbibigay ng opsyon na "--rename", ang &cwd ang default. Kung gusto mong walang palitan ng pangalan,
maaari kang magbigay ng ilan perlcode tulad ng "--rename=1" na walang ginagawa.
&dir
Ang isang ito ay isang mahusay na reducer ng pagiging kumplikado ng graph. Binabawasan nito ang bawat file sa nito
direktoryo. Iyon ay katumbas ng tanong: "Mga file mula sa kung saan ang direktoryo ay nakasalalay sa mga file
mula sa aling ibang direktoryo?" Tandaan na habang ang dependency graph ay palaging acyclic
(kung hindi, hindi alam ni makepp kung saan magsisimulang magtayo), hindi iyon totoo sa pagbabawas na ito
tingnan. Hal kung dir1/a depende sa dir2/b at dir2/a on dir1/b na ipapakita bilang a
mutual dependency sa pagitan ikaw1 at ikaw2. Dahil ang isang cyclic graph ay walang malinaw na simula
punto, ang layout ay maaaring kakaiba.
Hindi tulad ng iba pang mga function sa seksyong ito, hindi ito eksklusibo sa iba. Kaya
maaaring hindi mo nais na lohikal na pagsamahin ito:
--rename='&dir; &cwd || &home'
&bahay
Pinapalitan ang iyong home directory ng ~/.
&makepp
Pinapalitan ang direktoryo ng pag-install ng makepp ng |m|.
&suf
inaantok numero
Ang isang ito ay isa ring mahusay na reducer ng pagiging kumplikado ng graph. Binabawasan nito ang bawat file na mayroon
isang panlapi sa isang asterisk at ang panlapi na iyon. Kaya makikita mo kung aling mga uri ng mga file ang nakasalalay
kung saan iba pang mga uri. Sa isang argumento ng 0 ito ay umalis sa unang karakter ng
direktoryo, kung isa ito sa "/", "~" o "|" (gaya ng inilagay ng &home o &usr kung ikaw
tinawag ang mga unang). Sa isang positibong argumento, nag-iiwan ito ng maraming antas ng direktoryo
sa simula. Sa isang negatibong argumento, inaalis nito ang maraming antas ng direktoryo sa
wakas. Kaya para sa /a/b/c/d/e/xy nakuha mo:
&suf *.y
suf 0 /*.y
suf 1 /a/*.y
suf 2 /a/b/*.y
suf -1 /a/b/c/d/*.y
suf -2 /a/b/c/*.y
Para sa kamag-anak a/b/c/d/e/xy nakuha mo:
&suf *.y
suf 0 *.y
suf 1 a/*.y
suf -1 a/b/c/d/*.y
&usr
Sa ilalim /, /usr, /usr/lokal, /usr/X11, /usr/X11R6, /usr/X11R7 or /opt, para sa alinman sa mga
mga direktoryo bin, etc, include, lib or sGagawin ko, ang mga inisyal ng mga salitang ito ay
pinagsama sa pagitan ng mga bar.
Hal /usr/local/bsa/foobar nagiging |ulb|foobar or /usr/include/net/if.h nagiging
|ui|net/if.h. Tandaan na ang `l' ay nangangahulugang `local' kapag nasa pagitan ng dalawang titik at para sa `lib'
bilang huling liham.
Pagmumog
Ito ang pangalawang pagsusulat ng pangalan na nangyayari, kung ang "-m, --merge" na opsyon ay ibinigay. Ito
Ang API ay nasa ilalim pa rin ng pag-unlad! Sa kasalukuyan ang target ay naipasa sa $_ at ang dependency
bilang argumento. Kung nagbabalik ng value ang perlcode, papalitan ng value na iyon ang target at ang
dependency, pinagsasama ang mga ito sa isang node. Makakatulong sa iyo ang ilang paunang natukoy na function:
c2o Para sa anumang C/C++ source at ang resulta .o file, pagsamahin ang mga ito sa isang node, sa pamamagitan ng pagdaragdag sa
ang source path ay isang suffix ng ">o" like some/where/foo.cc>o, kahit na ang .o ang file ay nasa
ibang direktoryo.
exe Para sa anumang .o file at ang nagresultang executable ng parehong notdir basename na walang a
panlapi o may Exe, pagsamahin ang mga ito sa isang node, sa pamamagitan ng pagdaragdag ng asterisk sa .o file.
Hindi ito gagana sa kasalukuyan kasama ng c2o.
x2 Para sa anumang pares ng mga file na may parehong pangalan, karaniwang isang header o library na ini-publish sa a
sentral na direktoryo, pagsamahin ang mga ito sa isang node, sa pamamagitan ng pagdaragdag *2 sa dependency.
Kapaligiran
Tinitingnan ng Makeppgraph ang sumusunod na variable ng kapaligiran:
$MAKEPPGRAPHFLAGS
Anumang mga flag sa environment variable na ito ay binibigyang kahulugan bilang mga opsyon sa command line dati
anumang tahasang mga pagpipilian. Ang mga quote ay binibigyang kahulugan tulad ng sa makefiles.
Gumamit ng mppg online gamit ang mga serbisyo ng onworks.net