Celem narzędzia make jest automatyczne określenie, które części dużego programu wymagają ponownej kompilacji i wydanie komend rekompilacji. Podręcznik opisuje implementację GNU marki, którą napisali Richard Stallman i Roland McGrath. Te przykłady pokazują programy w języku C, ponieważ są one najczęstsze, ale można użyć polecenia make w dowolnym języku programowania, którego kompilator można uruchomić za pomocą polecenia powłoki. W rzeczywistości marka nie ogranicza się do programów. Możesz go użyć do opisania dowolnego zadania, w którym niektóre pliki muszą być automatycznie aktualizowane od innych, gdy inne się zmieniają.
Uwaga: Ta strona jest fragmentem dokumentacji GNU make . Jest aktualizowany tylko okazjonalnie, ponieważ projekt GNU nie używa nroff. Kompletna, aktualna dokumentacja znajduje się w pliku info make.info, który jest tworzony z pliku źródłowego Texinfo make.texinfo.
Składnia i przygotowanie narzędzia make
robić -fa makefile opcja … cel …
Aby przygotować się do używania make, musisz napisać plik o nazwie makefile, który opisuje relacje między plikami w twoim programie i stwierdza polecenia aktualizacji każdego pliku. Zazwyczaj plik wykonywalny jest aktualizowany z plików obiektowych, które z kolei są tworzone przez kompilowanie plików źródłowych.
Gdy istnieje odpowiedni plik Makefile, za każdym razem, gdy zmieniasz niektóre pliki źródłowe, to proste polecenie powłoki robić wystarcza, aby wykonać wszystkie niezbędne rekompilacje. Program make używa bazy danych Makefile i czasów ostatniej modyfikacji plików, aby zdecydować, które pliki wymagają aktualizacji. Dla każdego z tych plików wydaje polecenia zapisane w bazie danych.
Narzędzie make uruchamia polecenia w makefile, aby zaktualizować jedną lub więcej nazw docelowych, gdzie imię jest zwykle programem. Jeśli nie-fa opcja jest obecna, make będzie szukał plików makefileGNUmakefile, makefile, iMakefile, w tej kolejności.
Zwykle powinieneś zadzwonić do makefile albo makefile albo Makefile. (Zaleca się użycie Makefile ponieważ pojawia się w widocznym miejscu na początku listy katalogów, tuż obok innych ważnych plików, takich jakREADME.) Sprawdzony pod kątem nazw plik GNUmake nie jest zalecany w przypadku większości plików Makefile. Powinieneś użyć tej nazwy, jeśli masz plik makefile, który jest specyficzny dla GNU make i nie będzie zrozumiany przez inne wersje make. Jeśli jest plik makefile -, standardowe wejście jest czytane.
The robić narzędzie aktualizuje cel, jeśli zależy on od plików wymagań wstępnych, które zostały zmodyfikowane od czasu ostatniej modyfikacji celu lub, jeśli cel nie istnieje.
Opcje
The -b i -m opcje są ignorowane w celu zapewnienia zgodności z innymi wersjami make.
-C reż zmieni katalog na katalog przed odczytaniem plików Makefile lub wykonaniem czegokolwiek innego. Jeśli jest wiele-DO opcje są określone, każdy jest interpretowany względem poprzedniego:-DO/ -C itd jest równa-C / itp. Zazwyczaj jest to używane z rekursywnymi inwokacjami make.
The -re opcja wydrukuje informacje debugowania oprócz normalnego przetwarzania. Informacje dotyczące debugowania określają, które pliki są brane pod uwagę przy przerabianiu, które pliki są porównywane i jakie wyniki, które pliki muszą zostać przetworzone, które są uwzględniane i które są stosowane - wszystko, co ciekawe, w jaki sposób zdecydować, co robić .
The -mi opcja daje zmienne wzięte z priorytetu środowiska nad zmiennymi z plików Makefile.
The -fa plik opcja używa plik jako plik Makefile.
The -ja opcja ignoruje wszystkie błędy w komendach wykonywanych w celu przerobienia plików.
The -JA reż opcja określa katalog reż aby wyszukać dołączone pliki makefile. Jeśli kilka-JA opcje służą do określania kilku katalogów, katalogi są wyszukiwane w określonej kolejności. W przeciwieństwie do argumentów innych flag make, katalogi podane przy pomocy-JA flagi mogą nadejść bezpośrednio po flagę:-Idir jest dozwolone, a także-I reż . Ta składnia jest dopuszczalna dla kompatybilności z preprocesorem C-JA flaga.
The -j miejsca pracy opcja określa liczbę zadań (poleceń) do uruchomienia jednocześnie. Jeśli jest więcej niż jeden-jot opcja, ta ostatnia jest skuteczna. Jeśli-jot opcja podana jest bez argumentów, make nie ograniczy liczby zadań, które mogą działać jednocześnie.
The -k opcja jest kontynuowana w miarę możliwości po wystąpieniu błędu; podczas gdy cel, który się nie powiódł, oraz tych, które od niego zależą, nie mogą zostać przetworzone, pozostałe zależności tych celów mogą być przetwarzane w taki sam sposób.
The -l i -l ładowanie opcje określają, że nie należy uruchamiać nowych zadań (komend), jeśli istnieją inne zadania uruchomione, a średnia obciążenia jest co najmniejobciążenie (liczba zmiennoprzecinkowa). Bez argumentów usuwa poprzedni limit obciążenia.
The -n opcja wyświetla polecenia, które zostaną wykonane, ale ich nie wykona.
The -o plik opcja nie przerabia plik nawet jeśli jest starsza niż jego zależności i nie przerabia niczego ze względu na zmiany w plik . Zasadniczo plik traktowany jest jako bardzo stary, a jego reguły są ignorowane.
The -p opcja drukuje bazę danych (reguły i wartości zmiennych), która wynika z odczytania plików Makefile. Następnie wykonuje się tak jak zwykle lub w inny sposób określony.To również drukuje informacje o wersji podane przez-v przełącznik (patrz poniżej). Aby wydrukować bazę danych bez próby przerobienia plików, użyjrobić -p -f / dev / null .
The -q opcja ustawia tryb pytania. Nie uruchamiaj żadnych poleceń ani niczego nie drukuj, po prostu zwracaj kod zakończenia, który wynosi zero, jeśli określone cele są już aktualne, w przeciwnym razie nie są zerowe.
The -r opcja eliminuje użycie wbudowanych reguł niejawnych. Usuwa również domyślną listę przyrostków dla reguł sufiksów.
The -s opcja wycisza operację. Nie drukuje poleceń podczas ich wykonywania.
The -S opcja anuluje efekt-k opcja. To nigdy nie jest konieczne, z wyjątkiem make rekurencyjnego gdzie-k może zostać odziedziczony po make z poziomu MAKEFLAGS lub jeśli ustawisz-k w MAKEFLAGACH w twoim środowisku.
The -t opcja dotyka plików (zaznacza je, nie zmieniając ich), zamiast uruchamiać ich polecenia. Służy to udawaniu, że polecenia zostały wykonane, w celu oszukania przyszłych inwokacji make.
The -v opcja wyświetla wersję programu make wraz z prawami autorskimi, listę autorów i informację, że nie ma gwarancji.
The -w opcja drukuje wiadomość zawierającą katalog roboczy przed i po innym przetwarzaniu. Może to być przydatne do śledzenia błędów ze skomplikowanych gniazd rekurencyjnej marki polecenia.
The -W plik opcja udaje, że cel plik właśnie został zmodyfikowany. Używany z-n flag, pokazuje, co by się stało, gdybyś zmodyfikował ten plik. Bez-n, to prawie to samo, co uruchamianiedotknąć komenda na podanym pliku przed uruchomieniem make, tyle że czas modyfikacji zmienia się tylko w wyobraźni make.




