dpkg-architecture [option...] [command]

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

       The  build  architecture  is  always  determined by an external call to
       dpkg(1), and can not be set at the command line.

       You can specify the host architecture by providing one or both  of  the
       options  -a  and  -t.  The default is determined by an external call to
       gcc(1), or the same as the build architecture if CC or gcc are both not
       available.  One  out of -a and -t is sufficient, the value of the other
       will be set to a usable default. Indeed, it is  often  better  to  only
       specify  one,  because  dpkg-architecture  will warn you if your choice
       does not match the default.

       -l     Print the environment variables, one each line,  in  the  format
              VARIABLE=value. This is the default action.

              Check  for  equality  of  architecture  (since dpkg 1.13.13). 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  sta-
              tus of 0 if matched, 1 if not matched.

              Check  for  identity  of architecture by expanding architecture-
              wildcard as an architecture wildcard and comparing  against  the
              current  Debian architecture (since dpkg 1.13.13).  Command fin-
              ishes with an exit status of 0 if matched, 1 if not matched.

              Print the value of a single variable.

       -s     Print an export command. This can be used to set the environment
              variables using eval.

       -u     Print a similar command to -s but to unset all variables.

       -c command
              Execute  a command in an environment which has all variables set
              to the determined value.

       -L     Print a list of valid architecture names.

       -?, --help
              Show the usage message and exit.
              as  used by the scripts are honored (i.e. used by dpkg-architec-
              ture), 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-buildpack-

       build machine
           The machine the package is built on.

       host machine
           The machine the package is built for.

       Debian architecture
           The  Debian architecture string, which specifies the binary tree in
           the FTP archive. Examples: i386, sparc, hurd-i386.

       architecture wildcard
           An architecture wildcard is a special architecture string that will
           match  any  real architecture being part of it. The general form is
           <kernel>-<cpu>.  Examples: linux-any, any-i386, hurd-any.

       GNU system type
           An architecture specification string consisting of two parts  sepa-
           rated  by  a  hyphen:  cpu  and  system.  Examples: i386-linux-gnu,
           sparc-linux-gnu, i386-gnu, x86_64-netbsd.

       The following variables are set by dpkg-architecture:

           The Debian architecture of the build machine.

           The Debian system name of the build machine (since dpkg 1.13.2).

           The Debian cpu name of the build machine (since dpkg 1.13.2).

           The pointer size of the build machine (in bits; since dpkg 1.15.4).

           The endianness of the build  machine  (little  /  big;  since  dpkg

           The CPU part of DEB_BUILD_GNU_TYPE.

           The System part of DEB_BUILD_GNU_TYPE.

           The GNU system type of the build machine.
           The Debian cpu name of the host machine (since dpkg 1.13.2).

           The pointer size of the host machine (in bits; since dpkg 1.15.4).

           The endianness of the  host  machine  (little  /  big;  since  dpkg

           The CPU part of DEB_HOST_GNU_TYPE.

           The System part of DEB_HOST_GNU_TYPE.

           The GNU system type of the host machine.

           The  clarified  GNU  system  type  of  the  host  machine, used for
           filesystem paths (since dpkg 1.16.0).

   Architecture tables
       All these files have to be present for dpkg-architecture to work. Their
       location  can  be  overridden  at runtime with the environment variable

              Table of known CPU names and mapping to their GNU name.

              Table of known operating system names and mapping to  their  GNU

              Mapping  between  Debian architecture triplets and Debian archi-
              tecture names.

   Packaging support
              Makefile snippet that properly sets and exports  all  the  vari-
              ables that dpkg-architecture outputs (since dpkg 1.16.1).

       dpkg-buildpackage accepts the -a option and passes it to dpkg-architec-
       ture. Other examples:

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

              eval `dpkg-architecture -u`

       Check if an architecture is equal to  the  current  architecture  or  a
       given one:

   Usage in debian/rules
       The environment  variables  set  by  dpkg-architecture  are  passed  to
       debian/rules  as  make variables (see make documentation). However, you
       should not rely on them,  as  this  breaks  manual  invocation  of  the
       script. Instead, you should always initialize them using dpkg-architec-
       ture with the -q option. Here are some examples, which  also  show  how
       you can improve the cross compilation support in your package:

       Retrieving the GNU system type and forwarding it to ./configure:

           DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
           DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
           ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
             confflags += --build=$(DEB_HOST_GNU_TYPE)
             confflags += --build=$(DEB_BUILD_GNU_TYPE) \
           ./configure $(confflags)

       Doing something only for a specific architecture:

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

           ifeq ($(DEB_HOST_ARCH),alpha)

       or   if   you  only  need  to  check  the  CPU  or  OS  type,  use  the
       DEB_HOST_ARCH_CPU or DEB_HOST_ARCH_OS variables.

       Note that you can also rely on an external Makefile snippet to properly
       set all the variables that dpkg-architecture can provide:

           include /usr/share/dpkg/architecture.mk

           ifeq ($(DEB_HOST_ARCH),alpha)

       In  any  case,  you  should  never use dpkg --print-architecture to get
       architecture information during a package build.

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

Debian Project                    2013-03-28              dpkg-architecture(1)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2019 Hurricane Electric. All Rights Reserved.