.\" dpkg manual page - dpkg-architecture(1)
.\"
.\" Copyright ÂŠ 2005 Marcus Brinkmann <brinkmd@debian.org>
.\" Copyright ÂŠ 2005 Scott James Remnant <scott@netsplit.com>
.\" Copyright ÂŠ 2006-2011 Guillem Jover <guillem@debian.org>
.\" Copyright ÂŠ 2009-2012 RaphaĂŤl Hertzog <hertzog@debian.org>
.\"
.\" This is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
.\" This is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program.  If not, see <http://www.gnu.org/licenses/>.
.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH dpkg\-architecture 1 2012\-01\-20 "Projekt Debian" "programy pomocnicze dpkg"
.SH NAZWA
dpkg\-architecture \- ustawia i zwraca architekturę budowania pakietów.
.
.SH SKŁADNIA
\fBdpkg\-architecture\fP [\fIopcja\fP...] [\fIpolecenia\fP]
.PP
.
.SH OPIS
dpkg\-architecture dostarcza sposobu na określenie i ustawienie architektury
budowania oraz architektury docelowej dla budowania pakietów.
.PP
Architektura budowania jest zawsze określana przez wywołanie \fBdpkg\fP i nie
może być ustawiona w linii poleceń.
.PP
Można podać architekturę docelową przez podanie jednej lub obu opcji spośród
\fB\-a\fP i \fB\-t\fP. Wartość domyślna jest określana przez wywołanie programu
\fBgcc\fP(1), a w razie gdy \s-1CC\s0 i gcc nie są dostępne, jest taka sama jak
architektura budowania. Wystarczy podać tylko jedną spośród opcji \fB\-a\fP i
\fB\-t\fP, ponieważ ta druga zostanie ustawiona na sensowną wartość domyślną. Co
więcej, często podanie jednej opcji jest lepsze niż podanie ich obu naraz,
gdyż \fBdpkg\-architecture\fP wypisze ostrzeżenie, jeśli podane wartości nie
będą odpowiadały wartościom domyślnym.
.
.SH POLECENIA
.TP 
\fB\-l\fP
Wyświetla zmienne środowiskowe, po jednej w każdej linii, w formacie
\fIZMIENNA=wartość\fP. Jest to domyślna akcja.
.TP 
\fB\-e\fP\fIarchitektura\-debiana\fP
Sprawdza równoważność architektur. Domyślnie \fIarchitektura\-debiana\fP jest
porównywana z bieżącą architekturą Debiana, traktowaną jako architektura
gospodarza. Ta akcja nie rozwija masek architektur. Polecenie kończy się
kodem wyjścia 0 jeśli dopasowanie architektur się powiodło, lub kodem 1
jeśli nie było dopasowania.
.TP 
\fB\-i\fP\fImaska\-architektury\fP
Sprawdzenie architektury przez rozwinięcie w odpowiedni sposób
\fImaski\-architektury\fP i porównanie z bieżącą architekturą Debiana. Polecenie
kończy się kodem wyjścia 0 jeśli dopasowanie architektur się powiodło, lub
kodem 1 jeśli nie było dopasowania.
.TP 
\fB\-q\fP\fInazwa\-zmiennej\fP
Wyświetla wartość pojedynczej zmiennej.
.TP 
\fB\-s\fP
Wyświetla polecenie export, które może być użyte do ustawienia zmiennych
środowiskowych za pomocą eval.
.TP 
\fB\-u\fP
Wyświetla polecenie podobne do \fB\-s\fP, jednakże ze wszystkimi zmiennymi
nieustawionymi.
.TP 
\fB\-c\fP\fI polecenie\fP
Wykonuje \fIpolecenie\fP w środowisku, które ma wszystkie zmienne ustawione na
wyznaczone wartości.
.TP 
\fB\-L\fP
Wyświetla listę poprawnych nazw architektur.
.TP 
\fB\-?\fP, \fB\-\-help\fP
Wyświetla informację o użytkowaniu i kończy działanie.
.TP 
\fB\-\-version\fP
Wyświetla informację o wersji i pomyślnie kończy działanie.
.
.SH OPCJE
.TP 
\fB\-a\fP\fIarchitektura\-debiana\fP
Ustawia architekturę Debiana.
.TP 
\fB\-t\fP\fItyp\-systemu\-gnu\fP
Ustawia typ systemu GNU.
.TP 
\fB\-f\fP
Honorowane są wartości ustawione w istniejących zmiennych środowiskowych o
tych samych nazwach, co używane w skryptach (np. użyte przez
\fBdpkg\-architecture\fP), chyba że jest obecna ta flaga wymuszenia. Pozwala to
na nadpisanie wartości nawet jeśli wywołanie \fBdpkg\-architecture\fP jest
ukryte głęboko w jakimś innym skrypcie (np. \fBdpkg\-buildpackage\fP(1)).
.
.SH WARUNKI
.IP "maszyna budowania" 4
Rodzaj maszyny, na której pakiet jest budowany.
.IP "maszyna docelowa" 4
Rodzaj maszyny, dla której pakiet jest budowany.
.IP "architektura Debiana" 4
Łańcuch znaków zawierający architekturę Debiana, która określa drzewo
binarne w archiwum \s-1FTP\s0. Przykłady: i386, sparc, hurd\-i386.
.IP "maska architektury" 4
Maska architektury jest specjalnym łańcuchem znaków, który będzie pasował do
każdej architektury, która jest jego częścią. Ogólna postać jest
następująca: <jądro>\-<procesor>. Przykłady: linux\-any,
any\-i386, hurd\-any.
.IP "typ systemu \s-1GNU\s0" 4
Łańcuch znaków określający architekturę składający się z dwóch części
oddzielonych myślnikiem: procesor i system. Przykłady: i386\-linux\-gnu,
sparc\-linux\-gnu, i386\-gnu, x86_64\-netbsd.
.
.SH ZMIENNE
\fBdpkg\-architecture\fP ustawia następujące zmienne:
.IP \s-1DEB_BUILD_ARCH\s0 4
Architektura wg Debiana komputera, na którym budowany jest pakiet.
.IP \s-1DEB_BUILD_ARCH_OS\s0 4
Nazwa systemu wg Debiana komputera, na którym budowany jest pakiet.
.IP \s-1DEB_BUILD_ARCH_CPU\s0 4
Nazwa procesora wg Debiana komputera, na którym budowany jest pakiet.
.IP \s-1DEB_BUILD_ARCH_BITS\s0 4
Rozmiar wskaźnika na komputerze budującym (w bitach).
.IP \s-1DEB_BUILD_ARCH_ENDIAN\s0 4
Kolejność bajtów (endian) na komputerze budującym (little / big).
.IP \s-1DEB_BUILD_GNU_CPU\s0 4
Część dotycząca \s-1CPU\s0 z \s-1DEB_BUILD_GNU_TYPE\s0.
.IP \s-1DEB_BUILD_GNU_SYSTEM\s0 4
Cześć dotycząca systemu z \s-1DEB_BUILD_GNU_TYPE\s0.
.IP \s-1DEB_BUILD_GNU_TYPE\s0 4
Typ systemu \s-1GNU\s0 komputera, na którym budowany jest pakiet.
.IP \s-1DEB_BUILD_MULTIARCH\s0 4
Typ systemu \s-1GNU\s0 komputera, na którym budowany jest pakiet, używana do
ścieżek systemu plików.
.IP \s-1DEB_HOST_ARCH\s0 4
Architektura wg Debiana dla maszyny docelowej.
.IP \s-1DEB_BUILD_ARCH_OS\s0 4
Nazwa systemu wg Debiana dla maszyny docelowej.
.IP \s-1DEB_HOST_ARCH_CPU\s0 4
Nazwa procesora wg Debiana dla maszyny docelowej.
.IP \s-1DEB_HOST_ARCH_BITS\s0 4
Rozmiar wskaźnika na maszynie docelowej (w bitach).
.IP \s-1DEB_HOST_ARCH_ENDIAN\s0 4
Kolejność bajtów (endian) na maszynie docelowej (little / big).
.IP \s-1DEB_HOST_GNU_CPU\s0 4
Część dotycząca \s-1CUP\s0 z \s-1DEB_HOST_GNU_TYPE\s0.
.IP \s-1DEB_HOST_GNU_SYSTEM\s0 4
Część dotycząca systemu z \s-1DEB_HOST_GNU_TYPE\s0.
.IP \s-1DEB_HOST_GNU_TYPE\s0 4
Typ systemu \s-1GNU\s0 dla maszyny docelowej.
.IP \s-1DEB_HOST_MULTIARCH\s0 4
Oczyszczony typ systemu \s-1GNU\s0 dla maszyny docelowej, używany do ścieżek
systemu plików.
.
.SH DEBIAN/RULES
Zmienne środowiskowe ustawione przez \fBdpkg\-architecture\fP są przekazywane do
\fIdebian/rules\fP jako zmienne programu make (patrz dokumentacja do
make). Jednakże nie należy na nich polegać, gdyż psuje to ręczne
uruchomienie tego skryptu. Zamiast tego, należy zawsze inicjować je,
używając \fBdpkg\-architecture\fP z opcją \-q. Poniżej znajduje się parę
przykładów, które także pokazują, jak można polepszyć wsparcie dla
kompilacji krzyżowej pakietu:
.PP

