Make - Linux Command - Unix команадсы

make - GNU бағдарламалардың топтарын қолдау үшін утилитасын жасайды

Синопсис

[ -f makefile ] [опция] ... мақсатты жасаңыз ...

Ескерту

Бұл бет GNU жасау құжаттамасының үзіндісі . Ол кейде жаңартылады, себебі GNU жобасы нрофты пайдаланбайды. Толық, ағымдағы құжаттаманы make.texinfo Texinfo файлынан жасалатын make.info файлына жүгініңіз .

Сипаттама

Бағдарламалық жасақтама жасаудың мақсаты - ірі бағдарламалардың қандай компоненттерін автоматты түрде қайта жасау керек екенін анықтау және командаларды оларды қайта құрастыру қажет. Нұсқаулық Richard Stallman және Roland McGrath жазған GNU-ны орындауды сипаттайды. Біздің мысалдар C бағдарламаларын көрсетеді, себебі олар ең кең таралған, бірақ компиляторды қабық пәрменімен басқаруға болатын кез келген бағдарламалау тілін қолдануға болады. Шын мәнінде, бағдарламаны тек бағдарламамен шектелмейді. Кейбір файлдар өзгерген кезде кейбір файлдар автоматты түрде жаңартылуы керек кез келген тапсырманы сипаттау үшін оны пайдалануға болады.

Жасауды дайындау үшін, бағдарламаңыздағы файлдар арасындағы қарым-қатынастарды сипаттайтын makefile деп аталатын файлды және әр файлды жаңартуға арналған пәрмендерді жазыңыз. Бағдарламада, әдетте, орындалатын файл жаңартылып тұрады, ол өз кезегінде бастапқы файлдарды құрастыру арқылы жасалады.

Қажетті макефиль бар болғаннан кейін, әрбір қарапайым файлды өзгерткенде, қарапайым қабық пәрмені:

жасау

барлық қажетті қайта жасауды орындау үшін жеткілікті. Жасау бағдарламасы makefile деректер базасын және файлдардың қайсысын жаңартуға шешім қабылдау үшін файлдардың соңғы өзгертілген уақытын пайдаланады. Осы файлдардың әрқайсысы үшін ол дерекқорда жазылған пәрмендерді шығарады.

бір немесе бірнеше мақсатты атауларды жаңарту үшін makefile-де командаларды орындайды, мұнда аты әдетте бағдарлама болып табылады. Егер ешқандай -f опциясы болмаса, GHUmakefile , makefile және Makefile макефилдерін осы ретпен іздеңіз.

