make(1) narzędzie GNU make do obsługi grup programów

SKŁADNIA

make [ -f makefile ] [ opcja ] ... cel ...

OSTRZEŻENIE

Ta strona podręcznika man jest ekstraktem dokumentacji GNU make . Jest ona odświeżana tylko od czasu do czasu, gdyż projekt GNU nie używa nroff. Dla kompletnej i aktualnej dokumentacji przeczytaj plik Info, make.info, który został stworzony ze źródła Texinfo make.texinfo.

Od tłumacza: tak naprawdę w wypadku narzędzi takich jak make aktualność nie jest istotna, gdyż z zasady powinny być one (po względem obsługi) jak najkompatybilniejsze z różnymi, nawet "przedpotopowymi" implementacjami.

OPIS

Uwaga! To tłumaczenie może być nieaktualne!

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, zwanego wujkiem Ryśkiem i Rolanda McGratha. Nasze przykłady to programy w C, gdyż są one najpopularniejsze. 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ą. (Np. polskie XFAQ jest zrealizowane na tej zasadzie--przyp. tłum.)

Aby przygotować się do używania make, musisz napisać plik o nazwie Makefile, który opisuje związki zależności między plikami twojego programu (np. obiekt.o musi być rekompilowany po każdej zmianie obiekt.c lub obiekt.h) oraz określa komendy, wykonywane do odświeżania plików (np. gcc -c obiekt.c).

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 danych 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 bazie Makefile.

W rzeczywistości (patrząc fizycznie), make wykonuje komendy Makefile w celu odświeżenia jednego lub więcej celów, gdzie cel jest zwykle programem. (Ściślej, cel jest dowolnym łańcuchem znaków pliku Makefile, który znajduje się na początku linii i kończy się dwukropkiem [za którym znajdują się obiekty zależności], np.

program:program.c program.h

--przyp.tłum.)

Jeśli nie ma podanej żadnej opcji -f, make szuka plików Makefile pod następującymi nazwami: GNUmakefile, makefile i Makefile. Obowiązuje podana kolejność. Najpopularniejsze w użyciu są nazwy Makefile, gdyż są przenośne i pojawiają się na początku posortowanego listingu plików.

Jeśli plik Makefile jest okreslony jako `-', to jest nim standardowe wejście.

make odświeża cel tylko jeśli zależy od plików, które zostały zmienione od czasu utworzenia ostatniego celu, lub jeśli cel jeszcze nie istnieje.

OPCJE

-b
-m
Opcje te są ignorowane i istnieją dla zgodności z innymi wersjami make.
-C 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 rekursywnych wywołaniach make.
-d
Drukuje informacje debuggowe. Informacje te mówią, które pliki wybrano do odświeżania, które czasy modyfikacji były porównywane i z jakimi rezulatatami, 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.
-e
Daje zmiennym środowiskowym pierwszeństwo nad zmiennymi plików Makefile.
-f plik
Jako Makefile użyj pliku.
-i
Ignoruj wszelkie błędy komendy wykonywanych przy odświeżaniu plików.
-I 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 jobs
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ń.
-k
Kontynuuj 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
-l 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.
-n
Drukuj komendy, które byłyby wykonywane, lecz nie wykonuj ich.
-o plik
Nie odświeżaj pliku plik nawet jeśli jest starszy niż jego zależności i nie odświeżaj niczego na konto zmian pliku. Ogólnie, plik jest traktowany jako bardzo stary, a jego reguły są ignorowane.
-p
Drukuje 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. Drukuje to też informacje o wersji, podawane przez przełącznik -v (patrz niżej). Aby wydrukować bazę danych bez odświeżania plików, użyj make -p -f/dev/null.
-q
``Tryb pytania''. Nie uruchamia żadnych komend i niczego nie drukuje; zwraca tylko kod wyjścia, który może być zerowy jeśli cele są świeże, lub niezereowy jeśli są stęchłe.
-r
Eliminuje używanie wbudowanych reguł niejawnych. Czyści też domyślną listę reguł przyrostkowych.
-s
Ciche działanie; nie drukuje wykonywanych komend.
-S
Anuluje efekty opcji -k. Nie jest to zwykle potrzebne, poza make rekursywnym, gdzie -k może być dziedziczone z wyższych poziomów make poprzez MAKEFLAGS, lub w wypadku gdy ustawisz -k w MAKEFLAGS w swoim środowisku.
-t
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.
-v
Drukuj wersję programu make oraz prawa kopiowania, listę autorów i notkę, że nie ma gwarancji. Po wydrukowaniu tej informacji, przetwarzanie działa normalnie. Aby uzyskać informację bez robienia innych rzeczy, użyj make -v -f/dev/null.
-w
Drukuj komunikat, zawierający katalog bieżący przed i po działaniu. Może to być przydatne do ścigania błędów w skomplikowanych zagnieżdżeniach rekursywnego make.
-W plik
Udaj, że cel plik został właśnie zmodyfikowany. Po użyciu z flagą -n, pokazuje ci to, co stałoby się, gdybyś rzeczywiście zmodyfikował 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.

BŁĘDY

Zobacz rozdział `Problems and Bugs' w The GNU Make Manual.

AUTOR

Podręcznik ten został stworzony przez Dennisa Morse'a z Uniwersytetu Stanforda. Został przerobiony przez Rolanda McGratha.

INFORMACJE O TŁUMACZENIU

Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 1 make

Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.