123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404 |
- .rn '' }`
- ''' $RCSfile: dpkg-architecture.1,v $$Revision: 1.4 $$Date: 1999/09/27 01:37:25 $
- '''
- ''' $Log: dpkg-architecture.1,v $
- ''' Revision 1.4 1999/09/27 01:37:25 wakkerma
- ''' Updated to dpkg 1.4.1.11
- '''
- '''
- .de Sh
- .br
- .if t .Sp
- .ne 5
- .PP
- \fB\\$1\fR
- .PP
- ..
- .de Sp
- .if t .sp .5v
- .if n .sp
- ..
- .de Ip
- .br
- .ie \\n(.$>=3 .ne \\$3
- .el .ne 3
- .IP "\\$1" \\$2
- ..
- .de Vb
- .ft CW
- .nf
- .ne \\$1
- ..
- .de Ve
- .ft R
- .fi
- ..
- '''
- '''
- ''' Set up \*(-- to give an unbreakable dash;
- ''' string Tr holds user defined translation string.
- ''' Bell System Logo is used as a dummy character.
- '''
- .tr \(*W-|\(bv\*(Tr
- .ie n \{\
- .ds -- \(*W-
- .ds PI pi
- .if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
- .if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
- .ds L" ""
- .ds R" ""
- ''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of
- ''' \*(L" and \*(R", except that they are used on ".xx" lines,
- ''' such as .IP and .SH, which do another additional levels of
- ''' double-quote interpretation
- .ds M" """
- .ds S" """
- .ds N" """""
- .ds T" """""
- .ds L' '
- .ds R' '
- .ds M' '
- .ds S' '
- .ds N' '
- .ds T' '
- 'br\}
- .el\{\
- .ds -- \(em\|
- .tr \*(Tr
- .ds L" ``
- .ds R" ''
- .ds M" ``
- .ds S" ''
- .ds N" ``
- .ds T" ''
- .ds L' `
- .ds R' '
- .ds M' `
- .ds S' '
- .ds N' `
- .ds T' '
- .ds PI \(*p
- 'br\}
- .\" If the F register is turned on, we'll generate
- .\" index entries out stderr for the following things:
- .\" TH Title
- .\" SH Header
- .\" Sh Subsection
- .\" Ip Item
- .\" X<> Xref (embedded
- .\" Of course, you have to process the output yourself
- .\" in some meaninful fashion.
- .if \nF \{
- .de IX
- .tm Index:\\$1\t\\n%\t"\\$2"
- ..
- .nr % 0
- .rr F
- .\}
- .TH DPKG-ARCHITECTURE 1 "perl 5.004, patch 04" "24/Jul/99" "User Contributed Perl Documentation"
- .UC
- .if n .hy 0
- .if n .na
- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
- .de CQ \" put $1 in typewriter font
- .ft CW
- 'if n "\c
- 'if t \\&\\$1\c
- 'if n \\&\\$1\c
- 'if n \&"
- \\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
- '.ft R
- ..
- .\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
- . \" AM - accent mark definitions
- .bd B 3
- . \" fudge factors for nroff and troff
- .if n \{\
- . ds #H 0
- . ds #V .8m
- . ds #F .3m
- . ds #[ \f1
- . ds #] \fP
- .\}
- .if t \{\
- . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
- . ds #V .6m
- . ds #F 0
- . ds #[ \&
- . ds #] \&
- .\}
- . \" simple accents for nroff and troff
- .if n \{\
- . ds ' \&
- . ds ` \&
- . ds ^ \&
- . ds , \&
- . ds ~ ~
- . ds ? ?
- . ds ! !
- . ds /
- . ds q
- .\}
- .if t \{\
- . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
- . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
- . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
- . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
- . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
- . ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
- . ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
- . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
- . ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
- .\}
- . \" troff and (daisy-wheel) nroff accents
- .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
- .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
- .ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
- .ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
- .ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
- .ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
- .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
- .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
- .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
- .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
- .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
- .ds ae a\h'-(\w'a'u*4/10)'e
- .ds Ae A\h'-(\w'A'u*4/10)'E
- .ds oe o\h'-(\w'o'u*4/10)'e
- .ds Oe O\h'-(\w'O'u*4/10)'E
- . \" corrections for vroff
- .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
- .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
- . \" for low resolution devices (crt and lpr)
- .if \n(.H>23 .if \n(.V>19 \
- \{\
- . ds : e
- . ds 8 ss
- . ds v \h'-1'\o'\(aa\(ga'
- . ds _ \h'-1'^
- . ds . \h'-1'.
- . ds 3 3
- . ds o a
- . ds d- d\h'-1'\(ga
- . ds D- D\h'-1'\(hy
- . ds th \o'bp'
- . ds Th \o'LP'
- . ds ae ae
- . ds Ae AE
- . ds oe oe
- . ds Oe OE
- .\}
- .rm #[ #] #H #V #F C
- .SH "NAME"
- dpkg-architecture \- set and determine the architecture for package building
- .SH "SYNOPSIS"
- dpkg-architecture [options] [action]
- .PP
- Valid options:
- \fB\-a\fRDebian-Architecture
- \fB\-t\fRGnu-System-Type
- \fB\-f\fR
- .PP
- Valid actions:
- \fB\-l\fR, \fB\-q\fRVariable-Name, \fB\-s\fR, \fB\-u\fR, \fB\-c\fR Command
- .SH "DESCRIPTION"
- dpkg-architecture does provide a facility to determine and set the build and
- host architecture for package building.
- .SH "OVERVIEW"
- The build architecture is always determined by an external call to dpkg, and
- can not be set at the command line.
- .PP
- You can specify the host architecture by providing one or both of the options \fB\-a\fR
- and \fB\-t\fR. The default is determined by an external call to gcc, or the same as
- the build architecture if CC or gcc are both not available. One out of \fB\-a\fR and \fB\-t\fR
- 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 doesn't match the default.
- .PP
- The default action is \fB\-l\fR, which prints the environment variales, one each line,
- in the format VARIABLE=value. If you are only interested in the value of a
- single variable, you can use \fB\-q\fR. If you specify \fB\-s\fR, it will output an export
- command. This can be used to set the environment variables using eval. \fB\-u\fR
- does return a similar command to unset all variables. \fB\-c\fR does execute a
- command in an environment which has all variables set to the determined
- value.
- .PP
- Existing environment variables with the same name as used by the scripts are
- not overwritten, except if the \fB\-f\fR 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). The \fB\-q\fR query option
- implies \fB\-f\fR, and is therefore not affected by existing environment settings.
- .SH "TERMS"
- .Ip "build machine" 4
- The machine the package is build on.
- .Ip "host machine" 4
- The machine the package is build for.
- .Ip "Debian Architecture" 4
- The Debian archietcture string, which specifies the binary tree in the \s-1FTP\s0
- archive. Examples: i386, sparc, hurd-i386.
- .Ip "\s-1GNU\s0 System Type" 4
- An architecture specification string consisting of two or three parts,
- cpu-system or cpu-vendor-system. Examples: i386-linux, sparc-linux, i386-gnu.
- .SH "EXAMPLES"
- dpkg-buildpackage accepts the \fB\-a\fR option and passes it to dpkg-architecture.
- Other examples:
- .PP
- CC=i386-gnu-gcc dpkg-architecture \f(CW-c\fR debian/rules build
- .PP
- eval `dpkg-architecture \f(CW-u\fR`
- .SH "VARIABLES"
- The following variables are set by dpkg-architecture:
- .Ip "\s-1DEB_BUILD_ARCH\s0" 4
- The Debian architecture of the build machine.
- .Ip "\s-1DEB_BUILD_GNU_TYPE\s0" 4
- The \s-1GNU\s0 system type of the build machine.
- .Ip "\s-1DEB_BUILD_GNU_CPU\s0" 4
- The \s-1CPU\s0 part of \s-1DEB_BUILD_GNU_TYPE\s0
- .Ip "\s-1DEB_BUILD_GNU_SYSTEM\s0" 4
- The System part of \s-1DEB_BUILD_GNU_TYPE\s0
- .Ip "\s-1DEB_HOST_ARCH\s0" 4
- The Debian architecture of the host machine.
- .Ip "\s-1DEB_HOST_GNU_TYPE\s0" 4
- The \s-1GNU\s0 system type of the host machine.
- .Ip "\s-1DEB_HOST_GNU_CPU\s0" 4
- The \s-1CPU\s0 part of \s-1DEB_HOST_GNU_TYPE\s0
- .Ip "\s-1DEB_HOST_GNU_SYSTEM\s0" 4
- The System part of \s-1DEB_HOST_GNU_TYPE\s0
- .SH "DEBIAN/RULES"
- The environment variables set by dpkg-architecture are passed to
- debian/rules as make variables (see make documentation). You can and should
- use them in the build process as needed. Here are some examples, which also
- show how you can improve the cross compilation support in your package:
- .PP
- Instead:
- .PP
- ARCH=`dpkg --print-architecture`
- configure $(ARCH)\-linux
- .PP
- please use the following:
- .PP
- B_ARCH=$(DEB_BUILD_GNU_TYPE)
- H_ARCH=$(DEB_HOST_GNU_TYPE)
- configure --build=$(B_ARCH) --host=$(H_ARCH)
- .PP
- Instead:
- .PP
- ARCH=`dpkg --print-architecture`
- ifeq ($(ARCH),alpha)
- ...
- endif
- .PP
- please use:
- .PP
- ARCH=$(DEB_HOST_ARCH)
- ifeq ($(ARCH),alpha)
- ...
- endif
- .PP
- In general, calling dpkg in the rules file to get architecture information
- is deprecated (until 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.
- .SH "BACKWARD COMPATIBILITY"
- When providing a new facility, it is always a good idea to stay compatible with old
- versions of the programs. Note that dpkg-architecture does not affect old
- debian/rules files, so the only thing to consider is using old building
- scripts with new debian/rules files. The following does the job:
- .PP
- DEB_BUILD_ARCH := $(shell dpkg --print-installation-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
- endif
- DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_CPU)\-$(DEB_BUILD_GNU_SYSTEM)
- .PP
- 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)
- .PP
- Put a subset of these lines at the top of your debian/rules file; these
- default values will be overwritten if dpkg-architecture is used.
- .PP
- You don't need the full set. Choose a consistent set which contains the
- values you use in the rules file. For example, if you only need the host
- Debian architecture, `DEB_HOST_ARCH=`dpkg --print-installation-architecture`
- is sufficient (this is indeed the Debian architecture of the build machine,
- but remember that we are only trying to be backward compatible with native
- compilation).
- .PP
- You may not want to care about old build packages (for example, if you have
- sufficient source dependencies declared anyway). But you should at least
- support the traditional way to build packages by calling `debian/rules
- build\*(R' directly, without setting environment variables. To do this, use the
- \fB\-q\fR option to query suitable default values:
- .PP
- DEB_BUILD_ARCH=`dpkg-architecture \-qDEB_BUILD_ARCH`
- DEB_BUILD_GNU=`dpkg-architecture \-qDEB_BUILD_GNU`
- .PP
- etc. You get the idea. This way, you can ensure that the variables are never
- undeclared. Note that this breaks backwards compatibility with old build
- scripts, and you should only do that if source dependencies are implemented
- and declared accordingly.
- .SH "SEE ALSO"
- dpkg-buildpackage
- dpkg-cross
- .SH "CONTACT"
- If you have questions about the usage of the make variables in your rules
- files, or about cross compilation support in your packages, please email me.
- The addresse is Marcus Brinkmann <brinkmd@debian.org>.
- .rn }` ''
- .IX Title "DPKG-ARCHITECTURE 1"
- .IX Name "dpkg-architecture - set and determine the architecture for package building"
- .IX Header "NAME"
- .IX Header "SYNOPSIS"
- .IX Header "DESCRIPTION"
- .IX Header "OVERVIEW"
- .IX Header "TERMS"
- .IX Item "build machine"
- .IX Item "host machine"
- .IX Item "Debian Architecture"
- .IX Item "\s-1GNU\s0 System Type"
- .IX Header "EXAMPLES"
- .IX Header "VARIABLES"
- .IX Item "\s-1DEB_BUILD_ARCH\s0"
- .IX Item "\s-1DEB_BUILD_GNU_TYPE\s0"
- .IX Item "\s-1DEB_BUILD_GNU_CPU\s0"
- .IX Item "\s-1DEB_BUILD_GNU_SYSTEM\s0"
- .IX Item "\s-1DEB_HOST_ARCH\s0"
- .IX Item "\s-1DEB_HOST_GNU_TYPE\s0"
- .IX Item "\s-1DEB_HOST_GNU_CPU\s0"
- .IX Item "\s-1DEB_HOST_GNU_SYSTEM\s0"
- .IX Header "DEBIAN/RULES"
- .IX Header "BACKWARD COMPATIBILITY"
- .IX Header "SEE ALSO"
- .IX Header "CONTACT"
|