Wogwira ntchito ku Red Hat adapereka dongosolo la msonkhano wa Goals. Kutulutsidwa kwa GNU Pangani 4.2

Richard WM Jones, wolemba kutchfuneralhome, ndikugwira ntchito ku Red Hat, anayambitsa chida chatsopano cholumikizira Goals, cholinga chochotsa zofooka ndi zovuta pakugwiritsa ntchito make ndikusunga kuphweka komanso kumvetsetsa kwa zolembedwa. Kupanga zofunikira kudapangidwa mu 1976 ndipo kuli ndi zolakwika zingapo zamalingaliro;
Goals source code wogawidwa ndi zololedwa pansi pa GPLv2+.

Mavuto oti athetsedwe:

  • Thandizo la njira imodzi yokha yothetsera kudalira - "malangizo a msonkhano amayendetsedwa ngati fayilo yomwe mukufuna ikusowa kapena ndi yakale kuposa imodzi mwazodalira." Zolinga zikukonzekera kukhazikitsa njira zina, monga kuyang'ana kupezeka kwa ulalo, kufananiza nthawi zosinthidwa ndi fayilo iliyonse, kuwunika momwe phukusi limapangidwira. kodi, kuyerekeza macheke, kuyendetsa mayeso ndikudumpha mosasankha mayeso.
  • Pokonza zolinga zomanga, kupanga sikulekanitsa mafayilo ndi mayina olamulira, ndipo chifukwa chake, palibe cheke kuti poyendetsa lamulo, fayilo yomwe imati idapangidwa idzapangidwadi. Mwachitsanzo, ngati muli ndi lamulo lotchedwa "test" lomwe limayendetsa zolembedwa ndi mayeso, fayilo yotchedwa "test" idapangidwa mwangozi, ndiye kuti mayesowo sadzayitanidwanso, chifukwa make adzawona kuti chandamalecho chamangidwa ndipo sichifunikira. kanthu kalikonse (Kuti muthetse vutolo, mutha kufotokoza ".PHONY: test" malangizo). Zolinga zimalekanitsa mwatsatanetsatane mafayilo ndi mayina a malamulo.

    Wogwira ntchito ku Red Hat adapereka dongosolo la msonkhano wa Goals. Kutulutsidwa kwa GNU Pangani 4.2

  • Vuto popereka gawo limodzi lokha la malangizo a msonkhano.

    Wogwira ntchito ku Red Hat adapereka dongosolo la msonkhano wa Goals. Kutulutsidwa kwa GNU Pangani 4.2

    Zolinga zimakupatsani mwayi wogwiritsa ntchito nambala yosawerengeka yamagawo otchulidwa. Mwachitsanzo, mutha kuchotsa padera chizindikiro cha fayilo ya debug kuchokera ku dzina:

    Wogwira ntchito ku Red Hat adapereka dongosolo la msonkhano wa Goals. Kutulutsidwa kwa GNU Pangani 4.2

  • Mavuto okhudzana ndi wotanthauzira zipolopolo. Mwachitsanzo, kufunikira kowongolera kuthawa kwa malo m'mafayilo ndi mayina achikwatu, kuwononga zinthu pakuyambitsa womasulira wosiyana pakuchita lamulo lililonse, kutanthauzira kawiri kwa "$" (yogwiritsidwa ntchito mu chipolopolo ndi kupanga), kutengera indentations.

    Mavutowa amathetsedwa mu Zolinga pogwiritsa ntchito chizindikiro cha "%" m'malo mwa "$" pamitundu yosiyanasiyana ("$" imatsalira pa chipolopolo chokha), pogwiritsa ntchito cholembera. KUKHALA (1), zomwe zimafuna kuti muzizungulira njira ndi mayina amafayilo okhala ndi mawu ndikuwonetsa midadada yokhala ndi zingwe zopindika. Lamulo lonse la malamulo limayambika mu chitsanzo chimodzi cha chipolopolo cha lamulo, ndipo mkati mwa chipikacho, kupanga kachidindo kovomerezeka kumaloledwa, popanda kutchula malo apadera.

    Anali:
    cholinga: foo.o bar.o
    ${CC} ${CFLAGS} $< -o $@

    Zinakhala:
    "target": "foo.o", "bar.o" {
    %CC %CFLAGS %< -o %@
    }

Zina mwa Zolinga:

  • Thandizo losasankha pakutchula mayina ndi magawo osasintha:

    goal all = : "target"

    cholinga link =
    "target" : "foo.o", "bar.o" {... }

    kupanga zolinga (dzina) =
    "%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • Mitundu iwiri yotsegulira: pangani mawonekedwe kuti agwirizane ndi zomwe mukufuna kumanga ndi mayina a mafayilo (mwachitsanzo, fayilo "foo.o" ikugwirizana ndi chandamale "%name.o"), ndi njira yophatikizira mwachindunji:

    cholinga chonse = : ulalo

    cholinga link =
    "target" : "foo.o", compile ("bar") { ... }

    kupanga zolinga (dzina) =
    "%name.o" : "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • Njira zoyendetsera msonkhano zimatsimikiziridwa ndi malamulo apadera omwe angagwiritsidwe ntchito kuti adziwe kufunikira kokonzanso cholinga cha msonkhano. Ngati ulalo wapangidwa kukhalapo kwa fayilo, ndiye kuti izi zimatsimikiziridwa momveka bwino kudzera mu chikwangwani chofananira ("chandamale" cha dzina laulamuliro ndi *fayilo ("chandamale") pakuwunika fayilo).

    "target" : "foo.o", "bar.o" {... }

    *file("target") : *file("foo.o"), *file("bar.o") { ... }

  • Wopanga mapulogalamu amatha kufotokozera zomwe zimangochitika mwadongosolo. Mbendera ya "*fayilo" imatanthauzidwa mwachisawawa (@{...} ikuwonetsa kuponderezedwa kwa zotuluka, ndipo "kutuluka 99" kumawonetsa kufunika komanganso):

    njira *fayilo (filename) = @{
    kuyesa -f % dzina lafayilo || kutuluka 99
    kwa f%

    Source: opennet.ru

Kuwonjezera ndemanga