Make - Линукс команда - Unix команда

make - GNU осигурява полезност за поддържане на групи от програми

резюме

направете [ -f makefile ] [опция] ... цел ...

Внимание

Тази страница е извлечение от документацията на марката GNU. Той се актуализира само от време на време, защото проектът GNU не използва nroff. За пълна текуща документация вижте инфо файла make.info, който е направен от изходния файл Texinfo make.texinfo .

описание

Целта на помощната марка е да определи автоматично кои части от голяма програма трябва да бъдат прекомпилирани и да издадат командите, за да ги прекомпилират. Ръководството описва внедряването на марката GNU, написана от Ричард Столман и Роланд Макграт. Нашите примери показват C програми, тъй като те са най-често срещани, но можете да използвате make с всеки език за програмиране, чийто компилатор може да се изпълнява с shell команда. В действителност, да не се ограничава до програми. Можете да го използвате, за да опишете всяка задача, при която някои файлове трябва да се актуализират автоматично от другите, когато другите се променят.

За да се подготвите да използвате марка , трябва да напишете файл, наречен makefile, който описва взаимоотношенията между файловете във вашата програма, и да коментира командите за актуализиране на всеки файл. В дадена програма обикновено изпълнимият файл се актуализира от обектните файлове, които на свой ред се правят чрез компилиране на изходни файлове.

След като съществува подходящ makefile, всеки път, когато промените някои изходни файлове, тази проста команда shell:

правя

Достатъчно е да се извършат всички необходими ремонти. Програмата " make " използва базата данни за makefile и последното време за промяна на файловете, за да се определи кои от файловете трябва да бъдат актуализирани. За всеки от тези файлове той издава командите, записани в базата данни.

да изпълнява команди в makefile, за да актуализира едно или повече целеви имена , където името обикновено е програма. Ако не е налице опция -f , Make ще потърси файловете makefiles GNUmakefile , makefile и Makefile , в този ред.

Обикновено трябва да се обадите на вашия makefile either makefile или Makefile . (Препоръчваме Makefile, защото се появява видимо близо до началото на директория, в близост до други важни файлове като README .) Провереното първо име, GNUmakefile , не се препоръчва за повечето makefiles. Трябва да използвате това име, ако имате makefile, която е специфична за GNU make , и няма да бъде разбрана от други версии на марката . Ако makefile е "-", стандартният вход се чете.

да актуализирате целта, ако тя зависи от предварителните файлове, които са били променени след последната промяна на целта или ако целта не съществува.

НАСТРОИКИ

-b

Тези опции се игнорират за съвместимост с други версии на марката .

-Дире

Променете директорията директория, преди да прочетете makefiles или да направите нещо друго. Ако са зададени множество- C опции, всеки от тях се интерпретира спрямо предишния: -C / -C и т.н. е еквивалентен на -C / и т.н. Това обикновено се използва с рекурсивни покани за марка .

Печат на информация за отстраняване на грешки в допълнение към нормалната обработка. Информацията за отстраняване на грешки показва кои файлове се разглеждат за преобразуване, кои файлови времена се сравняват и с какви резултати, кои файлове всъщност трябва да бъдат преработени, кои имплицитни правила се вземат под внимание и как се прилагат - всичко интересно за това как взема решение какво да правя.

Дайте променливи, взети от предимството на околната среда, спрямо променливите от makefiles.

-f файл

Използвайте файла като makefile.

-i

Игнорирайте всички грешки в изпълняваните команди, за да пресъздадете файлове.

- Аз реж

Задава директория директория за търсене на включени makefiles. Ако няколко опции се използват за задаване на няколко директории, директорите се търсят в посочения ред. За разлика от аргументите за други знамена на марката , директории, дадени с флагове -I могат да идват непосредствено след знамето: -Има разрешение, както и - аз реж. Този синтаксис е разрешен за съвместимост с флага " I" на препроцесора.

-J работни места

Определя броя на заданията (командите), които да се изпълняват едновременно. Ако има повече от една опция -j , последната е ефективна. Ако опцията -j е дадена без аргумент, тя няма да ограничи броя на заданията, които могат да се изпълняват едновременно.

-k

Продължете колкото е възможно повече след грешка. Докато целта, която не е успешна, и тези, които зависят от нея, не могат да бъдат преработени, другите зависимости на тези цели могат да бъдат обработени едновременно.

-l

-l натоварване

Указва, че не трябва да се стартират нови задания (команди), ако има други задачи и средно натоварване е най-малко натоварване (число с плаваща запетая). Без аргумент премахва предишното ограничение на товара.

Разпечатайте командите, които ще бъдат изпълнени, но не ги изпълнявайте.

файл

Не преоформяйте файловия файл, дори ако е по-стар от неговите зависимости и не римейквайте нищо поради промени в файла . По същество файлът се третира като много стар и правилата му се игнорират.

-p

Печат на базата данни (правила и стойности на променливите), които са резултат от четенето на makefiles; след това да се изпълни както обикновено или по друг начин. Това също така отпечатва информацията за версията, дадена от превключвателя -v (вижте по-долу). За да отпечатате базата данни без да се опитвате да пресъздавате файлове, използвайте make -p -f / dev / null.

-q

`` Режим на въпроси ''. Не изпълнявайте команди или не отпечатвайте нищо; просто връщане на изход статут, който е нула, ако определените цели вече са актуални, nonzero иначе.

-r

Премахване на използването на вградените имплицитни правила. Също така изчистете списъка по подразбиране на суфиксите за правилата за суфикси.

Тиха работа; не отпечатвайте командите, когато те се изпълняват.

Отменете ефекта от опцията -k . Това никога не е необходимо, освен в рекурсивна марка, където -k може да бъде наследен от най-високо ниво чрез MAKEFLAGS или ако сте задали -k в MAKEFLAGS във вашата среда.

-T

Докоснете файловете (маркирайте ги актуални, без да ги променяте), вместо да изпълняват командите си. Това се използва, за да се преструва, че командите са били направени, за да заблудят бъдещите призиви за марка .

-V

Печат на версията на програмата за създаване плюс авторско право, списък с автори и известие, че няма гаранция.

-w

Отпечатайте съобщение, съдържащо работната директория преди и след друга обработка. Това може да е полезно за проследяване на грешки от сложни гнезда на рекурсивни команди за създаване.

-W файл

Предпочитайте, че целевият файл току-що бе променен. Когато се използва с флагът -n , това ви показва какво ще се случи, ако сте променили този файл. Без -n , тя е почти същата като изпълняването на команда за докосване на даден файл, преди да се изпълни , с изключение на това, че времето за модификация се променя само във въображението на марката .