URichard WM Jones, umbhali
Ikhodi yomthombo wemigomo
- Ukusekelwa kweqhinga elilodwa kuphela lokuxazulula ukuncika - "umyalelo wokuhlanganisa uqhutshwa uma ifayela eliqondiwe lingekho noma lidala kunoyedwa wabancikile." Imigomo ihlela ukusebenzisa amanye amaqhinga, njengokuhlola ubukhona be-URL, ukuqhathanisa izikhathi zokulungiswa nanoma yiliphi ifayela, ukuhlola ukwakhiwa kwephakheji ngaphakathi.
UKoji , ukuqhathaniswa kwamasheke, ukusebenzisa amacala okuhlola ngokweqa okukhethekile kokuhlolwa. - Lapho ucubungula izinhloso zokwakha, i-make ayihlukanisi amafayela namagama omthetho, futhi ngenxa yalokho, asikho isheke lokuthi lapho usebenzisa umthetho, ifayela elithi lidaliwe lizokwakhiwa ngempela. Isibonelo, uma unomthetho obizwa ngokuthi "test" osebenzisa izikripthi ezinokuhlolwa, ifayela elibizwa ngokuthi "test" lidalwe ngephutha, khona-ke ukuhlolwa ngeke kusabizwa, njengoba i-make izocabangela ukuthi ithagethi yakhiwe futhi ayidingi. noma yisiphi isenzo (Ukuze ulungise inkinga ekhona, ungacacisa umyalelo othi “.PHONY: test”). Imigomo ihlukanisa ngokusobala amafayela namagama wemithetho.
- Inkinga ngokunikeza ipharamitha eyodwa kuphela yemiyalelo yokuhlanganisa.
Imigomo ikuvumela ukuthi usebenzise inombolo engafanele yamapharamitha aqanjwe igama. Isibonelo, ungakwazi ukukhipha ngokuhlukile uphawu lwefayela lokususa iphutha egameni:
- Izinkinga zokusebenzelana notolika wegobolondo. Isibonelo, isidingo sokulawula ukuphunyuka kwezikhala efayeleni namagama ohla lwemibhalo, ukumoshakala kwezinsiza ekuqaliseni isitolika segobolondo esihlukile lapho senza umyalo ngamunye, ukutolika okuphindwe kabili kohlamvu oluthi “$” (olusetshenziswa kukho kokubili igobolondo nokwenza), ngokucabangela ama-indentations.
Lezi zinkinga zixazululwa kokuthi Imigomo ngokusebenzisa uphawu elithi “%” esikhundleni sika-“$” kokuhluka komhlangano (“$” isala kugobolondo kuphela), kusetshenziswa umhlahleli.
I-LALR(1) , okudinga ukuthi uzungeze izindlela namagama wamafayela ngezingcaphuno futhi ugqamise amabhlogo ekhodi ngezikaki ezigoqekile. Lonke ibhulokhi yomyalo yethulwa esimweni esisodwa segobolondo lomyalo, futhi ngaphakathi kwebhulokhi, ukufometha kwekhodi okungafanele kuvunyelwe, ngaphandle kokubhekisela ezikhaleni ezikhethekile.Bekuyi:
okuhlosiwe: foo.o bar.o
${CC} ${CFLAGS} $< -o $@Kwaba:
"target": "foo.o", "bar.o" {
%CC %CFLAGS %< -o %@
}
Ezinye izici Imigomo:
- Ukwesekwa ongakukhetha kokucacisa amagama namapharamitha angafanele:
goal all = : "target"
isixhumanisi somgomo =
"target" : "foo.o", "bar.o" { ... }iqoqo lomgomo (igama) =
"%name.o" : "%name.c", "dep.h" { %CC %CFLAGS -c $^ -o $@ } - Izindlela ezimbili zokuqalisa: yenza imodi yokufanisa okuhlosiwe kokwakha namagama wefayela (isibonelo, ifayela elithi "foo.o" lifana nethagethi ethi "%name.o"), kanye nemodi yokuhlanganisa eqondile:
inhloso konke = : isixhumanisi
isixhumanisi somgomo =
"target" : "foo.o", hlanganisa ("ibha") { ... }iqoqo lomgomo (igama) =
"%name.o" : "%name.c", "dep.h" { %CC %CFLAGS -c $^ -o $@ } - Amaqhinga omhlangano anqunywa imithetho ekhethekile engasetshenziswa ukunquma isidingo sokuhlanganisa kabusha okuhlosiwe komhlangano. Uma isixhumanisi senziwa ekubeni khona kwefayela, khona-ke lokhu kunqunywa ngokucacile ngophawu oluhambisanayo (“okuhlosiwe” kwegama lomthetho kanye *nefayela (“ithagethi”) ukuze kuhlolwe ifayela).
"target" : "foo.o", "bar.o" { ... }
*ifayela("target") : *ifayela("foo.o"), *ifayela("bar.o") { ... }
- Unjiniyela angachaza izibaluli ezingafanele zamaqhinga wokuhlanganisa. Ifulegi elithi "*ifayela" lichazwa ngokuzenzakalelayo (@{...} libonisa ukucindezelwa kokuphumayo, futhi "ukuphuma ku-99" kubonisa isidingo sokwakha kabusha):
isu *ifayela (igama lefayela) = @{
test -f %igama lefayela || phuma 99
kwe-f ku-%Source: opennet.ru