Provided by: dpkg-dev_1.16.0.3ubuntu5_all bug

NAZWA

       dpkg-architecture - ustawia i zwraca architektur budowania pakietow.

SK/LADNIA

       dpkg-architecture [opcje] [polecenia]

OPIS

       dpkg-architecture   dostarcza   sposobu   na   okrelenie  i  ustawienie
       architektury  budowania  oraz  architektury  docelowej  dla   budowania
       pakietow.

       Architektura  budowania jest zawsze okrelana przez wywolanie dpkg i nie
       moe by ustawiona w linii polece.

       Mona poda architektur docelow przez podanie jednej lub obu opcji sporod
       -a i -t. Warto domylna jest okrelana przez wywolanie programu gcc(1), a
       w razie gdy CC i gcc nie s dostpne, jest  taka  sama  jak  architektura
       budowania.  Wystarczy  poda tylko jedn sporod opcji -a i -t, poniewa ta
       druga zostanie ustawiona na  sensown  warto  domyln.  Co  wicej,  czsto
       podanie  jednej  opcji  jest  lepsze  ni  podanie  ich  obu  naraz, gdy
       dpkg-architecture  wypisze  ostrzeenie,  jeli  podane  wartoci  nie  bd
       odpowiadaly wartociom domylnym.

POLECENIA

       -l     Wywietla  zmienne  rodowiskowe,  po  jednej  w  kadej  linii,  w
              formacie ZMIENNA=warto. Jest to domylna akcja.

       -earchitektura-debiana
              Sprawdza rownowano  architektur.  Domylnie  architektura-debiana
              jest  porownywana  z  biec  architektur  Debiana, traktowan jako
              architektura gospodarza. Ta akcja nie rozwija masek architektur.
              Polecenie  koczy  si kodem wyjcia 0 jeli dopasowanie architektur
              si powiodlo, lub kodem 1 jeli nie bylo dopasowania.

       -imaska-architektury
              Sprawdzenie architektury przez rozwinicie  w  odpowiedni  sposob
              maski-architektury  i  porownanie  z  biec  architektur Debiana.
              Polecenie koczy si kodem wyjcia 0 jeli  dopasowanie  architektur
              si powiodlo, lub kodem 1 jeli nie bylo dopasowania.

       -qnazwa-zmiennej
              Wywietla warto pojedynczej zmiennej.

       -s     Wywietla  polecenie  export,  ktore  moe  by  uyte do ustawienia
              zmiennych rodowiskowych za pomoc eval.

       -u     Wywietla  polecenie  podobne  do  -s,  jednake   ze   wszystkimi
              zmiennymi nieustawionymi.

       -c polecenie
              Wykonuje  polecenie  w  rodowisku,  ktore  ma  wszystkie zmienne
              ustawione na wyznaczone wartoci.

       -L     Wywietla list poprawnych nazw architektur.

       --help Wywietla informacj o uytkowaniu i koczy dzialanie.

       --version
              Wywietla informacj o wersji i pomylnie koczy dzialanie.

OPCJE

       -aarchitektura-debiana
              Ustawia architektur Debiana.

       -ttyp-systemu-gnu
              Ustawia typ systemu GNU.

       -f     Honorowane  s  wartoci   ustawione   w   istniejcych   zmiennych
              rodowiskowych  o tych samych nazwach, co uywane w skryptach (np.
              uyte przez dpkg-architecture), chyba  e  jest  obecna  ta  flaga
              wymuszenia.   Pozwala   to  na  nadpisanie  wartoci  nawet  jeli
              wywolanie dpkg-architecture jest ukryte  glboko  w  jakim  innym
              skrypcie (np. dpkg-buildpackage(1)).

WARUNKI

       maszyna budowania
           Rodzaj maszyny, na ktorej pakiet jest budowany.

       maszyna docelowa
           Rodzaj maszyny, dla ktorej pakiet jest budowany.

       architektura Debiana
           Lacuch  znakow  zawierajcy architektur Debiana, ktora okrela drzewo
           binarne w archiwum FTP. Przyklady: i386, sparc, hurd-i386.

       maska architektury
           Maska architektury jest specjalnym  lacuchem  znakow,  ktory  bdzie
           pasowal  do  kadej architektury, ktora jest jego czci. Ogolna posta
           jest nastpujca: <jdro>-<procesor>. Przyklady: linux-any,  any-i386,
           hurd-any.

       typ systemu GNU
           Lacuch  znakow  okrelajcy  architektur  skladajcy  si  z dwoch czci
           oddzielonych   mylnikiem:    procesor    i    system.    Przyklady:
           i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.

