Provided by: dpkg-dev_1.14.16.6ubuntu3_all bug

NAZWA

       dpkg-architecture - ustawia i zwraca architekturę budowania pakietów.

SKŁADNIA

       dpkg-architecture [opcje] [polecenia]

OPIS

       dpkg-architecture  does  provide  a  facility  to determine and set the
       build and host architecture for package building.

       Architektura budowania jest zawsze określana przez wywołanie dpkg i nie
       może być ustawiona w linii poleceń.

       Można  podać  architekturę komputera przez podanie jednej lub obu opcji
       spośród -a i  -t.  Wartość  domyślna  jest  określana  przez  wywołanie
       programu  gcc(1),  a w razie gdy CC i gcc nie są dostępne, to jest taka
       sama, jak architektura budowania. Wystarczy podać tylko  jedną  spośród
       opcji -a i -t, 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ż  dpkg-architecture wypisze ostrzeżenie,
       jeśli wartości nie będą sobie odpowiadały.

POLECENIA

       -l     Wyświetla zmienne środowiskowe, po  jednej  w  każdej  linii,  w
              formacie ZMIENNA=warto. Jest to domyślna akcja.

       -earchitektura-debiana
              Check    for    equality    of    architecture.    By    default
              debian-architecture  is  compared  against  the  current  Debian
              architecture,  being  the host.  This action will not expand the
              architecture wildcards. Command finishes with an exit status  of
              0 if matched, 1 if not matched.

       -iarchitecture-wildcard
              Check    for    identity    of    architecture    by   expanding
              architecture-wildcard as an architecture wildcard and  comparing
              against  the  current Debian architecture. Command finishes with
              an exit status of 0 if matched, 1 if not matched.

       -qnazwa-zmiennej
              Wyświetla wartość pojedynczej zmiennej.

       -s     Wyświetla polecenie export, które może być użyte  do  ustawienia
              zmiennych środowiskowych za pomocą eval.

       -u     Wyświetla  polecenie  podobne  do  -s,  jednakże  ze  wszystkimi
              zmiennymi nieustawionymi.

       -c polecenie
              Wykonuje polecenie w  środowisku,  które  ma  wszystkie  zmienne
              ustawione na wyznaczone wartości.

       -L     Wyświetla listę poprawnych nazw architektur.

       --help Wyświetla informację o użytkowaniu i kończy działanie.

       --version
              Wyświetla informację o wersji i pomyślnie kończy działanie.

OPCJE

       -aarchitektura-debiana
              Ustawia architekturę Debiana.

       -ttyp-systemu-gnu
              Ustawia typ systemu GNU.

       -f     Values  set by existing environment variables with the same name
              as  used  by   the   scripts   are   honored   (i.e.   used   by
              dpkg-architecture),  except  if this force flag is present. This
              allows the user to override  a  value  even  when  the  call  to
              dpkg-architecture  is  buried  in some other script (for example
              dpkg-buildpackage(1)).

WARUNKI

       build machine
           Komputer, na którym pakiet jest budowany.

       komputer-gość
           Architektura, dla której pakiet jest budowany.

       architektura Debiana
           Łańcuch znaków  zawierający  architekturę  Debiana,  która  określa
           drzewo binarne w archiwum FTP. Przykłady: i386, sparc, hurd-i386.

       maska architektury
           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.

       typ systemu GNU
           Ł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.

ZMIENNE

       dpkg-architecture ustawia następujące zmienne:

       DEB_BUILD_ARCH
           Architektura wg Debiana komputera, na którym budowany jest  pakiet.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana komputera, na którym budowany jest pakiet.

       DEB_BUILD_ARCH_CPU
           Nazwa procesora wg  Debiana  komputera,  na  którym  budowany  jest
           pakiet.

       DEB_BUILD_GNU_TYPE
           Typ systemu GNU komputera, na którym budowany jest pakiet.

       DEB_BUILD_GNU_CPU
           Część dotycząca CPU z DEB_BUILD_GNU_TYPE

       DEB_BUILD_GNU_SYSTEM
           Cześć dotycząca systemu z DEB_BUILD_GNU_TYPE.

       DEB_HOST_ARCH
           Architektura wg Debiana komputera-gościa.

       DEB_BUILD_ARCH_OS
           Nazwa systemu wg Debiana komputera-gościa.

       DEB_HOST_ARCH_CPU
           Nazwa procesora wg Debiana komputera-gościa.

       DEB_HOST_GNU_TYPE
           Typ systemu GNU komputera-gościa.

       DEB_HOST_GNU_CPU
           Część dotycząca CUP z DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
           Część dotycząca systemu z DEB_HOST_GNU_TYPE.

