Man:Man1/make.1
Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.
Зміст |
Назва
make - знаряддя make GNU для підтримки в робочому стані багаточисельних програм
Стисло
make [-f make-файл] [опції]... [адресати]...
Опис
Метою знаряддя make являється автоматичне визначення, які частини великої програми необхідно перекомпілювати, і віддати відповідні команди для їхньої компіляції. В цьому посібнику описано GNU втілення make, написане Richard Stallman і Roland McGrath. В прикладах використовуються C-програми, оскільки вони найпоширеніші, але ви можете вживати make з будь-якими мовами програмування, чий компілятор можна запустити за допомогою команд оболонки. Насправді, make не обмежується програмами. Ви можете використати його для опису якого-завгодно завдання, де якісь файли необхідно автоматично оновити з інших, коли ці інші змінено.
Для підготовки до використання make, необхідно створити make-файл, з описом взаємовідношень різноманітних файлів вашої програми, і командами для оновлення кожного з них. В програмах, типово, виконуваний файл оновлюється через об'єктні файли, які, у власну чергу, створено завдяки компіляції вихідних текстів програми.
Як тільки існуватиме задовільний make-файл, кожний раз, як ви поміняєте щось у вихідних текстах, вистачить простої оболонкової команди
make
для того, щоб було виконано всі необхідні перекомпіляції. Програма make використовує дані з make-файлу і час останньої модифікації файлів для того, щоб вирішити, які файли потрібно оновити. Для кожного такого файлу, вона виконує відповідну команду з даних make-файлу.
make виконує команди make-файлу для того, щоб оновити одне або більше ім'я-адресат, де ім'ям, типово, являється програма. Якщо опція -f відсутня, make шукатиме make-файли GNUmakefile, makefile або Makefile (у поточному каталозі) саме в цій послідовності.
За звичайних обставин, вам слід назвати ваш make-файл як makefile або Makefile. (Ми радимо назву Makefile, оскільки її краще видно на початку переліку файлів каталогу, поруч з іншими важливими файлами, як скажімо README.) Перше ім'я, що перевіряється, не рекомендовано вживати в більшості випадків. Воно призначено для make-файлів, характерних для make GNU, не зрозумілих іншим версіям make. Якщо make-файл вказано як `-', читатиметься стандартний пристрій вводу.
Оновлення адресату залежить від складових, що можливо було модифіковано з часу останньої зміни самого адресату, або якщо адресату не існує.
Ключі
- -b
- -m
- Ці ключі ігноруються заради сумісності з іншими версіями make.
- -C каталог
- Перейти до вказаного каталогу перед читанням make-файлів або здійсненням інших дій. Якщо задано декілька опцій -C, кожна інтерпретується відносно попередньої: -C / -C /etc рівнозначне -C /etc. Типово, використовується для рекурсивних викликів make.
- -d
- Вивести інформацію зневадження, наряду зі звичайною обробкою. Зневаджувальні повідомлення вказують, які файли необхідно оновити, які мітки часу порівнюються, які файли перекомпільовано, які правила застосовано - словом, все, що може видатись цікавим щодо операцій, здійснюваних make.
- -f файл
- Використати файл як make-файл.
- -i
- Ігнорує всі помилки команд, виконаних для оновлення файлів.
- -I каталог
- Вказує каталог для пошуку там make-файлів. Якщо використати декілька опцій -I, пошук здійснюватиметься у вказаному порядку. На відміну від аргументів решти прапорців make, каталоги, що стоять після -I можна друкувати одразу після прапорця, тобто дозволяється -Iкаталог, так само як -I каталог. Такий синтаксис передбачено для сумісності з прапорцем -I препроцесору C.
- -j завдань
- Вказує кількість завдань (команд), що можна одночасно запустити. Якщо існує більше однієї опції -j, остання візьме гору. Якщо ж вказати -j без аргументу, кількість процесів не обмежуватиметься.
- -k
- Продовжити, наскільки це можливо після помилки. Навіть, якщо адресат і те, що залежить від нього не можна перезібрати, решта взаємозалежностей цих адресатів буде оброблено як звичайно.
- -l
- -l навантаження
- Не розпочинатиме жодних завдань (команд), якщо виконуються інші, і середнє навантаження системи, щонайменше дорівнює вказаному (числу з плаваючою точкою). Без жодних аргументів, скасовує попереднє обмеження навантаження.
- -n
- Виведе команди, які би було виконано, але не виконуватиме їх.
- -o файл
- Не чіпати файл, навіть якщо він старший за залежні від нього, так само не перезбирати нічого, пов'язаного зі змінами у файлі. Фактично, файл вважатиметься дуже старим, і його правила ігноруватимуться.
- -p
- Виведе дані make-файлу (правила і значення змінних), після чого продовжити звичайне виконання, або таке, яке вказано. Це також виводить інформацію про версію make, ніби було вжито ключ -v (дивіться нижче). Щоб вивести дані make-файлу, без перезібрання, скористайтеся з "make -p -f/dev/null".
- -q
- Режим запиту. Не виконувати жодних команд, або виводити що-небудь; просто повернути статус рівний нулю, якщо адресати осучаснені, і ненульовий статус, якщо ні.
- -r
- Скасує використання вбудованих, прихованих правил. Також очистить стандартний список суфіксів, вживаних у суфіксних правилах.
- -s
- Безмовний режим; не друкуватиме команд під час їхнього виконання.
- -S
- Скасовує дію ключа -k. В цьому, звичайно, немає необхідності, за винятком рекурсивного make, де -k, можливо, успадковано від попереднього make рівнем вище, зі встановленою змінною MAKEFLAGS, або коли MAKEFLAGS вашого середовища включає -k.
- -t
- Зачіпає файли (помічає їх як сучасні, не змінюючи їх насправді), замість виконати, внесені там команди. Це застосовується для удавання, ніби команди було виконано, для того, щоб обманути наступні виклики make.
- -v
- Виводить версію програми make, а також авторські права, список авторів, і попередження про відсутність гарантії.
- -w
- Виведе повідомлення з вказівкою робочого каталогу до і після іншої обробки. Це може виявитись корисним для виявлення помилок під час складного гніздування, або рекурсивних викликів make.
- -W файл
- Прикинутись, ніби адресований файл щойно модифіковано. При використанні з прапорцем -n, це продемонструє, що би сталося, якби ви змінили цей файл. Без -n, це рівнозначно виконанню команди touch(1) перед запуском make, за винятком того, що час модифікації змінено тільки в уяві make .
Дивіться також
Посібник make GNU
Вади
Дивіться розділ "Проблеми і вади" в "Посібнику make GNU".
Автор
Цю сторінку посібника складено Dennis Morse зi Стенфордського Університету, і допрацьовано Roland McGrath.

