Provided by:
dpkg-dev_1.16.1.2ubuntu7_all 
NAMN
dpkg-architecture - stall in och bestam arkitektur for paket som byggs
SYNOPS
dpkg-architecture [flagga...] [oatg"ard]
BESKRIVNING
dpkg-architecture innehaller en funktion for att bestamma och stalla in
bygg- och vardarkitekturerna for att bygga paket.
Byggarkitekturen bestams alltid av ett externt anrop till dpkg(1) och
kan inte stallas in pa kommandoraden.
Du kan ange vardarkitektur genom att ange en av, eller bada, flaggorna
-a och -t. Forvalet bestams av ett externt anrop till gcc(1), eller ar
detsamma som byggarkitekturen varken CC eller gcc ar tillgangliga. Det
racker att ange en av -a och -t, vardet pa den andra kommer stallas in
till ett fungerande forval. Det ar faktiskt oftast battre att bara ange
den ena eftersom dpkg-architecture kommer varna dig om ditt val inte
overensstammer med forvalet.
KOMMANDON
-l Skriv miljovariabler, en per rad, pa formatet VARIABEL=v"arde.
Detta ar forvald atgard.
-edebianarkitektur
Kontrollera arkitektur for likhet. Som standard jamfors
debianarkitektur mot den aktuella Debianarkitekturen, som ar
vard. Atgarden expanderar inte jokertecken i arkitekturer.
Kommandet avslutar med status 0 om det ar en traff, 1 om det
inte ar en traff.
-iarkitekturs"okm"onster
Kontrollera identitet pa arkitekturen genom att expandera
arkitekturs"okm"onster som ett arkitektursokmonster med
jokertecken, och jamfora med den aktuella Debianarkitekturen.
Kommandot avslutas med status 0 vid traff, 1 om inte traff.
-qvariabelnamn
Skriv vardet pa en enkel variabel.
-s Visar ett exportkommando. Detta kan anvandas for att satta
miljovariabler med eval.
-u Visar ett kommando liknande -s som for att nollstalla alla
variabler.
-c kommando
Exekvera ett kommando i en miljo som har alla variabler satta
till det bestamda vardet.
-L Visa en lista over giltiga arkitekturnamn.
--help Visar hjalpskarm och avslutar.
--version
Visar version och avslutar.
FLAGGOR
-adebianarkitektur
Valj Debianarkitektur.
-tgnu-systemtyp
Valj GNU-systemtyp.
-f Varden som satts av befintliga miljovariabler med samma namn som
de som anvands av skriptet anvands (t.ex av dpkg-architecture),
savida inte denna tvingande flagga anges. Det gor det mojligt
for anvandaren att overstyra ett varde aven om anropet till
dpkg-architecture ar begravt djupt inuti ett annat skript (till
exempel dpkg-buildpackage(1)).
TERMINOLOGI
byggmaskin
Maskinen paketet byggs pa.
vardmaskin
Maskinen paketet byggs for.
Debianarkitektur
Debianarkitekturstrangen, vilken anger binartradet i -s1FT-arkivet.
Exempel: i386, sparc, hurd-i386.
arkitektursokmonster
Ett arkitektursokmonster ar en speciell arkitekturstrang som
matchar alla akta arkitekturer som finns i den. Den genella formen
ar <karna>-<cpu>. Exempel: linux-any, any-i386, hurd-any.
GNU-systemtyp
En arkitekturspecificeringsstrang bestar av tva delar, avdelade med
bindestreck: processor och system. Exempel: i386-linux-gnu,
sparc-linux-gnu, i386-gnu, x86_64-netbsd.
VARIABLER
Foljande variabler satts av dpkg-architecture:
DEB_BUILD_ARCH
Debianarkitekturen for byggmaskinen.
DEB_BUILD_ARCH_OS
Debiansystemnamnet for byggmaskinen.
DEB_BUILD_ARCH_CPU
Debian-processornamnet for byggmaskinen.
DEB_BUILD_ARCH_BITS
Pekarstorleken for byggmaskinen (i bitar).
DEB_BUILD_ARCH_ENDIAN
Endian for byggmaskinen (little / big).
DEB_BUILD_GNU_CPU
CPU-delen av DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_SYSTEM
Systemdelen av DEB_BUILD_GNU_TYPE.
DEB_BUILD_GNU_TYPE
GNU-systemtypen for byggmaskinen.
DEB_BUILD_MULTIARCH
Den fortydligade GNU-systemtypen for byggmaskinen, anvands for
sokvagar i filsystemet.
DEB_HOST_ARCH
Debianarkitekturen for vardmaskinen.
DEB_HOST_ARCH_OS
Debiansystemnamnet for vardmaskinen.
DEB_HOST_ARCH_CPU
Debian-processornamnet for vardmaskinen.
DEB_HOST_ARCH_BITS
Pekarstorleken for vardmaskinen (i bitar).
DEB_HOST_ARCH_ENDIAN
Endian for vardmaskinen (little / big).
DEB_HOST_GNU_CPU
CPU-delen av DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_SYSTEM
Systemdelen av DEB_HOST_GNU_TYPE.
DEB_HOST_GNU_TYPE
GNU-systemtypen for vardmaskinen.
DEB_HOST_MULTIARCH
Den fortydligade GNU-systemtypen for vardmaskinen, anvands for
sokvagar i filsystemet.
DEBIAN/RULES
Miljovariablerna som satts av dpkg-architecture sands till debian/rules
som make-variabler (se dokumentationen for make). Du bor dock inte bero
pa dem eftersom detta forhindrar manuella anrop till skriptet. Du bor
istallet alltid initiera dem med dpkg-architecture med -q-flaggan. Har
ar nagra exempel, vilka aven visar hur du kan forbattra stodet for
korskompilering i ditt paket:
Istallet for:
ARCH=`dpkg --print-architecture`
configure $(ARCH)-linux
anvander du foljande:
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)
Istallet for:
ARCH=`dpkg --print-architecture`
ifeq ($(ARCH),alpha)
...
endif
anvander du:
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
...
endif
eller, om du bara vill testa pa processor- eller OS-typ, anvand
variablerna DEB_HOST_ARCH_CPU eller DEB_HOST_ARCH_OS.
Generellt rekommenderas det inte att anropa dpkg i rules-filen for att
hamta information om arkitekturen (savida du inte vill tillhandahalla
bakatkompatibilitet, se nedan). Speciellt gar det inte att lita pa
flaggan --print-architecture eftersom vi har Debianarkitekturer som
inte ar identiskt med namnet pa processorn.
BAKoATKOMPATIBILITET
Variablerna DEB_*_ARCH_BITS och DEB_*_ARCH_ENDIAN introducerades i
dpkg-dev 1.15.4. Om de anvands i debian/rules maste darfor ett
byggberoende deklareras pa dpkg-dev (>= 1.15.4).
Variablerna DEB_HOST_ARCH_CPU och DEB_HOST_ARCH_OS introduceras i
dpkg-dev 1.13.2. Tidigare sag debian/rules-filer oftast pa innehallet i
variablerna DEB_HOST_GNU_CPU och DEB_HOST_GNU_TYPE, vilka har kunnat
andra pa sig.
Om debian/rules ser pa dessa variabler for att valja hur eller vad som
skall kompileras bor detta uppdateras till att anvanda de nya
variablerna och vardena. Om du vill bibehalla bakatkompatibilitet med
tidigare versioner av dpkg-dev kan du anvanda foljande kod:
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)
# Ta gammalt utdataformat fran dpkg-architecture i beaktning.
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
Och pa motsvarande satt for DEB_BUILD_ARCH_CPU och DEB_BUILD_ARCH_OS.
Om du fortfarande vill stoda versioner av dpkg-dev som inte inneholl
dpkg-architecture fungerar foljande:
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)
Lagg in en delmangd av dessa rader overst i din debian/rules-fil.
Standardvariablerna kommer skrivas over om dpkg-architecture anvands.
Du behover inte alla. Valj en konsistent delmangd som innehaller de
varden du anvander i rules-filen. Om du till exempel bara behover
vard-Debianarkitekturen racker det med "DEB_HOST_ARCH=`dpkg
--print-architecture`" (ja, det ar Debianarkitekturen pa byggmaskinen,
men kom ihag att vi bara forsoker vara bakatkompatibel med kompilering
pa samma plattform).
Flaggorna -e och -i introducerades i dpkg-architecture relativt nyligen
(sedan dpkg 1.13.13).
EXEMPEL
dpkg-architecture godtar flaggan -a och sander den vidare till
dpkg-architecture. Andra exempel:
CC=i386-gnu-gcc dpkg-architecture -c debian/rules build
eval `dpkg-architecture -u`
Kontrollera om en arkitektur ar samma som den nuvarande eller en given:
dpkg-architecture -elinux-alpha
dpkg-architecture -amips -elinux-mips
Se om den aktuella arkitekturen eller en arkitektur som anges med -a ar
ett Linuxsystem:
dpkg-architecture -ilinux-any
dpkg-architecture -ai386 -ilinux-any
FILER
Alla dessa filer maste finnas for att dpkg-architecture maste finnas.
Deras placering kan overstyras vid korning med miljovariabeln
DPKG_DATADIR.
/usr/share/dpkg/cputable
Tabell over kanda processornamn och deras motsvarande GNU-namn.
/usr/share/dpkg/ostable
Tabell over kanda operativsystemsnamn och deras motsvarande
GNU-namn.
/usr/share/dpkg/triplettable
Tabell over Debianarkitekturtripplar och deras motsvarande
Debianarkitekturnamn.
SE "AVEN
dpkg-buildpackage(1), dpkg-cross(1).
F"ORFATTARE
dpkg-architecture och denna manualsida skrevs ursprungligen av Markus
Brinkmann <brinkmd@debian.org>.
"OVERS"ATTNING
Peter Krefting och Daniel Nylander.