DEBIAN/RULES

       Zmienne  środowiskowe ustawione przez dpkg-architecture są przekazywane
       do debian/rules 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  dpkg-architecture  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:

       Zamiast:

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

       proszę używać:

              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ę używać:

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

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

       albo jeśli trzeba sprawdzić tylko typ CPU lub OS, należy użyć zmiennych
       DEB_HOST_ARCH_CPU lub DEB_HOST_ARCH_OS.

       In general,  calling  dpkg  in  the  rules  file  to  get  architecture
       information   is  deprecated  (unless  you  want  to  provide  backward
       compatibility, see below).  Especially the --print-architecture  option
       is  unreliable  since  we have Debian architectures which don't equal a
       processor name.

KOMPATYBILNOŚĆ WSTECZNA

       Zmienne DEB_HOST_ARCH_CPU oraz DEB_HOST_ARCH_OS  są  dostępne  w  miarę
       nowych wersjach dpkg-architecture (od dpkg 1.13.2). Wcześniej w plikach
       debian/rules    sprawdzało    się    zmienne    DEB_HOST_GNU_CPU    lub
       DEB_HOST_GNU_TYPE, które zostały zmienione.

       Wszystkie  pliki  debian/rules, decydujące na podstawie tych zmiennych,
       jak i co kompilować, powinny  być  zaktualizowane  i  przystosowane  do
       używane   nowych  zmiennych  i  ich  wartości.  Aby  zachować  wsteczną
       kompatybilność   z   poprzednimi   wersjami   dpkg-dev,   można    użyć
       następującego 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ę wyjście 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.

       Jeśli  chcesz  wciąż  obsługiwać  wersje  dpkg-dev, które nie zawierają
       dpkg-architecture, to poniższy 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ść podzbiór tych linii na górze  pliku  debian/rules;  te  domyślne
       wartości będą nadpisane przez dpkg-architecture, jeśli jest używane.

       Nie ma potrzeby używania pełnego zestawu zmiennych. Można wybrać spójny
       ich zbiór, zawierający wartości używane w  pliku  rules.  Na  przykład,
       jeżeli  potrzebujesz  tylko architektury Debiana komputera, dla którego
       budowany jest pakiet, wystarczające  jest  użycie  `DEB_HOST_ARCH=`dpkg
       --print-architecture`'  (tak  naprawdę  jest  to  architektura  Debiana
       maszyny, na której  jest  budowany  pakiet,  ale  proszę  pamiętać,  że
       próbujemy tylko zachować wsteczną zgodność z natywną kompilacją).

       Opcje   -e   i   -i   zostały   wprowadzone  w  miarę  nowych  wersjach
       dpkg-architecture (od wersji dpkg 1.13.13).

PRZYKŁADY

       dpkg-buildpackage   akceptuje   opcję   -a   i   przekazuje    ją    do
       dpkg-architecture. Inne przykłady:

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

              eval `dpkg-architecture -u`

       Sprawdzanie,  czy  architektura  jest  równa architekturze bieżącej lub
       podanej:

              dpkg-architecture -elinux-alpha

              dpkg-architecture -amips -elinux-mips

       Sprawdzanie, czy architektura bieżąca podana  przez  -a  jest  systemem
       Linuksa:

              dpkg-architecture -ilinux-any

              dpkg-architecture -ai386 -ilinux-any

ZOBACZ TAKŻE

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

AUTOR

       dpkg-architecture  i  ta strona podręcznika ekranowego zostały napisane
       Marcusa Brinkmanna <brinkmd@debian.org>.