Richard WM Jones, munyori
Zvinangwa source code
- Tsigiro yenzira imwe chete yekumisikidza - "murairo wegungano unoitiswa kana faira rekunangwa risipo kana kuti rakakura kudarika rimwe revanotsamira." Zvinangwa zvinoronga kuita mamwe matekiniki, sekutarisa kuvepo kweURL, kuenzanisa nguva dzekuchinja nechero faira, kuongorora iyo pasuru inovaka mukati.
kΕji , kuenzanisa kwemacheki, kumhanya bvunzo makesi nekusarudza kusvetuka kwebvunzo. - Paunenge uchigadzira tarisiro dzichigadzira, ita kuti uregedze mafaera nekutonga mazita, uye semhedzisiro, hapana cheki iyo kana ichimhanya mutemo, iyo faira inotaura kuti isikwa ichagadzirwa. Semuenzaniso, kana uine mutemo unonzi "test" unomhanyisa zvinyorwa zvine bvunzo, faira rakanzi "test" rakagadzirwa netsaona, ipapo bvunzo hadzichadanwa, sezvo make achafunga kuti chinangwa chakavakwa uye hachidi. chero chiito (kuti ushande zvakapoteredza dambudziko mukugadzira, unogona kutsanangura ".PHONY: test" directive). Zvinangwa zvinoparadzanisa mafaera nemazita ekutonga.
- Dambudziko nekupa parameter imwe chete yemirairo yegungano.
Zvinangwa zvinokutendera kuti ushandise nhamba inopokana yemaparamita ane mazita. Semuenzaniso, unogona kubvisa zvakasiyana chiratidzo che debug faira kubva pazita:
- Matambudziko ekudyidzana nemuturikiri wegoko. Semuyenzaniso, kudiwa kwekudzora kupukunyuka kwenzvimbo mumafaira nemazita edhairekitori, kutambisa zviwanikwa pakutangisa muturikiri wegoko rakasiyana paunenge uchiita murairo wega wega, dudziro yakapetwa kaviri ye "$" hunhu (inoshandiswa mune zvese shell uye kugadzira), tichifunga nezve indentations.
Matambudziko aya anogadziriswa muZvinangwa nekushandisa chiratidzo che "%" pachinzvimbo che "$" chezvigadziriso zvegungano ("$" inosara yegoko chete), uchishandisa parser.
LALR(1) , izvo zvinoda kuti iwe utenderedze nzira uye mazita emafaira ane makotesheni uye simbisa mabhuraki ekodhi ane curly braces. Iyo yese yekuraira block inotangwa mune imwe muenzaniso weiyo gomba rekuraira, uye mukati meiyo block, kupokana kodhi fomati inobvumidzwa, pasina kutaurwa kune dzakakosha nzvimbo.Waive:
chinangwa: foo.o bar.o
${CC} ${CFLAGS} $< -o $@Yakava:
"target": "foo.o", "bar.o" {
%CC %CFLAGS %< -o %@
}
Zvimwe zveZvinangwa:
- Sarudzo yerutsigiro yekutsanangudza mazita nemaparameter:
chinangwa zvese = : "chinangwa"
chinangwa chinongedzo =
"target" : "foo.o", "bar.o" {... }chinangwa kuunganidza (zita) =
"%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@ } - Maitiro maviri ekuvhura: gadzira modhi yekuenzanisa zvibodzwa zvekuvaka nemazita emafaira (semuenzaniso, faira "foo.o" inofananidzira chinangwa "% name.o"), uye yakananga kuunganidza maitiro:
chinangwa zvese = : link
chinangwa chinongedzo =
"target" : "foo.o", unganidza ("bar") {... }chinangwa kuunganidza (zita) =
"%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@ } - Mazano egungano anotarwa nemitemo yakakosha inogona kushandiswa kuona kukosha kwekubatanidzazve chinangwa chegungano. Kana chinongedzo chikaitwa pakuvapo kwefaira, zvino izvi zvinotsanangurwa zvakajeka kuburikidza nechiratidzo chinoenderana ("chinangwa" chezita rekutonga uye * faira ("chinangwa") chekutarisa faira).
"target" : "foo.o", "bar.o" {... }
*faira("chinangwa") : *faira("foo.o"), *faira("bar.o") {...}
- Mugadziri anogona kutsanangura zvinopokana hunhu hwekusangana maitiro. Iyo "* faira" mureza inotsanangurwa neyakagadzika (@{...} inoratidza kudzvanywa kwezvinobuda, uye "kubuda 99" kunoratidza kudiwa kwekuvaka patsva):
nzira *faira (zita refaira) = @{
test -f % filename || kubuda 99
zve f mu%Source: opennet.ru