Provided by: manpages-pl_4.27.0-1_all 

NAZWA
make - narzędzie GNU Make do obsługi grup programów
SKŁADNIA
make [OPCJA]... [OBIEKT]...
OPIS
Celem istnienia narzędzia make jest automatyczne określanie, które elementy dużego programu należy
rekompilować oraz wydawanie fizycznych komend rekompilacji. Podręcznik ten opisuje implementację GNU
make, napisaną przez Richarda Stallmana i Rolanda McGratha, a obecnie utrzymywaną przez Paula Smitha.
Nasze przykłady to programy w C, gdyż są one bardzo popularne. Make może być jednak używany z dowolnym
językiem programowania, którego kompilator można uruchomić z linii poleceń. W rzeczywistości, make nie
jest ograniczone do programów. Np. można go używać do opisywania dowolnego zadania, w którym część plików
musi być odświeżana automatycznie na podstawie innych za każdym razem gdy one się zmienią.
Aby przygotować się do używania make, należy utworzyć plik zwany makefile, który opisuje związki
zależności między plikami danego programu oraz udostępnia komendy, wykonywane do odświeżania plików. W
programie, zwykle plik wykonywalny jest aktualizowany z plików obiektów, które z kolei są tworzone przez
kompilację plików źródłowych.
Gdy istnieje już potrzebny makefile, za każdą zmianą plików źródłowych wystarczy proste polecenie
powłoki:
make
zajmie się ono wszelkimi niezbędnymi rekompilacjami. Program make używa opisu z Makefile oraz czasów
modyfikacji plików i w ten sposób decyduje, który z nich odświeżyć. Dla każdego z wymagających
odświeżenia plików wykonywane są komendy, zapisane w pliku makefile.
make wykonuje komendy w makefile w celu odświeżenia jednego lub więcej celów, gdzie cel jest zwykle
programem. Jeśli nie poda się opcji -f, make poszuka plików makefile w następującej kolejności:
GNUmakefile, makefile i Makefile.
Zwykle, powinno się nazywać swoje makefile jako makefile lub Makefile (przy czym zalecamy Makefile,
ponieważ pojawi się on wówczas na początku wypisywanej zawartości katalogu, obok innych ważnych plików
takich jak README). W większości makefile nie zaleca się nazwy sprawdzanej jako pierwsza — GNUmakefile.
Należy jej używać tylko w przypadku makefile, który jest typowy dla GNU Make i nie zostałby zrozumiany
przez inne wersje make. Jeśli makefile wyniesie „-”, odczytywane jest standardowe wejście.
make aktualizuje cel, jeśli zależy on od plików wstępnych, które zostały zmodyfikowane od czasu ostatniej
modyfikacji celu oraz gdy cel nie istnieje.
OPCJE
-b, -m
Opcje te są ignorowane i istnieją dla zgodności z innymi wersjami make.
-B, --always-make
Bezwarunkowo tworzy wszystkie obiekty.
-C katalog, --directory=katalog
Zmienia przed odczytywaniem plików makefile katalog bieżący na katalog. Jeśli podanych jest wiele
opcji -C to każda jest interpretowana względem poprzedniej: -C / -C etc jest równoważne -C /etc.
Jest to zazwyczaj używane w rekurencyjnych wywołaniach make.
-d Wypisuje informacje diagnostyczne. Informacje te mówią, które pliki wybrano do odświeżania, które
czasy modyfikacji były porównywane i z jakimi rezultatami, które pliki wymagają odświeżenia, które
niejawne reguły są stosowane — wszystko co można wymyślić ciekawego o sposobie działania make.
--debug[=FLAGI]
Wyświetla informacje diagnostyczne oprócz zwykłych komunikatów przetwarzania. Jeśli pominie się
FLAGI, to zachowanie jest takie samo, jak gdyby podano -d. FLAGI mogą być dowolną kombinacją
następujących nazw (w tym wszystkich), rozdzielonych przecinkiem lub spacją. Liczy się jedynie
pierwszy znak, resztę można pominąć: all aby wyświetlać wszystkie informacje (odpowiednik -d), basic
— podstawowe, verbose — podstawowe, lecz bardziej szczegółowe, implicit — pokazuje operacje
wyszukiwania wynikające z reguł pośrednich, jobs — szczegóły wywoływania poleceń, makefile —
diagnostyka przy ponownym tworzeniu makefile, print — pokazuje wszelkie uruchamiane przepisy, nawet
gdy są ciche oraz why — pokazuje powody, dlaczego make zdecydował się przebudować każdy cel. Aby
wyłączyć wszystkie poprzednie opcje diagnostyki należy podać none.
-e, --environment-overrides
Daje zmiennym środowiskowym pierwszeństwo nad zmiennymi plików makefile.
-E łańcuch, --eval łańcuch
Interpretuje łańcuch przy pomocy funkcji eval, przed przetworzeniem plików makefile.
-f plik, --file=plik, --makefile=PLIK
Jako makefile używa pliku.
-i, --ignore-errors
Ignoruje wszelkie błędy komend wykonywanych przy odświeżaniu plików.
-I katalog, --include-dir=katalog
Podaje katalog, w którym szukać załączanych (included) plików makefile. Jeśli podanych jest kilka
opcji -I, to są on przeszukiwane w podanej kolejności. W przeciwieństwie do innych flag make,
katalogi podane flagami -I mogą następować bezpośrednio po fladze: -Idir jest równoważne -I dir.
Składnia ta jest udostępniona dla kompatybilności z flagą -I preprocesora języka C.
-j [zadania], --jobs[=zadania]
Podaje dozwoloną liczbę zadań (komend), którą można wykonywać naraz. Jeśli jest więcej niż jedna
opcja -j, ostatnia jest znacząca. Jeśli opcja -j jest podana bez argumentu, make nie będzie
ograniczać liczby możliwych zadań.
--jobserver-style=styl
Styl jobserver, który ma być używany. Styl może wynosić fifo, pipe lub sem (tylko Windows).
-k, --keep-going
Kontynuuje ile się da, po błędzie. Chociaż cel, który się nie powiódł i zależności na nim się
opierające nie mogą być zbudowane, to można przetworzyć inne zależności celów.
-l [obciążenie], --load-average[=obciążenie]
Określa, że nie należy uruchamiać nowych zadań (komend) jeśli pracują już inne, a obciążenie wynosi
co najmniej obciążenie (liczba zmiennoprzecinkowa). Bez argumentów, usuwany jest poprzedni limit.
-L, --check-symlink-times
Używa ostatniego mtime między dowiązaniem a celem.
-n, --just-print, --dry-run, --recon
Wypisuje komendy, które byłyby wykonywane, lecz nie wykonuje ich (z wyjątkiem pewnych okoliczności).
-o plik, --old-file=plik, --assume-old=plik
Nie odświeża pliku plik nawet jeśli jest starszy niż jego zależności i nie odświeża niczego na konto
zmian pliku. Ogólnie, plik jest traktowany jako bardzo stary, a jego reguły są ignorowane.
-O[typ], --output-sync[=typ]
Przy uruchamianiu wielu zadań równoległe za pomocą -j, upewnia się, że wynik wszystkich zadań jest
łączony, zamiast przepleciony pomiędzy sobą. Jeśli nie poda się typu lub gdy wynosi on target,
grupowany jest wynik całego przepisu dla wszystkich celów. Jeśli typ wynosi line, grupowany jest
wynik każdego wiersza polecenia z przepisu. Jeśli typem jest recurse, grupowany jest wynik każdego
rekurencyjnego make. Jeśli typ wynosi none, synchronizacja wyjścia jest wyłączona.
-p, --print-data-base
Wypisuje bazę danych (reguły i wartości zmiennych), które wynikają z odczytanych plików Makefile.
Następnie wykonuje się w trybie normalnym, chyba że podano inaczej. Wypisuje to też informacje o
wersji, podawane przez przełącznik -v (patrz niżej). Aby wypisać bazę danych bez odświeżania plików,
proszę użyć make -p -f/dev/null.
-q, --question
„Tryb pytania”. Nie uruchamia żadnych komend i niczego nie wypisuje; zwraca tylko status
zakończenia, który może być zerowy jeśli cele są świeże, lub niezerowy w innym przypadku.
-r, --no-builtin-rules
Eliminuje używanie wbudowanych reguł niejawnych. Czyści też domyślną listę reguł przyrostkowych.
-R, --no-builtin-variables
Wyłącza definiowanie wbudowanych zmiennych.
-s, --silent, --quiet
Ciche działanie; nie wypisuje wykonywanych komend.
--no-silent
Wyłącza -s.
-S, --no-keep-going, --stop
Wyłącza -k.
-t, --touch
Dotyka plików (zaznacza je jako odświeżone, bez zmieniania zawartości), zamiast normalnego
uruchamiania komend. Jest to używane do udawania, że komendy zostały wykonane w celu ogłupienia
przyszłych wywołań make.
--trace
Wypisywana jest informacja o dyspozycji każdego celu (dlaczego cel jest przebudowywany i jakie
polecenia są uruchamiane w celu przebudowania go).
-v, --version
Wyświetla wersję make, informację o prawach autorskich, listę autorów oraz zastrzeżenie o braku
gwarancji.
-w, --print-directory
Wypisuje komunikat, zawierający katalog bieżący przed i po działaniu. Może to być przydatne do
śledzenia błędów w skomplikowanych zagnieżdżeniach rekursywnego make.
--no-print-directory
Wyłącza -w, nawet jeśli było ono włączone domyślnie.
--shuffle[=TRYB]
Włącza tasowanie kolejności celów i zależności wstępnych. TRYB jest jednym z: none, aby wyłączyć
tasowanie, random aby tasować zależności wstępne w losowej kolejności, reverse, aby rozważać
zależności wstępne w odwrotnej kolejności lub liczba <ziarno>, która włącza tryb random z podaną
wartością ziarna. Jeśli pominie się TRYB, domyślną wartością jest random.
-W plik, --what-if=plik, --new-file=plik, --assume-new=plik
Udaje, że cel plik został właśnie zmodyfikowany. Po użyciu z flagą -n, pokazuje to, co stałoby się,
gdyby rzeczywiście zmodyfikowano ten plik. Bez opcji -n, jest to prawie równoważne uruchomieniu na
podanym pliku komendy touch. Jedyną różnicą jest fakt, że czas modyfikacji jest tu zmieniany tylko w
wyobraźni make.
--warn-undefined-variables
Ostrzega przy odwołaniach do niezdefiniowanych zmiennych.
STATUS ZAKOŃCZENIA
GNU Make kończy działanie z zerem, jeśli wszystkie pliki makefile zostały pomyślnie przeanalizowane i nie
wystąpiły cele, których nie udało się zbudować. Status o wartości jeden zostanie zwrócony jeśli podano
-q, a make stwierdził, że cel wymaga przebudowania. Status o wartości dwa oznacza wystąpienie błędów.
ZOBACZ TAKŻE
Pełna dokumentacja dla programu make jest utrzymywana jako podręcznik Texinfo. Jeśli programy info oraz
make są właściwie zainstalowane, polecenie
info make
powinno dać dostęp do pełnego podręcznika.
USTERKI
Zob. rozdział „Problems and Bugs” w The GNU Make Manual.
AUTOR
Podręcznik ten został stworzony przez Dennisa Morse'a z Uniwersytetu Stanforda. Dalsze aktualizacje
wprowadził Mike Frysinger. Podręcznik został przepisany przez Rolanda McGratha. Utrzymuje go Paul Smith.
PRAWA AUTORSKIE
Copyright © 1992-1993, 1996-2023 Free Software Foundation, Inc. Ten plik jest częścią GNU make.
GNU Make jest wolnym oprogramowaniem; można go dystrybuować i/lub modyfikować zgodnie z warunkami
licencji GNU General Public License opublikowanej przez Free Software Foundation; w wersji 3 Licencji lub
(wedle uznania) późniejszej.
GNU Make rozpowszechniany jest z nadzieją, iż będzie użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI,
nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu
uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.
Wraz z make powinieneś otrzymać egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public
License) - zob. https://www.gnu.org/licenses/.
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl> i Michał Kułach
<michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
GNU 26 maja 2023 r. MAKE(1)