dpkg-architecture(1)

NOM
dpkg-architecture - Fixer et déterminer l'architecture pour la construction d'un paquet

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

DESCRIPTION
dpkg-architecture aide à déterminer et à fixer l'architecture de construction et l'architecture hôte pour la création d'un paquet.

L'architecture de construction est toujours déterminée par un appel externe à dpkg(1). Elle ne peut pas être spécifiée en ligne de commande.

Vous pouvez spécifier une architecture hôte en utilisant une des options -a et -t (ou les deux). Par défaut, la valeur est déterminée par un appel à gcc(1), ou en utilisant l'architecture de construction si CC ou gcc ne sont pas disponibles. Utiliser une seule des options -a et -t est suffisant, la valeur de l'une est utilisée comme valeur par défaut de l'autre. Bien sûr, il est préférable de n'en préciser qu'une seule, puisque dpkg-architecture affichera un avertissement si le choix ne correspond pas à la valeur par défaut.

COMMANDES

-l  Affiche les variables d'environnement, une par ligne, en utilisant le format VARIABLE=valeur. C'est l'action par défaut.

-earchitecture-debian
    Vérifie l'égalité d'architectures. Par défaut, architecture-debian est comparée à l'architecture Debian actuelle, qui est celle de la machine hôte. Cette action ne développe pas les architectures joker. La commande quitte avec un code de retour de 0 si l'architecture correspond et de 1 dans le cas contraire.

-iarchitecture-joker
    Vérifie l'égalité d'architectures en développant architecture-joker et en comparant à l'architecture Debian actuelle. La commande quitte avec un code de retour de 0 si l'architecture correspond et de 1 dans le cas contraire.

-qnom-de-variable
    Affiche la valeur d'une seule variable.

-s  Produit une commande, qui peut être utilisée pour positionner les variables d'environnement avec « eval ».

-u  Produit une commande similaire à celle produite par -s, mais pour supprimer les variables de l'environnement.

-c commande
    Exécute une commande dans un environnement où toutes les variables sont positionnées aux valeurs spécifiées.

-L  Affiche une liste des architectures valables.

--help
    Affiche un message d'aide puis quitte.

--version
    Affiche le numéro de version puis quitte.

OPTIONS

-aarchitecture-debian
    Fixe l'architecture Debian.

-ttype-de-système-gnu
    Fixe le type de système GNU.

-f  Les valeurs positionnées par les variables d'environnement ayant le même nom que celles utilisées par les scripts sont prises en compte (c'est-à-dire utilisée par dpkg-architecture), sauf si cette option est présente. Ceci permet à un utilisateur de surcharger une valeur même lorsque l'appel à dpkg-architecture est inclus dans un autre script (par exemple dpkg-buildpackage(1)).

TERMINOLOGIE

Machine de construction
    Machine sur laquelle le paquet est construit.

Machine hôte
    Machine pour laquelle le paquet est construit.

Architecture Debian
    Chaîne de caractères de l'architecture Debian, qui spécifie l'emplacement dans l'archive FTP. Par exemple : i386, sparc, hurd-i386.

Architecture joker
    Une architecture joker est une architecture spéciale qui correspond à toutes les architectures réelles qui en font partie. Il est en général de la forme <noyau>-<processeur>. Par exemple : linux-any, any-i386, hurd-any.

Type de système GNU
    Chaîne de caractères définissant l'architecture et constituée de deux parties séparées par un tiret : processeur et système. Par exemple : i386-linux-gnu, sparc-linux-gnu, i386-gnu, x86_64-netbsd.

VARIABLES D'ENVIRONNEMENT
Les variables suivantes sont positionnées par dpkg-architecture :

DEB_BUILD_ARCH
    Architecture Debian de la machine de construction.

DEB_BUILD_ARCH_OS
    Nom du système Debian de la machine de construction.

DEB_BUILD_ARCH_CPU
    Nom de processeur Debian de la machine de construction.

DEB_BUILD_ARCH_BITS
    Taille de pointeur de la machine de construction (en bits).

DEB_BUILD_ARCH_ENDIAN
    « Endianness» de la machine de construction (little ou big).

DEB_BUILD_GNU_CPU
    Partie CPU de DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_SYSTEM
    Partie « système » de DEB_BUILD_GNU_TYPE.