Otrzymywanie typu GNU systemu i przekazanie go do ./configure:
.IP
.nf
\&\s-1DEB_BUILD_GNU_TYPE\s0 := $(shell dpkg\-architecture \-qDEB_BUILD_GNU_TYPE)
\&\s-1DEB_HOST_GNU_TYPE\s0 := $(shell dpkg\-architecture \-qDEB_HOST_GNU_TYPE)
[...]
configure \-\-build=$(\s-1DEB_BUILD_GNU_TYPE\s0) \-\-host=$(\s-1DEB_HOST_GNU_TYPE\s0)
.fi
.PP

Robienie czegoś tylko do określonej architektury:
.IP
.nf
\&\s-1DEB_HOST_ARCH\s0 := $(shell dpkg\-architecture \-qDEB_HOST_ARCH)

ifeq ($(\s-1DEB_HOST_ARCH\s0),alpha)
  [...]
endif
.fi
.PP
albo jeśli trzeba sprawdzić tylko typ CPU lub OS, należy użyć zmiennych
DEB_HOST_ARCH_CPU lub DEB_HOST_ARCH_OS.
.PP
Można również polegać na zewnętrznym fragmencie Makefile, aby poprawnie
ustawić wszystkie zmienne, które może udostępnić \fBdpkg\-architecture\fP:
.IP
.nf
include /usr/share/dpkg/architecture.mk

