.\" -*- coding: UTF-8 -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH MAKE 1 "26 maja 2023 r." GNU "Polecenia użytkownika" .SH NAZWA make \- narzędzie GNU Make do obsługi grup programów .SH SKŁADNIA \fBmake\fP [\fIOPCJA\fP]... [\fIOBIEKT\fP]... .SH OPIS .LP Celem istnienia narzędzia \fBmake\fP jest automatyczne określanie, które elementy dużego programu należy rekompilować oraz wydawanie fizycznych komend rekompilacji. Podręcznik ten opisuje implementację GNU \fBmake\fP, 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. \fBMake\fP może być jednak używany z dowolnym językiem programowania, którego kompilator można uruchomić z linii poleceń. W rzeczywistości, \fBmake\fP 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ą. .LP Aby przygotować się do używania \fBmake\fP, należy utworzyć plik zwany \fImakefile\fP, 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. .LP Gdy istnieje już potrzebny makefile, za każdą zmianą plików źródłowych wystarczy proste polecenie powłoki: .sp 1 .RS \fBmake\fP .RE .sp 1 zajmie się ono wszelkimi niezbędnymi rekompilacjami. Program \fBmake\fP 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. .LP \fBmake\fP wykonuje komendy w \fImakefile\fP w celu odświeżenia jednego lub więcej \fIcelów\fP, gdzie \fIcel\fP jest zwykle programem. Jeśli nie poda się opcji \fB\-f\fP, \fBmake\fP poszuka plików makefile w następującej kolejności: \fIGNUmakefile\fP, \fImakefile\fP i \fIMakefile\fP. .LP Zwykle, powinno się nazywać swoje makefile jako \fImakefile\fP lub \fIMakefile\fP (przy czym zalecamy \fIMakefile\fP, ponieważ pojawi się on wówczas na początku wypisywanej zawartości katalogu, obok innych ważnych plików takich jak \fIREADME\fP). W większości makefile nie zaleca się nazwy sprawdzanej jako pierwsza \[em] \fIGNUmakefile\fP. Należy jej używać tylko w przypadku makefile, który jest typowy dla GNU Make i nie zostałby zrozumiany przez inne wersje \fBmake\fP. Jeśli \fImakefile\fP wyniesie \[Bq]\-\[rq], odczytywane jest standardowe wejście. .LP \fBmake\fP 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. .SH OPCJE .sp 1 .TP 0.5i \fB\-b\fP, \fB\-m\fP Opcje te są ignorowane i istnieją dla zgodności z innymi wersjami \fBmake\fP. .TP 0.5i \fB\-B\fP, \fB\-\-always\-make\fP Bezwarunkowo tworzy wszystkie obiekty. .TP 0.5i \fB\-C\fP \fIkatalog\fP, \fB\-\-directory=\fP\fIkatalog\fP Zmienia przed odczytywaniem plików makefile katalog bieżący na \fIkatalog\fP. Jeśli podanych jest wiele opcji \fB\-C\fP to każda jest interpretowana względem poprzedniej: \fB\-C / \-C etc\fP jest równoważne \fB\-C /etc\fP. Jest to zazwyczaj używane w rekurencyjnych wywołaniach \fBmake\fP. .TP 0.5i \fB\-d\fP 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 \[em] wszystko co można wymyślić ciekawego o sposobie działania \fBmake\fP. .TP 0.5i \fB\-\-debug\fP[\fB=\fP\fIFLAGI\fP] Wyświetla informacje diagnostyczne oprócz zwykłych komunikatów przetwarzania. Jeśli pominie się \fIFLAGI\fP, to zachowanie jest takie samo, jak gdyby podano \fB\-d\fP. \fIFLAGI\fP mogą być dowolną kombinacją następujących nazw (w tym wszystkich), rozdzielonych przecinkiem lub spacją. Liczy się jedynie pierwszy znak, resztę można pominąć: \fIall\fP aby wyświetlać wszystkie informacje (odpowiednik \fB\-d\fP), \fIbasic\fP \[em] podstawowe, \fIverbose\fP \[em] podstawowe, lecz bardziej szczegółowe, \fIimplicit\fP \[em] pokazuje operacje wyszukiwania wynikające z reguł pośrednich, \fIjobs\fP \[em] szczegóły wywoływania poleceń, \fImakefile\fP \[em] diagnostyka przy ponownym tworzeniu makefile, \fIprint\fP \[em] pokazuje wszelkie uruchamiane przepisy, nawet gdy są ciche oraz \fIwhy\fP \[em] pokazuje powody, dlaczego \fBmake\fP zdecydował się przebudować każdy cel. Aby wyłączyć wszystkie poprzednie opcje diagnostyki należy podać \fInone\fP. .TP 0.5i \fB\-e\fP, \fB\-\-environment\-overrides\fP Daje zmiennym środowiskowym pierwszeństwo nad zmiennymi plików makefile. .TP 0.5i \fB\-E\fP \fIłańcuch\fP, \fB\-\-eval\fP \fIłańcuch\fP Interpretuje \fIłańcuch\fP przy pomocy funkcji \fBeval\fP, przed przetworzeniem plików makefile. .TP 0.5i \fB\-f\fP \fIplik\fP, \fB\-\-file=\fP\fIplik\fP, \fB\-\-makefile=\fP\fIPLIK\fP Jako makefile używa \fIpliku\fP. .TP 0.5i \fB\-i\fP, \fB\-\-ignore\-errors\fP Ignoruje wszelkie błędy komend wykonywanych przy odświeżaniu plików. .TP 0.5i \fB\-I\fP \fIkatalog\fP, \fB\-\-include\-dir=\fP\fIkatalog\fP Podaje \fIkatalog\fP, w którym szukać załączanych (included) plików makefile. Jeśli podanych jest kilka opcji \fB\-I\fP, to są on przeszukiwane w podanej kolejności. W przeciwieństwie do innych flag \fBmake\fP, katalogi podane flagami \fB\-I\fP mogą następować bezpośrednio po fladze: \fB\-I\fP\fIdir\fP jest równoważne \fB\-I \fP\fIdir\fP. Składnia ta jest udostępniona dla kompatybilności z flagą \fB\-I\fP preprocesora języka C. .TP 0.5i \fB\-j\fP [\fIzadania\fP], \fB\-\-jobs\fP[\fB=\fP\fIzadania\fP] Podaje dozwoloną liczbę \fIzadań\fP (komend), którą można wykonywać naraz. Jeśli jest więcej niż jedna opcja \fB\-j\fP, ostatnia jest znacząca. Jeśli opcja \fB\-j\fP jest podana bez argumentu, \fBmake\fP nie będzie ograniczać liczby możliwych zadań. .TP 0.5i \fB\-\-jobserver\-style=\fP\fIstyl\fP Styl jobserver, który ma być używany. \fIStyl\fP może wynosić \fBfifo\fP, \fBpipe\fP lub \fBsem\fP (tylko Windows). .TP 0.5i \fB\-k\fP, \fB\-\-keep\-going\fP 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. .TP 0.5i \fB\-l\fP [\fIobciążenie\fP], \fB\-\-load\-average\fP[\fB=\fP\fIobciążenie\fP] Określa, że nie należy uruchamiać nowych zadań (komend) jeśli pracują już inne, a obciążenie wynosi co najmniej \fIobciążenie\fP (liczba zmiennoprzecinkowa). Bez argumentów, usuwany jest poprzedni limit. .TP 0.5i \fB\-L\fP, \fB\-\-check\-symlink\-times\fP Używa ostatniego mtime między dowiązaniem a celem. .TP 0.5i \fB\-n\fP, \fB\-\-just\-print\fP, \fB\-\-dry\-run\fP, \fB\-\-recon\fP Wypisuje komendy, które byłyby wykonywane, lecz nie wykonuje ich (z wyjątkiem pewnych okoliczności). .TP 0.5i \fB\-o\fP \fIplik\fP, \fB\-\-old\-file=\fP\fIplik\fP, \fB\-\-assume\-old=\fP\fIplik\fP Nie odświeża pliku \fIplik\fP nawet jeśli jest starszy niż jego zależności i nie odświeża niczego na konto zmian \fIpliku\fP. Ogólnie, plik jest traktowany jako bardzo stary, a jego reguły są ignorowane. .TP 0.5i \fB\-O\fP[\fItyp\fP], \fB\-\-output\-sync\fP[\fB=\fP\fItyp\fP] Przy uruchamianiu wielu zadań równoległe za pomocą \fB\-j\fP, upewnia się, że wynik wszystkich zadań jest łączony, zamiast przepleciony pomiędzy sobą. Jeśli nie poda się \fItypu\fP lub gdy wynosi on \fBtarget\fP, grupowany jest wynik całego przepisu dla wszystkich celów. Jeśli \fItyp\fP wynosi \fBline\fP, grupowany jest wynik każdego wiersza polecenia z przepisu. Jeśli \fItypem\fP jest \fBrecurse\fP, grupowany jest wynik każdego rekurencyjnego make. Jeśli \fItyp\fP wynosi \fBnone\fP, synchronizacja wyjścia jest wyłączona. .TP 0.5i \fB\-p\fP, \fB\-\-print\-data\-base\fP 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 \fB\-v\fP (patrz niżej). Aby wypisać bazę danych bez odświeżania plików, proszę użyć \fImake \-p \-f/dev/null\fP. .TP 0.5i \fB\-q\fP, \fB\-\-question\fP \[Bq]Tryb pytania\[rq]. 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. .TP 0.5i \fB\-r\fP, \fB\-\-no\-builtin\-rules\fP Eliminuje używanie wbudowanych reguł niejawnych. Czyści też domyślną listę reguł przyrostkowych. .TP 0.5i \fB\-R\fP, \fB\-\-no\-builtin\-variables\fP Wyłącza definiowanie wbudowanych zmiennych. .TP 0.5i \fB\-s\fP, \fB\-\-silent\fP, \fB\-\-quiet\fP Ciche działanie; nie wypisuje wykonywanych komend. .TP 0.5i \fB\-\-no\-silent\fP Wyłącza \fB\-s\fP. .TP 0.5i \fB\-S\fP, \fB\-\-no\-keep\-going\fP, \fB\-\-stop\fP Wyłącza \fB\-k\fP. .TP 0.5i \fB\-t\fP, \fB\-\-touch\fP 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ń \fBmake\fP. .TP 0.5i \fB\-\-trace\fP Wypisywana jest informacja o dyspozycji każdego celu (dlaczego cel jest przebudowywany i jakie polecenia są uruchamiane w celu przebudowania go). .TP 0.5i \fB\-v\fP, \fB\-\-version\fP Wyświetla wersję \fBmake\fP, informację o prawach autorskich, listę autorów oraz zastrzeżenie o braku gwarancji. .TP 0.5i \fB\-w\fP, \fB\-\-print\-directory\fP 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 \fBmake\fP. .TP 0.5i \fB\-\-no\-print\-directory\fP Wyłącza \fB\-w\fP, nawet jeśli było ono włączone domyślnie. .TP 0.5i \fB\-\-shuffle\fP[\fB=\fP\fITRYB\fP] Włącza tasowanie kolejności celów i zależności wstępnych. \fITRYB\fP jest jednym z: \fInone\fP, aby wyłączyć tasowanie, \fIrandom\fP aby tasować zależności wstępne w losowej kolejności, \fIreverse\fP, aby rozważać zależności wstępne w odwrotnej kolejności lub liczba \fI\fP, która włącza tryb \fIrandom\fP z podaną wartością \fIziarna\fP. Jeśli pominie się \fITRYB\fP, domyślną wartością jest \fIrandom\fP. .TP 0.5i \fB\-W\fP \fIplik\fP, \fB\-\-what\-if=\fP\fIplik\fP, \fB\-\-new\-file=\fP\fIplik\fP, \fB\-\-assume\-new=\fP\fIplik\fP Udaje, że cel \fIplik\fP został właśnie zmodyfikowany. Po użyciu z flagą \fB\-n\fP, pokazuje to, co stałoby się, gdyby rzeczywiście zmodyfikowano ten plik. Bez opcji \fB\-n\fP, jest to prawie równoważne uruchomieniu na podanym pliku komendy \fItouch\fP. Jedyną różnicą jest fakt, że czas modyfikacji jest tu zmieniany tylko w wyobraźni \fBmake\fP. .TP 0.5i \fB\-\-warn\-undefined\-variables\fP Ostrzega przy odwołaniach do niezdefiniowanych zmiennych. .SH "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 \fB\-q\fP, a \fBmake\fP stwierdził, że cel wymaga przebudowania. Status o wartości dwa oznacza wystąpienie błędów. .SH "ZOBACZ TAKŻE" Pełna dokumentacja dla programu \fBmake\fP jest utrzymywana jako podręcznik Texinfo. Jeśli programy \fBinfo\fP oraz \fBmake\fP są właściwie zainstalowane, polecenie .IP \fBinfo make\fP .PP powinno dać dostęp do pełnego podręcznika. .SH USTERKI Zob. rozdział \[Bq]Problems and Bugs\[rq] w \fIThe GNU Make Manual\fP. .SH 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. .SH PRAWA AUTORSKIE Copyright \(co 1992\-1993, 1996\-2023 Free Software Foundation, Inc. Ten plik jest częścią \fIGNU make\fP. .LP 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. .LP 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. .LP Wraz z \fBmake\fP powinieneś otrzymać egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License) \- zob. \fIhttps://www.gnu.org/licenses/\fP. .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .