Provided by:
dpkg-dev_1.15.8.4ubuntu3_all 
NAMN
dpkg-architecture - stll in och bestm arkitektur fr paket som byggs
SYNOPS
dpkg-architecture [flaggor] tgrd
BESKRIVNING
dpkg-architecture innehller en funktion fr att bestmma och stlla in
bygg- och vrdarkitekturerna fr att bygga paket.
Byggarkitekturen bestms alltid av ett externt anrop till dpkg(1) och
kan inte stllas in p kommandoraden.
Du kan ange vrdarkitektur genom att ange en av, eller bda, flaggorna -a
och -t. Frvalet bestms av ett externt anrop till gcc(1), eller r
detsamma som byggarkitekturen varken CC eller gcc r tillgngliga. Det
rcker att ange en av -a och -t, vrdet p den andra kommer stllas in till
ett fungerande frval. Det r faktiskt oftast bttre att bara ange den ena
eftersom dpkg-architecture kommer varna dig om ditt val inte
verensstmmer med frvalet.
KOMMANDON
-l Skriv miljvariabler, en per rad, p formatet VARIABEL=vrde. Detta
r frvald tgrd.
-edebianarkitektur
Kontrollera arkitektur fr likhet. Som standard jmfrs
debianarkitektur mot den aktuella Debianarkitekturen, som r vrd.
tgrden expanderar inte jokertecken i arkitekturer. Kommandet
avslutar med status 0 om det r en trff, 1 om det inte r en trff.
-iarkitekturskmnster
Kontrollera identitet p arkitekturen genom att expandera
arkitekturskmnster som ett arkitekturskmnster med jokertecken,
och jmfra med den aktuella Debianarkitekturen. Kommandot
avslutas med status 0 vid trff, 1 om inte trff.
-qvariabelnamn
Skriv vrdet p en enkel variabel.
-s Visar ett exportkommando. Detta kan anvndas fr att stta
miljvariabler med eval.
-u Visar ett kommando liknande -s som fr att nollstlla alla
variabler.
-c kommando
Exekvera ett kommando i en milj som har alla variabler satta
till det bestmda vrdet.
-L Visa en lista ver giltiga arkitekturnamn.
--help Visar hjlpskrm och avslutar.
--version
Visar version och avslutar.
FLAGGOR
-adebianarkitektur
Vlj Debianarkitektur.
-tgnu-systemtyp
Vlj GNU-systemtyp.
-f Vrden som stts av befintliga miljvariabler med samma namn som de
som anvnds av skriptet anvnds (t.ex av dpkg-architecture), svida
inte denna tvingande flagga anges. Det gr det mjligt fr
anvndaren att verstyra ett vrde ven om anropet till
dpkg-architecture r begravt djupt inuti ett annat skript (till
exempel dpkg-buildpackage(1)).
TERMINOLOGI
byggmaskin
Maskinen paketet byggs p.
vrdmaskin
Maskinen paketet byggs fr.
Debianarkitektur
Debianarkitekturstrngen, vilken anger binrtrdet i -s1FT-arkivet.
Exempel: i386, sparc, hurd-i386.
arkitekturskmnster
Ett arkitekturskmnster r en speciell arkitekturstrng som matchar
alla kta arkitekturer som finns i den. Den genella formen r
<krna>-<cpu>. Exempel: linux-any, any-i386, hurd-any.
GNU-systemtyp
En arkitekturspecificeringsstrng bestr av tv delar, avdelade med
bindestreck: processor och system. Exempel: i386-linux-gnu,
sparc-linux-gnu, i386-gnu, x86_64-netbsd.
VARIABLER
Fljande variabler stts av dpkg-architecture:
DEB_BUILD_ARCH
Debianarkitekturen fr byggmaskinen.
DEB_BUILD_ARCH_OS
Debiansystemnamnet fr byggmaskinen.
DEB_BUILD_ARCH_CPU
Debian-processornamnet fr byggmaskinen.
DEB_BUILD_ARCH_BITS
Pekarstorleken fr byggmaskinen (i bitar).
DEB_BUILD_ARCH_ENDIAN
Endian fr 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 fr byggmaskinen.
DEB_HOST_ARCH
Debianarkitekturen fr vrdmaskinen.
DEB_HOST_ARCH_OS
Debiansystemnamnet fr vrdmaskinen.
DEB_HOST_ARCH_CPU
Debian-processornamnet fr vrdmaskinen.
DEB_HOST_ARCH_BITS
Pekarstorleken fr vrdmaskinen (i bitar).
DEB_HOST_ARCH_ENDIAN
Endian fr vrdmaskinen (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 fr vrdmaskinen.
DEBIAN/RULES
Miljvariablerna som stts av dpkg-architecture snds till debian/rules
som make-variabler (se dokumentationen fr make). Du br dock inte bero p
dem eftersom detta frhindrar manuella anrop till skriptet. Du br
istllet alltid initiera dem med dpkg-architecture med -q-flaggan. Hr r
ngra exempel, vilka ven visar hur du kan frbttra stdet fr
korskompilering i ditt paket:
Istllet fr:
ARCH=`dpkg --print-architecture`
configure $(ARCH)-linux
anvnder du fljande:
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)
Istllet fr:
ARCH=`dpkg --print-architecture`
ifeq ($(ARCH),alpha)
...
endif
anvnder du:
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
ifeq ($(DEB_HOST_ARCH),alpha)
...
endif
eller, om du bara vill testa p processor- eller OS-typ, anvnd
variablerna DEB_HOST_ARCH_CPU eller DEB_HOST_ARCH_OS.
Generellt rekommenderas det inte att anropa dpkg i rules-filen fr att
hmta information om arkitekturen (svida du inte vill tillhandahlla
baktkompatibilitet, se nedan). Speciellt gr det inte att lita p flaggan
--print-architecture eftersom vi har Debianarkitekturer som inte r
identiskt med namnet p processorn.
BAKTKOMPATIBILITET
Variablerna DEB_*_ARCH_BITS och DEB_*_ARCH_ENDIAN introducerades i
dpkg-dev 1.15.4. Om de anvnds i debian/rules mste drfr ett byggberoende
deklareras p dpkg-dev (>= 1.15.4).
Variablerna DEB_HOST_ARCH_CPU och DEB_HOST_ARCH_OS introduceras i
dpkg-dev 1.13.2. Tidigare sg debian/rules-filer oftast p innehllet i
variablerna DEB_HOST_GNU_CPU och DEB_HOST_GNU_TYPE, vilka har kunnat
ndra p sig.
Om debian/rules ser p dessa variabler fr att vlja hur eller vad som
skall kompileras br detta uppdateras till att anvnda de nya variablerna
och vrdena. Om du vill bibehlla baktkompatibilitet med tidigare
versioner av dpkg-dev kan du anvnda fljande 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 frn 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 p motsvarande stt fr DEB_BUILD_ARCH_CPU och DEB_BUILD_ARCH_OS.
Om du fortfarande vill stda versioner av dpkg-dev som inte innehll
dpkg-architecture fungerar fljande:
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)
Lgg in en delmngd av dessa rader verst i din debian/rules-fil.
Standardvariablerna kommer skrivas ver om dpkg-architecture anvnds.
Du behver inte alla. Vlj en konsistent delmngd som innehller de vrden
du anvnder i rules-filen. Om du till exempel bara behver
vrd-Debianarkitekturen rcker det med "DEB_HOST_ARCH=`dpkg
--print-architecture`" (ja, det r Debianarkitekturen p byggmaskinen,
men kom ihg att vi bara frsker vara baktkompatibel med kompilering p
samma plattform).
Flaggorna -e och -i introducerades i dpkg-architecture relativt nyligen
(sedan dpkg 1.13.13).
EXEMPEL
dpkg-architecture godtar flaggan -a och snder 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 r 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 r
ett Linuxsystem:
dpkg-architecture -ilinux-any
dpkg-architecture -ai386 -ilinux-any
FILER
Alla dessa filer mste finnas fr att dpkg-architecture mste finnas.
Deras placering kan verstyras vid krning med miljvariabeln
DPKG_DATADIR.
/usr/share/dpkg/cputable
Tabell ver knda processornamn och deras motsvarande GNU-namn.
/usr/share/dpkg/ostable
Tabell ver knda operativsystemsnamn och deras motsvarande
GNU-namn.
/usr/share/dpkg/triplettable
Tabell ver Debianarkitekturtripplar och deras motsvarande
Debianarkitekturnamn.
SE VEN
dpkg-buildpackage(1), dpkg-cross(1).
FRFATTARE
dpkg-architecture och denna manualsida skrevs ursprungligen av Markus
Brinkmann <brinkmd@debian.org>.
VERSTTNING
Peter Krefting och Daniel Nylander.