ifeq ($(\s-1DEB_HOST_ARCH\s0),alpha)
  [...]
endif
.fi
.PP
Niezależnie od sposobu, nie powinno się nigdy używać \fBdpkg
\-\-print\-architecture\fP aby otrzymać informacje o architekturze, podczas
budowania pakietu.
.
.SH "KOMPATYBILNOŚĆ WSTECZNA"
Fragment /usr/share/dpkg/architecture.mk Makefile jest udostępniany przez
dpkg\-dev od wersji 1.16.1.
.PP
Zmienne DEB_*_ARCH_BITS oraz DEB_*_ARCH_ENDIAN zostały wprowadzone w
dpkg\-dev 1.15.4. Używanie ich w \fIdebian/rules\fP wymaga więc zależności czasu
budowania dla dpkg\-dev (>= 1.15.4).
.PP
Zmienne DEB_HOST_ARCH_CPU i DEB_HOST_ARCH_OS zostały wprowadzone w dpkg\-dev
1.13.2.
.PP
Opcje \fB\-e\fP i \fB\-i\fP zostały wprowadzone w miarę nowych wersjach
\fBdpkg\-architecture\fP (od wersji dpkg 1.13.13).
.
.SH PRZYKŁADY
\fBdpkg\-buildpackage\fP akceptuje opcję \fB\-a\fP i przekazuje ją do
\fBdpkg\-architecture\fP. Inne przykłady:
.IP
CC=i386\-gnu\-gcc dpkg\-architecture \-c debian/rules build
.IP
eval \`dpkg\-architecture \-u\`
.PP
Sprawdzanie, czy architektura jest równa architekturze bieżącej lub podanej:
.IP
dpkg\-architecture \-elinux\-alpha
.IP
dpkg\-architecture \-amips \-elinux\-mips
.PP
Sprawdzanie, czy architektura bieżąca podana przez \-a jest systemem Linuksa:
.IP
dpkg\-architecture \-ilinux\-any
.IP
dpkg\-architecture \-ai386 \-ilinux\-any
.
.SH PLIKI
Wszystkie te pliki muszą być obecne, aby \fBdpkg\-architecture\fP w ogóle
działał. Ich położenie można zmienić w czasie działania programu przez
ustawienie zmiennej środowiskowej \fBDPKG_DATADIR\fP.
.TP 
\fI/usr/share/dpkg/cputable\fP
Tabela znanych nazw procesorów i ich mapowanie na nazwy GNU.
.TP 
\fI/usr/share/dpkg/ostable\fP
Tabela nazw znanych systemów operacyjnych i ich mapowanie na nazwy GNU.
.TP 
\fI/usr/share/dpkg/triplettable\fP
Mapowanie między trójkami architektur Debiana a nazwami architektur Debiana.
.
.SH "ZOBACZ TAKŻE"
\fBdpkg\-buildpackage\fP(1), \fBdpkg\-cross\fP(1).
.SH "TŁUMACZE"
Piotr Roszatycki <dexter@debian.org>, 1999
.br
Bartosz Feński <fenio@debian.org>, 2004-2005
.br
Robert Luberda <robert@debian.org>, 2006-2008
.br
Wiktor Wandachowicz <siryes@gmail.com>, 2008
.br
Michał Kułach <michal.kulach@gmail.com>, 2012