ZMIENNE

       dpkg-architecture ustawia nastpujce zmienne:

       DEB_BUILD_ARCH
           Architektura wg Debiana komputera, na ktorym budowany jest pakiet.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana komputera, na ktorym budowany jest pakiet.

       DEB_BUILD_ARCH_CPU
           Nazwa  procesora  wg  Debiana  komputera,  na  ktorym budowany jest
           pakiet.

       DEB_BUILD_ARCH_BITS
           Rozmiar wskanika na komputerze budujcym (w bitach).

       DEB_BUILD_ARCH_ENDIAN
           Kolejno bajtow (endian) na komputerze budujcym (little / big).

       DEB_BUILD_GNU_CPU
           The CPU part of DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_SYSTEM
           Cze dotyczca systemu z DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_TYPE
           Typ systemu GNU komputera, na ktorym budowany jest pakiet.

       DEB_BUILD_MULTIARCH
           The clarified GNU system  type  of  the  build  machine,  used  for
           filesystem paths.

       DEB_HOST_ARCH
           Architektura wg Debiana dla maszyny docelowej.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana dla maszyny docelowej.

       DEB_HOST_ARCH_CPU
           Nazwa procesora wg Debiana dla maszyny docelowej.

       DEB_HOST_ARCH_BITS
           Rozmiar wskanika na maszynie docelowej (w bitach).

       DEB_HOST_ARCH_ENDIAN
           Kolejno bajtow (endian) na maszynie docelowej (little / big).

       DEB_HOST_GNU_CPU
           Cz dotyczca CUP z DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           Cz dotyczca systemu z DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_TYPE
           Typ systemu GNU dla maszyny docelowej.

       DEB_HOST_MULTIARCH
           The  clarified  GNU  system  type  of  the  host  machine, used for
           filesystem paths.

DEBIAN/RULES

       Zmienne rodowiskowe ustawione przez dpkg-architecture s przekazywane do
       debian/rules  jako  zmienne programu make (patrz dokumentacja do make).
       Jednake nie naley na nich polega, gdy psuje to rczne uruchomienie  tego
       skryptu.    Zamiast    tego,   naley   zawsze   inicjowa   je,   uywajc
       dpkg-architecture z opcj -q. Poniej znajduje si par  przykladow,  ktore
       take  pokazuj,  jak  mona  polepszy  wsparcie  dla  kompilacji krzyowej
       pakietu:

       Zamiast:

              ARCH=`dpkg --print-architecture`
              configure $(ARCH)-linux

       prosz uywa:

              DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
              DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

              configure --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)

       Zamiast:

              ARCH=`dpkg --print-architecture`
              ifeq ($(ARCH),alpha)
                ...
              endif

       prosz uywa:

              DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)

              ifeq ($(DEB_HOST_ARCH),alpha)
                ...
              endif

       albo jeli trzeba sprawdzi tylko typ CPU  lub  OS,  naley  uy  zmiennych
       DEB_HOST_ARCH_CPU lub DEB_HOST_ARCH_OS.

       Ogolnie  wywolywanie  dpkg  w  pliku rules w celu pobrania informacji o
       architekturze jest przestarzale (chyba e chce si  zachowa  kompatybilno
       wsteczn,  patrz  niej).  W szczegolnoci opcja --print-architecture jest
       niezbyt wiarygodna, poniewa istniej architektury Debiana, ktore  nie  s
       rowne nazwie procesora.