Әдетте сіз makefile немесе makefile немесе Makefile деп атауыңыз керек . (Біз Makefile-ге ұсынамыз, себебі ол каталогтар тізімінің басталуына, README сияқты басқа маңызды файлдарға жақын көрінеді). GNUmakefile тексерілген аты көпшілігі makefiles үшін ұсынылмайды. Бұл атауды GNU-ге жасауға арналған макифиль бар болса және оны басқа нұсқаларымен түсінбейтін болса қолданыңыз. Егер makefile `- 'болса, стандартты енгізу оқылады.

Егер мақсат мақсатты болмаса, өзгертілген өзгертілген файлдарға байланысты болса , жаңартуларды мақсатты етеді .

ОПЦИЯЛАР

Бұл опциялар басқа нұсқалармен үйлесімділік үшін еленбейді.

-C dir

Makefiles оқып немесе басқа ештеңе істемей тұрып, каталог каталогына өзгертіңіз. Егер бірнеше -C нұсқалары көрсетілсе, олардың әрқайсысы бұрынғыға қатысты түсіндіріледі: -C / -C және т.б. -C / etc-ға тең. Бұл, әдетте, рекурсивтіліктерді жасау арқылы қолданылады .

-d

Қалыпты өңдеуден басқа, басып шығару туралы ақпаратты басып шығару. Отладка туралы ақпарат қай файлдарды қайта қарауға арналған деп санайды, қандай файлдар уақыттарын салыстыру керек және қандай нәтижелермен, қайсы файлдарды түзету қажет, қайсыбiр ережелердi қарайтын және қолданылатын - барлық шешiмдер туралы қызықты не істеу.

-e

Механизмдердің айнымалы мәндері бойынша қоршаған ортаны қорғаудың басымдықтарынан алынған айнымалыларды беріңіз.

-f файл

Файлды makefile ретінде пайдалану.

-i

Файлдарды түзету үшін орындалатын пәрмендердегі барлық қателерді елемеңіз.

-I dir

Қосылған makefiles-ді іздейтін каталог каталогын анықтайды. Егер бірнеше анықтамаларды көрсету үшін бірнеше I нұсқалары пайдаланылса, каталогтар көрсетілген тәртіпте ізделеді. Тудың басқа жалауларына дәлелдерден айырмашылығы -I жалаулар жалаудан кейін тікелей келуі мүмкін: -I dir , сондай- I- dir. Бұл синтаксис C preprocessor -I жалауымен үйлесімділікке рұқсат етілген.

жұмыс орындары

Бір мезгілде іске қосылатын тапсырмалар санын (пәрмендерді) анықтайды. Егер біреуден көп -J опциясы болса, соңғы біреуі тиімді. Егер -j параметрі дәлелсіз берілсе, бір уақытта іске қосылатын тапсырмалар санын шектемеңіз.

-k

Қате болғаннан кейін мүмкіндігінше жалғастырыңыз. Мақсаты сәтсіз және оған тәуелді болып табылмайтын болса, бұл мақсаттардың басқа тәуелділіктері бірдей өңделуі мүмкін.

-l

-l жүктеме

Басқа жұмыс орындары жұмыс істеп жатса және жүктеме орташа емес болса (құбылмалы нүкте нөмірі) болса, жаңа тапсырмалар (командалар) басталмайтынын көрсетеді. Аргументсіз бұрынғы жүктеме шегі жойылады.

Орындалатын командаларды басып шығарыңыз, бірақ оларды орындамаңыз.

-o файл

Файл файлын оның тәуелділіктерінен ескі болса да қайта жасамаңыз және файлдағы өзгерістердің есебінен ештеңені қайта жасамаңыз. Шындығында файл өте ескі және оның ережелері еленбейді.

-p

Makefile-ді оқудан туындайтын деректер базасын (ережелер мен айнымалы мәндерді) басып шығарыңыз; содан кейін әдеттегідей немесе басқаша көрсетілмесе. Сондай-ақ, -v қосқышы арқылы берілген нұсқа мәліметтерін басып шығарады (төменде қараңыз). Деректер базасын кез-келген файлды қайта жасауға тырыспастан басып шығару үшін make -p -f / dev / null пайдаланыңыз.

-q

`` Сұрақ режимі ''. Ешбір пәрменді орындамаңыз немесе ештеңені басып шығармаңыз; егер көрсетілген нысаналар қазірдің өзінде жаңартылған болса, әйтпесе нөлден тыс шығу күйін қайтарады.

Бекітілген жабық ережелерді пайдалануды болдырмаңыз. Сондай-ақ, suffix ережелерінің әдепкі тізімін тазалаңыз.

Тыныш әрекет; пәрмендерді орындаған кезде басып шығармаңыз.

-k опциясының әсерін болдырмау. Бұл рекурсивті жасаудан басқа кез-келген қажеттілік болмайды , мұнда -k MAKEFLAGS арқылы жоғары деңгейлі жасаудан мұрагер болуы мүмкін немесе егер сіз ортаңыздағы MAKEFLAGS-тан қойсаңыз.

-t

Өздерінің пәрмендерін орындаудың орнына файлдарды түртіңіз (оларды шын мәнінде өзгертпей-ақ оларды белгілеңіз). Бұл болашақ шақыруды ұрлау үшін командалар жасалды деп болжау үшін қолданылады .

-v

Дизайн бағдарламасының нұсқасын және авторлық құқықты, авторлар тізімін және ешқандай кепілдік жоқ екенін ескертуді басып шығарыңыз.

-w

Басқа өңдеуден бұрын және кейін жұмыс каталогын қамтитын хабарды басып шығарыңыз. Бұл рекурсивті жасау командаларының күрделі ұяларынан қателерді бақылау үшін пайдалы болуы мүмкін.

-W файлы

Мақсатты файлдың өзгертілгенін көрсетіңіз. -n жалауымен бірге пайдаланған кезде, бұл файлды өзгерткен кезде не болатынын көрсетеді. Жоқ, жоқ, бұл істі орындаудан бұрын берілген файлдағы сенсорлық пәрменді іске қосу сияқты бірдей, тек модификация уақыты тек қиялдың қиялында ғана өзгертіледі.