dpkg-architecture man page on Hurd

Man page or keyword search:  
man Server   6387 pages
apropos Keyword Search (all sections)
Output format
Hurd logo
[printable version]

dpkg-architecture(1)		dpkg utilities		  dpkg-architecture(1)

NAME
       dpkg-architecture  -  set  and  determine  the architecture for package
       building

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

DESCRIPTION
       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.

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

       -edebian-architecture
	      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.

       -iarchitecture-wildcard
	      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.

       -qvariable-name
	      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.

       --version
	      Show the version and exit.

OPTIONS
       -adebian-architecture
	      Set the Debian architecture.

       -tgnu-system-type
	      Set the GNU system type.

       -f     Values set by existing environment variables with the same  name
	      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‐
	      age(1)).

TERMS
       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.

VARIABLES
       The following variables are set by dpkg-architecture:

       DEB_BUILD_ARCH
	   The Debian architecture of the build machine.

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

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

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

       DEB_BUILD_ARCH_ENDIAN
	   The endianness of the build	machine	 (little  /  big;  since  dpkg
	   1.15.4).

       DEB_BUILD_GNU_CPU
	   The CPU part of DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_SYSTEM
	   The System part of DEB_BUILD_GNU_TYPE.

       DEB_BUILD_GNU_TYPE
	   The GNU system type of the build machine.

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

       DEB_HOST_ARCH
	   The Debian architecture of the host machine.

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

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

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

       DEB_HOST_ARCH_ENDIAN
	   The endianness of the  host	machine	 (little  /  big;  since  dpkg
	   1.15.4).

       DEB_HOST_GNU_CPU
	   The CPU part of DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_SYSTEM
	   The System part of DEB_HOST_GNU_TYPE.

       DEB_HOST_GNU_TYPE
	   The GNU system type of the host machine.

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

FILES
   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
       DPKG_DATADIR.

       /usr/share/dpkg/cputable
	      Table of known CPU names and mapping to their GNU name.

       /usr/share/dpkg/ostable
	      Table of known operating system names and mapping to  their  GNU
	      name.

       /usr/share/dpkg/triplettable
	      Mapping  between	Debian architecture triplets and Debian archi‐
	      tecture names.

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

EXAMPLES
       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:

	      dpkg-architecture -elinux-alpha

	      dpkg-architecture -amips -elinux-mips

       Check  if  the current architecture or an architecture provided with -a
       are Linux systems:

	      dpkg-architecture -ilinux-any

	      dpkg-architecture -ai386 -ilinux-any

   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)
	   else
	     confflags += --build=$(DEB_BUILD_GNU_TYPE) \
			  --host=$(DEB_HOST_GNU_TYPE)
	   endif
	   [...]
	   ./configure $(confflags)

       Doing something only for a specific architecture:

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

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

       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)
	     [...]
	   endif

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

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

Debian Project			  2013-03-28		  dpkg-architecture(1)
[top]

List of man pages available for Hurd

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net