KOMPATYBILNO WSTECZNA

       Zmienne  DEB_*_ARCH_BITS  oraz  DEB_*_ARCH_ENDIAN zostaly wprowadzone w
       dpkg-dev 1.15.4. Uywanie ich w debian/rules wymaga wic  zalenoci  czasu
       budowania dla dpkg-dev (>= 1.15.4).

       Zmienne DEB_HOST_ARCH_CPU oraz DEB_HOST_ARCH_OS s dostpne w miar nowych
       wersjach  dpkg-architecture  (od  dpkg  1.13.2).  Wczeniej  w   plikach
       debian/rules    byly    sprawdzane    zmienne    DEB_HOST_GNU_CPU   lub
       DEB_HOST_GNU_TYPE, ktore zostaly zmienione.

       Wszystkie pliki debian/rules, decydujce na podstawie tych zmiennych jak
       i  co  kompilowa,  powinny by zaktualizowane i przystosowane do uywania
       nowych zmiennych i ich wartoci.  Aby  zachowa  wsteczn  kompatybilno  z
       poprzednimi wersjami dpkg-dev, mona uy nastpujcego kodu:

              DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU 2>/dev/null)
              DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)

              # Bierze pod uwag wyjcie ze starego dpkg-architecture.
              ifeq ($(DEB_HOST_ARCH_CPU),)
                DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
                ifeq ($(DEB_HOST_ARCH_CPU),x86_64)
                  DEB_HOST_ARCH_CPU := amd64
                endif
              endif
              ifeq ($(DEB_HOST_ARCH_OS),)
                DEB_HOST_ARCH_OS := $(subst -gnu,,$(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM))
                ifeq ($(DEB_HOST_ARCH_OS),gnu)
                  DEB_HOST_ARCH_OS := hurd
                endif
              endif

       I podobnie dla DEB_BUILD_ARCH_CPU oraz DEB_BUILD_ARCH_OS.

       Jeli   chcesz   wci  obslugiwa  wersje  dpkg-dev,  ktore  nie  zawieraj
       dpkg-architecture, to poniszy kod wykonuje to zadanie:

              DEB_BUILD_ARCH := $(shell dpkg --print-architecture)
              DEB_BUILD_GNU_CPU := $(patsubst hurd-%,%,$(DEB_BUILD_ARCH))
              ifeq ($(filter-out hurd-%,$(DEB_BUILD_ARCH)),)
                DEB_BUILD_GNU_SYSTEM := gnu
              else
                DEB_BUILD_GNU_SYSTEM := linux-gnu
              endif
              DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)-$(DEB_BUILD_GNU_SYSTEM)

              DEB_HOST_ARCH := $(DEB_BUILD_ARCH)
              DEB_HOST_GNU_CPU := $(DEB_BUILD_GNU_CPU)
              DEB_HOST_GNU_SYSTEM := $(DEB_BUILD_GNU_SYSTEM)
              DEB_HOST_GNU_TYPE := $(DEB_BUILD_GNU_TYPE)

       Umie podzbior tych  linii  na  gorze  pliku  debian/rules;  te  domylne
       wartoci bd nadpisane przez dpkg-architecture, jeli jest uywane.

       Nie  ma  potrzeby  uywania pelnego zestawu zmiennych. Mona wybra spojny
       ich zbior, zawierajcy wartoci uywane w pliku rules. Na przyklad,  jeeli
       potrzebna  jest tylko architektura Debiana maszyny, dla ktorej budowany
       jest   pakiet,    wystarczajce    jest    uycie    "DEB_HOST_ARCH=`dpkg
       --print-architecture`"   (tak  naprawd  jest  to  architektura  Debiana
       maszyny, na ktorej jest budowany pakiet, ale prosz pamita, e  probujemy
       tylko zachowa wsteczn zgodno z natywn kompilacj).

       Opcje   -e   i   -i   zostaly   wprowadzone   w  miar  nowych  wersjach
       dpkg-architecture (od wersji dpkg 1.13.13).

PRZYK/LADY

       dpkg-buildpackage   akceptuje   opcj   -a    i    przekazuje    j    do
       dpkg-architecture. Inne przyklady:

              CC=i386-gnu-gcc dpkg-architecture -c debian/rules build

              eval `dpkg-architecture -u`

       Sprawdzanie,  czy  architektura  jest  rowna  architekturze  biecej lub
       podanej:

              dpkg-architecture -elinux-alpha

              dpkg-architecture -amips -elinux-mips

       Sprawdzanie, czy architektura  bieca  podana  przez  -a  jest  systemem
       Linuksa:

              dpkg-architecture -ilinux-any

              dpkg-architecture -ai386 -ilinux-any

PLIKI

       Wszystkie  te  pliki  musz  by  obecne,  aby  dpkg-architecture w ogole
       dzialal. Ich poloenie monazmieni  w  czasie  dzialania  programu  przez
       ustawienie zmiennej rodowiskowej DPKG_DATADIR.

       /usr/share/dpkg/cputable
              Tabela znanych nazw procesorow i ich mapowanie na nazwy GNU.

       /usr/share/dpkg/ostable
              Tabela  nazw  znanych  systemow  operacyjnych i ich mapowanie na
              nazwy GNU.

       /usr/share/dpkg/triplettable
              Mapowanie  midzy  trojkami   architektur   Debiana   a   nazwami
              architektur Debiana.

ZOBACZ TAKE

       dpkg-buildpackage(1), dpkg-cross(1).

AUTOR

       dpkg-architecture  i  ta  strona podrcznika ekranowego zostaly napisane
       Marcusa Brinkmanna <brinkmd@debian.org>.

T/LUMACZE

       Piotr Roszatycki <dexter@debian.org>, 1999
       Bartosz Feski <fenio@debian.org>, 2004-2005
       Robert Luberda <robert@debian.org>, 2006-2008
       Wiktor Wandachowicz <siryes@gmail.com>, 2008