1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
|
.\" 2000 PTM Przemek Borys <pborys@dione.ids.pl>
.TH MAKE 1 "22 sierpnia 1989" "GNU" "LOKALNE KOMENDY UŻYTKOWNIKA"
.SH NAZWA
make \- narzędzie GNU make do obsługi grup programów
.SH SKŁADNIA
.B "make "
[
.B \-f
.I makefile
] [ opcja ] ...
cel ...
.SH OSTRZEŻENIE
Ta strona podręcznika man jest ekstraktem dokumentacji
.I 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,
.BR make.info ,
który został stworzony ze źródła Texinfo
.BR 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.
.SH OPIS
\fI Uwaga! To tłumaczenie może być nieaktualne!\fP
.PP
.LP
Celem istnienia narzędzia
.I 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
.IR make ,
napisaną przez Richarda Stallmana, zwanego wujkiem Ryśkiem i Rolanda
McGratha.
Nasze przykłady to programy w C, gdyż są one najpopularniejsze.
.I Make
może być jednak używany z dowolnym językiem programowania, którego
kompilator można uruchomić z linii poleceń.
W rzeczywistości,
.I 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.)
.LP
Aby przygotować się do używania
.IR make ,
musisz napisać plik o nazwie
.IR 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).
.LP
Gdy istnieje już potrzebny Makefile, za każdą zmianą plików źródłowych
wystarczy proste polecenie powłoki:
.sp 1
.RS
.B make
.RE
.sp 1
zajmie się ono wszelkimi niezbędnymi rekompilacjami.
Program
.I 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.
.LP
W rzeczywistości (patrząc fizycznie),
.I make
wykonuje komendy
.I Makefile
w celu odświeżenia jednego lub więcej
.IR celów ,
gdzie
.I cel
jest zwykle programem. (Ściślej, \fIcel\fR 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
\fR--przyp.tłum.)
Jeśli nie ma podanej żadnej opcji
.BR \-f ,
make szuka plików Makefile pod następującymi nazwami:
.IR GNUmakefile ,
.IR makefile
i
.IR Makefile .
Obowiązuje podana kolejność. Najpopularniejsze w użyciu są nazwy
\fIMakefile\fR, gdyż są przenośne i pojawiają się na początku posortowanego
listingu plików.
.LP
Jeśli plik
.I Makefile
jest okreslony jako `\-', to jest nim standardowe wejście.
.LP
.I 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.
.SH OPCJE
.sp 1
.TP 0.5i
.B \-b
.TP 0.5i
.B \-m
Opcje te są ignorowane i istnieją dla zgodności z innymi wersjami
.IR make .
.TP 0.5i
.BI "\-C " katalog
Zmienia przed odczytywaniem plików Makefile katalog bieżący na
.IR katalog .
Jeśli podanych jest wiele opcji
.B \-C
to każda jest interpretowana względem poprzedniej:
.BR "\-C " /
.BR "\-C " etc
jest równoważne
.BR "\-C " /etc.
Jest to zazwyczaj używane w rekursywnych wywołaniach
.IR make .
.TP 0.5i
.B \-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
.IR make .
.TP 0.5i
.B \-e
Daje zmiennym środowiskowym pierwszeństwo nad zmiennymi plików Makefile.
.TP 0.5i
.BI "\-f " plik
Jako Makefile użyj
.IR pliku .
.TP 0.5i
.B \-i
Ignoruj wszelkie błędy komendy wykonywanych przy odświeżaniu plików.
.TP 0.5i
.BI "\-I " katalog
Podaje
.IR katalog ,
w którym szukać załączanych (included) plików Makefile.
Jeśli podanych jest kilka opcji
.BR \-I ,
to są on przeszukiwane w podanej kolejności.
W przeciwieństwie do innych flag
.IR make ,
katalogi podane flagami
.B \-I
mogą następować bezpośrednio po fladze:
.BI \-I dir
jest równoważne
.BI "\-I " dir.
Składnia ta jest udostępniona dla kompatybilności z flagą
.B \-I
preprocesora języka C.
.TP 0.5i
.BI "\-j " jobs
Podaje dozwoloną liczbę zadań (komend), którą można wykonywać naraz. Jeśli
jest więcej niż jedna opcja
.BR \-j ,
ostatnia jest znacząca.
Jeśli opcja
.B \-j
jest podana bez argumentu,
.IR make
nie będzie ograniczać liczby możliwych zadań.
.TP 0.5i
.B \-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.
.TP 0.5i
.B \-l
.TP 0.5i
.BI "\-l " obciążenie
Określa, że nie należy uruchamiać nowych zadań (komend) jeśli pracują już
inne, a obciążenie wynosi co najmniej
.I obciążenie
(liczba zmiennoprzecinkowa).
Bez argumentów, usuwany jest poprzedni limit.
.TP 0.5i
.B \-n
Drukuj komendy, które byłyby wykonywane, lecz nie wykonuj ich.
.TP 0.5i
.BI "\-o " plik
Nie odświeżaj pliku
.I plik
nawet jeśli jest starszy niż jego zależności i nie odświeżaj niczego na
konto zmian
.IR pliku .
Ogólnie, plik jest traktowany jako bardzo stary, a jego reguły są
ignorowane.
.TP 0.5i
.B \-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
.B \-v
(patrz niżej).
Aby wydrukować bazę danych bez odświeżania plików, użyj
.B make
.B \-p
.BI \-f /dev/null.
.TP 0.5i
.B \-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.
.TP 0.5i
.B \-r
Eliminuje używanie wbudowanych reguł niejawnych. Czyści też domyślną listę
reguł przyrostkowych.
.TP 0.5i
.B \-s
Ciche działanie; nie drukuje wykonywanych komend.
.TP 0.5i
.B \-S
Anuluje efekty opcji
.BR \-k .
Nie jest to zwykle potrzebne, poza
.I make
rekursywnym, gdzie
.B \-k
może być dziedziczone z wyższych poziomów
.I make
poprzez MAKEFLAGS, lub w wypadku gdy ustawisz
.B \-k
w MAKEFLAGS w swoim środowisku.
.TP 0.5i
.B \-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ń
.IR make .
.TP 0.5i
.B \-v
Drukuj wersję programu
.I 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
.B make
.B \-v
.BI \-f /dev/null.
.TP 0.5i
.B \-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
.IR make .
.TP 0.5i
.BI "\-W " plik
Udaj, że cel
.I plik
został właśnie zmodyfikowany.
Po użyciu z flagą
.BR \-n ,
pokazuje ci to, co stałoby się, gdybyś rzeczywiście zmodyfikował ten plik.
Bez opcji
.BR \-n ,
jest to prawie równoważne uruchomieniu na podanym pliku komendy
.I touch .
Jedyną różnicą jest fakt, że czas modyfikacji jest tu zmieniany tylko w
wyobraźni
.IR make .
.SH "ZOBACZ TAKŻE"
.I "The GNU Make Manual"
.SH BŁĘDY
Zobacz rozdział `Problems and Bugs' w
.IR "The GNU Make Manual" .
.SH AUTOR
Podręcznik ten został stworzony przez Dennisa Morse'a z Uniwersytetu Stanforda.
Został przerobiony przez Rolanda McGratha.
.SH "INFORMACJE O TŁUMACZENIU"
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i
\fImoże nie być aktualne\fR. 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:
.IP
man \-\-locale=C 1 make
.PP
Prosimy o pomoc w aktualizacji stron man \- więcej informacji można znaleźć pod
adresem http://sourceforge.net/projects/manpages\-pl/.
|