Ua hōʻike kekahi limahana Red Hat i ka ʻōnaehana hui Goals. Hoʻokuʻu ʻia o GNU Make 4.2
Richard WM Jones, mea kākau libguestfs, hana ma Red Hat, hoopuka pono hui hou pahu hopu, i manaʻo e hoʻopau i nā hemahema a me nā pilikia i ka pono o ka hana ʻoiai e mālama ana i ka maʻalahi a me ka hoʻomaopopo ʻana o nā palapala. Ua hoʻolālā ʻia ka make utility ma 1976 a he nui nā hemahema o ka manaʻo; Hoʻolālā nā pahuhopu e hoʻopau i kēia mau hemahema me ka ʻole e hoʻololi i ka manaʻo maʻamau.
Pahuhopu kumu code mahele ʻia e laikini ma lalo o GPLv2+.
Kākoʻo no hoʻokahi wale nō manaʻo hoʻoholo hilinaʻi - "holo ʻia ke aʻo ʻana i ka hui inā nalo ka faila i makemake ʻia a ʻoi aku paha ma mua o kekahi o nā mea hilinaʻi." Hoʻolālā nā pahuhopu e hoʻokō i nā hana ʻē aʻe, e like me ka nānā ʻana i ka loaʻa ʻana o kahi URL, ka hoʻohālikelike ʻana i nā manawa hoʻololi me kekahi faila, ka loiloi ʻana i ka pūʻolo i kūkulu ʻia i loko. kōji, ka hoʻohālikelike ʻana i nā checksums, ka holo ʻana i nā hihia hoʻāʻo me ka lele koho ʻana o nā hoʻokolohua.
I ka hana ʻana i nā pahuhopu kūkulu, ʻaʻole e hoʻokaʻawale i nā faila a me nā inoa lula, a ʻo ka hopena, ʻaʻohe ʻike i ka wā e holo ana i kahi lula, e hana maoli ʻia ka faila āna i ʻōlelo ai e hana ʻia. No ka laʻana, inā loaʻa iā ʻoe kahi lula i kapa ʻia ʻo "test" e holo ana i nā palapala me nā hoʻāʻo, ua hana hewa ʻia kahi faila i kapa ʻia ʻo "test", a laila ʻaʻole e kāhea hou ʻia nā hoʻokolohua, no ka mea e noʻonoʻo ʻo make ua kūkulu ʻia ka pahuhopu a ʻaʻole koi. kekahi hana (no ka hoʻoponopono ʻana i ka pilikia ma ka hana, hiki iā ʻoe ke kuhikuhi i ke kuhikuhi ".PHONY: ho'āʻo"). Hoʻokaʻawale loa nā pahuhopu i nā faila a me nā inoa lula.
Pilikia me ka hāʻawi ʻana i hoʻokahi wale nō ʻāpana no nā ʻōlelo aʻoaʻo hui.
Hāʻawi nā Pahuhopu iā ʻoe e hoʻohana i ka helu ʻole o nā ʻāpana i kapa ʻia. No ka laʻana, hiki iā ʻoe ke wehe kaʻawale i ka hōʻailona o kahi faila debug mai ka inoa:
Nā pilikia e pili ana me ka unuhi ʻōlelo shell. No ka laʻana, ka pono e hoʻomalu i ka pakele ʻana o nā hakahaka ma nā faila a me nā inoa papa kuhikuhi, ka pau ʻana o nā kumuwaiwai i ka hoʻomaka ʻana i kahi unuhi unuhi ʻokoʻa i ka wā e hoʻokō ai i kēlā me kēia kauoha, ka wehewehe ʻelua o ke ʻano "$" (hoʻohana ʻia i ka shell a me ka hana), e noʻonoʻo ana i nā indentations.
Hoʻoholo ʻia kēia mau pilikia ma Goals ma o ka hoʻohana ʻana i ka hōʻailona "%" ma kahi o "$" no nā ʻano hoʻololi hui ("$" koe wale no ka pūpū), me ka hoʻohana ʻana i kahi parser. LALR(1), e koi iā ʻoe e hoʻopuni i nā ala a me nā inoa faila me nā puʻupuʻu a hōʻike i nā poloka code me nā pale pale. Hoʻokuʻu ʻia ka poloka kauoha holoʻokoʻa i hoʻokahi manawa o ka shell command, a i loko o ka poloka, ʻae ʻia ka hoʻopili ʻana i nā code arbitrary, me ka ʻole o ka kuhikuhi ʻana i nā wahi kūikawā.
ʻElua mau ʻano hoʻomaka: hana i ke ʻano e hoʻokūkū i nā pahuhopu kūkulu me nā inoa faila (e laʻana, ʻo ka faila "foo.o" e pili ana i ka pahuhopu "%name.o"), a me ke ʻano hoʻopili pololei:
Hoʻoholo ʻia nā manaʻo hui e nā lula kūikawā i hiki ke hoʻohana ʻia e hoʻoholo i ka pono e hoʻohui hou i kahi pahuhopu hui. Inā hana ʻia kahi loulou i kahi faila, a laila e hoʻoholo pololei ʻia kēia ma o ka hōʻailona like ("target" no ka inoa lula a me *file ("target") no ka nānā ʻana i ka faila).
Hiki i ka mea hoʻomohala ke wehewehe i nā hiʻohiʻona kūʻokoʻa o nā loea hui. Ua wehewehe ʻia ka hae "* faile" e ka paʻamau (@{...} e hōʻike ana i ka hoʻopau ʻana i ka hoʻopuka ʻana, a ʻo ka "puka 99" e hōʻailona i ka pono no ke kūkulu hou ʻana):
hoʻolālā * faila (inoa waihona) = @{
ho'āʻo -f % filename || puka 99
no ka f i %