DEB_BUILD_GNU_TYPE
    Type de système GNU de la machine de construction.

DEB_BUILD_MULTIARCH
    Le type de système clarifié GNU de la machine de construction, utilisé pour les chemins du système de fichiers.

DEB_HOST_ARCH
    Architecture Debian de la machine hôte.

DEB_HOST_ARCH_OS
    Nom du système Debian de la machine hôte.

DEB_HOST_ARCH_CPU
    Nom du processeur Debian de la machine hôte.

DEB_HOST_ARCH_BITS
    Taille de pointeur de la machine hôte (en bits).

DEB_HOST_ARCH_ENDIAN
    « Endianess » de la machine hôte (little ou big).

DEB_HOST_GNU_CPU
    Partie « processeur » de DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_SYSTEM
    Partie « système » de DEB_HOST_GNU_TYPE.

DEB_HOST_GNU_TYPE
    Type de système GNU de la machine hôte.

DEB_HOST_MULTIARCH
    Le type de système clarifié GNU de la machine hôte, utilisé pour les chemins du système de fichiers.

DEBIAN/RULES
Les variables d'environnement définies par dpkg-architecture sont fournies à debian/rules comme variables pour make (consultez la documentation de make). Cependant, vous ne devez pas compter là-dessus puisque cela empêche les appels manuels à ce script. À la place, vous devez toujours les initialiser en utilisant dpkg-architecture avec l'option -q. Voici quelques exemples, qui indiquent aussi comment améliorer la gestion des compilations croisées de votre paquet :

Récupération du type de système GNU et passage à ./configure :

    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)

Effectuer une action pour une architecture spécifique :

    DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

Ou, si vous n'avez besoin que de vérifier le type du processeur et du système, utilisez les variables DEB_HOST_ARCH_CPU ou DEB_HOST_ARCH_OS.

Veuillez noter qu'il est également possible d'utiliser un fragment externe de fichier Makefile pour définir correctement toutes les variables que dpkg-architecture peut fournir :

    include /usr/share/dpkg/architecture.mk
    ifeq ($(DEB_HOST_ARCH),alpha)
      [...]
    endif

Dans tous les cas, il ne faut jamais utiliser dpkg --print-architecture pour récupérer les informations relatives à l'architecture pendant la construction d'un paquet.

COMPATIBILITÉ ARRIÈRE
Le fragment de fichier Makefile /usr/share/dpkg/architecture.mk Makefile est fourni par dpkg-dev depuis la version 1.16.1.

Les variables DEB_*_ARCH_BITS et DEB_*_ARCH_ENDIAN sont apparues avec la version 1.15.4 de dpkg-dev. Si elles sont utilisées dans debian/rules, une dépendance de construction sur dpkg-dev (>= 1.15.4) est nécessaire.

Les variables DEB_HOST_ARCH_CPU et DEB_HOST_ARCH_OS sont apparues dans la version 1.13.2 de dpkg-dev.

Les options -e et -i n'ont été ajoutées que relativement récemment à dpkg-architecture (depuis la version 1.13.13 de dpkg).

EXEMPLES
dpkg-buildpackage accepte l'option -a, et la passe à dpkg-architecture. Voici d'autres exemples :

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

    eval `dpkg-architecture -u`

Vérifie si une architecture est identique à l'architecture actuelle ou à celle spécifiée :

    dpkg-architecture -elinux-alpha

    dpkg-architecture -amips -elinux-mips

Vérifie si l'architecture actuelle ou celle spécifiée avec -a correspond à un système Linux :

    dpkg-architecture -ilinux-any

    dpkg-architecture -ai386 -ilinux-any

FICHIERS
Tous ces fichiers sont nécessaires afin que dpkg-architecture puisse fonctionner. Leurs emplacements peuvent être modifiés lors du traitement via la variable d'environnement DPKG_DATADIR.

/usr/share/dpkg/cputable
    Table des noms de processeurs connus et liaison avec leur nom GNU.

/usr/share/dpkg/ostable
    Table des noms des systèmes d'exploitation connus et liaison avec leurs noms GNU.

/usr/share/dpkg/triplettable
    Correspondances entre les triplets de l'architecture Debian et les noms des architectures Debian.

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

TRADUCTION
Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.