make - narzędzie GNU make do obsługi grup
programów
make [ -f makefile ] [ opcja ] ... cel
...
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.
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.
- -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.
Zobacz rozdział `Problems and Bugs' w The GNU Make
Manual.
Podręcznik ten został stworzony przez Dennisa
Morse'a z Uniwersytetu Stanforda. Został przerobiony przez Rolanda
McGratha.
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/.