Provided by: manpages-pl_4.23.1-1_all bug

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 jednej lub  więcej  nazw,  gdzie  nazwa  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. FLAGAMI mogą być: a aby wyświetlać
            wszystkie informacje (odpowiednik -d), b — podstawowe, v — podstawowe, lecz bardziej szczegółowe,  i
            —  pokazuje  operacje  wyszukiwania wynikające z reguł pośrednich, j — szczegóły wywoływania poleceń
            oraz m — diagnostyka przy ponownym tworzeniu  makefile.  Aby  wyłączyć  wszystkie  poprzednie  opcje
            diagnostyki należy podać n.

       -e, --environment-overrides
            Daje zmiennym środowiskowym pierwszeństwo nad zmiennymi 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ń.  Gdy  make  wywołuje  pod-make,  wszystkie  instancje  make  będą
            koordynowane,  aby  uruchomić  podaną  liczbę  zadań  jednocześnie;  więcej  informacji  w rozdziale
            RÓWNOLEGŁE MAKE I JOBSERVER.

       --jobserver-fds [R,W]
            Wewnętrzna opcja, której make używa to przekazania numerów  deskryptorów  pliku  odczytu  i  zapisu,
            potoku jobserver, do plików pod-make; więcej szczegółów w rozdziale RÓWNOLEGŁE MAKE I JOBSERVER

       -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.

       -S, --no-keep-going, --stop
            Anuluje efekty opcji -k. Nie jest to zwykle potrzebne, poza make rekurencyjnym, gdzie  -k  może  być
            dziedziczone z wyższych poziomów make poprzez MAKEFLAGS, lub w wypadku gdy ustawi się -k w MAKEFLAGS
            w swoim środowisku.

       -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.

       -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. Dodatkowo, podręcznik jest również dostępny online pod adresem
       https://www.gnu.org/software/make/manual/html_node/index.html

RÓWNOLEGŁE MAKE I JOBSERVER

       Przy użyciu opcji -j, użytkownik może poinstruować  make,  aby  wykonywało  zadania  równolegle.  Podając
       argument liczbowy do -j, można określić górny limit równoległych zadań do uruchomienia.

       Gdy  środowisko  budowania wygląda w ten sposób, że make najwyższego poziomu wywołuje pod-make (np. każdy
       podkatalog zawiera swój Makefile), żadna z instancji make nie wie, jak wiele zadań działa równolegle,  co
       uniemożliwiałoby   utrzymywanie  liczby  zadań  poniżej  narzuconego  limitu,  bez  komunikacji  pomiędzy
       działającymi instancjami make. Choć możliwe są rozwiązania, w których  make  najwyższego  poziomu  działa
       jako  główny  kontrolujący,  można utworzyć też inne mechanizmy synchronizacji, takie jak pamięć dzielona
       czy gniazda, obecna implementacja korzysta jedynie z dzielonego potoku.

       Potok jest tworzony przez proces make najwyższego poziomu i przekazywany do  wszystkie  pod-make.  Proces
       make  najwyższego  poziomu  zapisuje  jednobajtowe  tokeny  N-1  do  potoku  (make najwyższego poziomu ma
       zarezerwować jeden token dla siebie). Gdy jakiś  proces  make  (w  tym  make  najwyższego  poziomu)  musi
       uruchomić  nowe  zadanie,  odczytuje  bajt  z dzielonego potoku. Jeśli nie zostały już żadne tokeny, musi
       poczekać na zwrotne zapisanie tokenu do potoku.  Po  zakończeniu  zadania,  proces  make  zapisuje  token
       zwrotnie  do  potoku (zatem, jeśli token został wykorzystany, odblokowuje pierwszy proces make oczekujący
       na odczytanie tokenu). Ponieważ do potoku zostało zapisane jedynie N-1 tokenów, jednocześnie może działać
       nie więcej niż N zadań.

       Jeśli zadanie do wykonania nie jest zadaniem pod-make, make zamknie deskryptory  pliku  potoku  jobserver
       przed  wywołaniem polecenia, dzięki czemu polecenie nie będzie interferowało z jobserver, a polecenia nie
       napotkają żadnych nietypowych deskryptorów plików.

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-2016 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 powinien być dostarczony egzemplarz Powszechnej Licencji Publicznej GNU (GNU  General  Public
       License) - zob. http://www.gnu.org/licenses/.

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej strony podręcznika są: 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                                              28 lutego 2016                                          MAKE(1)