Provided by: dpkg-dev_1.21.9ubuntu1_all bug

NOM

       dpkg-buildflags - Renvoie les options de compilation à utiliser pour la construction du
       paquet

SYNOPSIS

       dpkg-buildflags [option...] [commande]

DESCRIPTION

       dpkg-buildflags est un script qui permet de récupérer les options de compilation à
       utiliser pour la construction d'un paquet.

       Les drapeaux par défaut sont définis par le distributeur mais peuvent être étendus ou
       remplacés de plusieurs façons :

       1.  pour tout le système avec /etc/dpkg/buildflags.conf ;

       2.  pour l'utilisateur courant avec $XDG_CONFIG_HOME/dpkg/buildflags.conf où la valeur par
           défaut de $XDG_CONFIG_HOME est $HOME/.config ;

       3.  temporairement par l'utilisateur avec des variables d'environnement (voir VARIABLES
           D'ENVIRONNEMENT) ;

       4.  dynamiquement par le responsable du paquet avec des variables d'environnement à l'aide
           de debian/rules (voir VARIABLES D'ENVIRONNEMENT).

       Les fichiers de configuration peuvent contenir quatre types de directives :

       SET flag value
           Remplace le drapeau drapeau par la valeur valeur.

       STRIP flag value
           Retire du drapeau drapeau tous les drapeaux de construction listés dans valeur.

       APPEND flag value
           Étend le drapeau drapeau avec les options indiquées dans valeur. Une espace est
           ajoutée au début de ce qui est ajouté si la valeur actuelle du drapeau n'est pas vide.

       PREPEND flag value
           Préfixe le drapeau drapeau avec les options indiquées dans valeur. Une espace est
           ajoutée au début de ce qui est ajouté si la valeur actuelle du drapeau n'est pas vide.

       Les fichiers de configuration peuvent contenir des commentaires sur les lignes commençant
       par un dièse (#). Les lignes vides sont également ignorées.

COMMANDES

       --dump
           Affiche sur la sortie standard tous les drapeaux de compilation et leurs valeurs. Un
           drapeau par ligne est affiché, suivi de sa valeur, séparée par le caractère « égal »
           (« drapeau=valeur »). Il s'agit de l'action par défaut.

       --list
           Affiche la liste des drapeaux gérés par le distributeur actuel (un par ligne). Voir la
           section DRAPEAUX GÉRÉS pour plus d'informations sur chacun d'eux.

       --status
           Affiche toute information utile pour expliquer le comportement de dpkg-buildflags
           (depuis dpkg 1.16.5) : variables d'environnement, distributeur actuel, état de tous
           les drapeaux de fonctionnalités. Affiche également les drapeaux de compilation
           résultants ainsi que leur origine.

           Cette option est destinée à être utilisée depuis debian/rules, afin de garder dans le
           journal de construction une trace claire des drapeaux de compilation utilisés. Cela
           peut être utile pour diagnostiquer des problèmes qui y seraient liés.

       --export=format
           Affiche sur la sortie standard les commandes qui permettent d'exporter tous les
           drapeaux de compilation pour un outil particulier. Si format n'est pas spécifié, sa
           valeur est sh. Seuls les drapeaux de compilation commençant par une majuscule sont
           inclus, les autres étant supposés inadaptés à l'environnement. Formats pris en
           charge :

           sh  Commandes shell pour définir et exporter tous les drapeaux de compilation dans
               l'environnement. Les valeurs drapeau sont protégées et ainsi la sortie est prête à
               être évaluée par un shell.

           cmdline
               Arguments à passer à la ligne de commande d'un programme de construction pour
               utiliser tous les drapeaux de compilation (depuis dpkg 1.17.0). Les valeurs
               drapeau sont protégées dans la syntaxe du shell.

           configure
               C'est un ancien alias pour cmdline.

           make
               Directives de make pour définir et exporter tous les drapeaux de compilation dans
               l'environnement. La sortie peut être écrite dans un fragment de Makefile et
               évaluée en utilisant une directive include.

       --get drapeau
           Affiche la valeur de ce drapeau sur la sortie standard. Retourne un code de sortie 0
           si le drapeau est connu et 1 s'il est inconnu.

       --origin drapeau
           Affiche l'origine de la valeur renvoyée par --get. Retourne un code de sortie 0 si le
           drapeau est connu et 1 s'il est inconnu. L'origine est une des valeurs suivantes :

           vendor
               le drapeau défini à l'origine par le distributeur est renvoyé ;

           system
               le drapeau est placé ou modifié par un réglage système ;

           user
               le drapeau est placé ou modifié par une configuration spécifique à l'utilisateur ;

           env le drapeau est placé ou modifié par une configuration spécifique dans
               l'environnement.

       --query
           Affiche toute information utile pour expliquer le comportement du programme :
           distributeur actuel, variables d'environnement, domaines des fonctionnalités, état de
           tous les drapeaux de fonctionnalités. Affiche également les drapeaux de compilation
           résultants ainsi que leur origine (depuis dpkg 1.19.0).

           Par exemple :

            Vendor: Debian
            Environment:
             DEB_CFLAGS_SET=-O0 -Wall

            Area: qa
            Features:
             bug=no
             canary=no

            Area: reproducible
            Features:
             timeless=no

            Flag: CFLAGS
            Value: -O0 -Wall
            Origin: env

            Flag: CPPFLAGS
            Value: -D_FORTIFY_SOURCE=2
            Origin: vendor

       --query-features domaine
           Affiche les fonctionnalités activées pour un domaine donné (depuis dpkg 1.16.2). Les
           seuls domaines reconnus actuellement sur Debian et ses dérivés sont future, qa,
           reproducible, sanitize et hardening, voir la section ZONES D'OPTION pour plus de
           détails. Retourne un code de sortie 0 si le domaine est connu et 1 s'il est inconnu.

           L'affichage est dans le format RFC822, avec une section par fonctionnalité. Par
           exemple :

            Feature: pie
            Enabled: yes

            Feature: stackprotector
            Enabled: yes

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

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

DRAPEAUX GÉRÉS

       ASFLAGS
           Options for the assembler. Default value: empty. Since dpkg 1.21.0.

       CFLAGS
           Options du compilateur C. La valeur par défaut définie par le distributeur comporte -g
           et le niveau d'optimisation par défaut (-O2 en général, ou -O0 si la variable
           d'environnement DEB_BUILD_OPTIONS contient noopt).

       CPPFLAGS
           Options du préprocesseur C. Valeur par défaut : aucune.

       CXXFLAGS
           Options du compilateur C++. Analogue à CFLAGS.

       OBJCFLAGS
           Options du compilateur Objective C. Analogue à CFLAGS.

       OBJCXXFLAGS
           Options du compilateur Objective C++. Analogue à CXXFLAGS.

       GCJFLAGS
           Options du compilateur Java GNU (gcj). Un sous-ensemble de CFLAGS.

       DFLAGS
           Options for the D compiler (ldc or gdc). Since dpkg 1.20.6.

       FFLAGS
           Options du compilateur Fortran 77. Un sous-ensemble de CFLAGS.

       FCFLAGS
           Options du compilateur Fortran 9x. Analogue à FFLAGS.

       LDFLAGS
           Options passées au compilateur lors du processus de liaison des exécutables ou des
           objets partagés (si le linker est appelé directement, alors -Wl et , doivent être
           retirés de ces options). Valeur par défaut : aucune.

       De nouveaux drapeaux pourront être ajoutés si besoin est (par exemple pour la prise en
       charge de nouveaux langages).

ZONES D'OPTION

       Chaque option de zone peut être activée ou désactivée avec les valeurs DEB_BUILD_OPTIONS
       et DEB_BUIL_MAINT_OPTIONS de l'espace de variables d'environnement grâce aux modificateurs
       « + » et « - ». Par exemple, pour activer l'option hardening « pie » et désactiver
       l'option « fortify », il est possible d'indiquer cela dans debian/rules :

           export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify

       L'option spéciale all (valable dans toutes les zones) peut être utilisée pour activer ou
       désactiver toutes les options de la zone à la fois. Ainsi, tout désactiver dans la zone
       hardening en n'activant que « format » et « fortify » peut être réalisé avec :

           export DEB_BUILD_MAINT_OPTIONS=hardening=-all,+format,+fortify

   future
       Plusieurs options de compilation (détaillées ci-dessous) peuvent être utilisées pour
       activer des fonctionnalités qui devraient être activées par défaut, mais ne peuvent pas
       l'être pour des raisons de compatibilité avec les versions précédentes.

       lfs Ce paramètre (désactivé par défaut) active la prise en charge des gros fichiers (LFS)
           sur les architectures 32 bits où l'ABI n'inclut pas LFS par défaut, en ajoutant
           -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 à CPPFLAGS.

   qa
       Plusieurs options de compilation (détaillées ci-dessous) peuvent être utilisées pour
       détecter des problèmes dans le code source ou dans le système de construction.

       bug Ce paramètre (désactivé par défaut) ajoute toutes les options d'avertissement
           détectant de façon fiable du code source problématique. Les avertissements sont
           fatals. Les seuls drapeaux actuellement gérés sont CFLAGS et CXXFLAGS avec des
           drapeaux définis à -Werror=array-bounds, -Werror=clobbered,
           -Werror=implicit-function-declaration et -Werror=volatile-register-var.

       canary
           Ce paramètre (désactivé par défaut) ajoute des options détectrices « canary » factices
           aux drapeaux de construction de telle sorte que les rapports de compilation
           permettront de vérifier la façon dont ces drapeaux se propagent et de repérer toute
           omission des paramètres de drapeaux habituels. Les drapeaux actuellement pris en
           charge sont CPPFLAGS, CFLAGS, OBJCFLAGS, CXXFLAGS ainsi que OBJCXXFLAGS, avec les
           drapeaux définis à -D__DEB_CANARY_flag_random-id__, et LDFLAGS paramétré à
           -Wl,-z,deb-canary-random-id.

   optimize
       Several compile-time options (detailed below) can be used to help optimize a resulting
       binary (since dpkg 1.21.0). Note: enabling all these options can result in unreproducible
       binary artifacts.

       lto This setting (since dpkg 1.21.0; disabled by default) enables Link Time Optimization
           by adding -flto=auto -ffat-lto-objects to CFLAGS, CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS,
           GCJFLAGS, FFLAGS, FCFLAGS and LDFLAGS.

   sanitize
       Plusieurs options de compilation (détaillées ci-dessous) peuvent être utilisées pour aider
       à nettoyer le binaire compilé face aux corruptions de la mémoire, aux fuites de mémoire, à
       l'utilisation de mémoire après libération et à des bogues au comportement indéfini. Note :
       ces options ne devraient pas être utilisées pour des constructions en production car elles
       peuvent réduire la fiabilité du code, réduire la sécurité ou même les fonctionnalités.

       address
           Ce paramètre (désactivé par défaut) ajoute -fsanitize=address à LDFLAGS et
           -fsanitize=address -fno-omit-frame-pointer à CFLAGS et CXXFLAGS.

       thread
           Ce paramètre (désactivé par défaut) ajoute -fsanitize=thread à CFLAGS, CXXFLAGS et
           LDFLAGS.

       leak
           Ce paramètre (désactivé par défaut) ajoute -fsanitize=leak à LDFLAGS. Il est
           automatiquement désactivé si les fonctions address ou thread sont activées, parce
           qu'elles l'impliquent.

       undefined
           Ce paramètre (désactivé par défaut) ajoute -fsanitize=undefined à CFLAGS, CXXFLAGS et
           LDFLAGS.

   compilation renforcée
       Plusieurs options de compilation (détaillées ci-dessous) peuvent être utilisées pour
       accroître la résistance du binaire compilé face aux attaques par corruption de la mémoire
       ou fournir des messages d'avertissement supplémentaires lors de la compilation. Sauf
       mention contraire (voir ci-dessous), ces options sont activées par défaut pour les
       architectures qui les gèrent.

       format
           Ce réglage, activé par défaut, ajoute -Wformat -Werror=format-security à CFLAGS,
           CXXFLAGS, OBJCFLAGS et OBJCXXFLAGS. Cela provoquera l'avertissement en cas
           d'utilisation de chaînes de formatage incorrectes et échouera si les fonctions de
           formatage sont utilisées d'une façon qui présente des risques pour la sécurité.
           Actuellement, ce réglage crée des avertissements pour les appels des fonctions printf
           et scanf lorsque la chaîne de formatage n'est pas une chaîne littérale et qu'aucun
           paramètre de formatage n'est utilisé (par exemple dans printf(foo); au lieu de
           printf("%s", foo);. Ce type de syntaxe peut créer un problème de sécurité si la chaîne
           de formatage vient d'une source non sûre et contient « %n ».

       fortify
           Ce réglage, activé par défaut, ajoute -D_FORTIFY_SOURCE=2 à CPPFLAGS. Lors de la
           création du code, le compilateur connaît un nombre important d'informations relatives
           aux tailles de tampons (quand c'est possible) et tente alors de remplacer des appels
           de fonctions avec une taille illimitée de tampons, peu sûrs, par des appels avec des
           tampons de taille limitée. Cette fonctionnalité est particulièrement utile pour du
           code ancien et mal écrit. De plus, les chaînes de formatage dans la mémoire accessible
           en écriture qui contiennent « %n » sont bloquées. Si une application dépend de telles
           chaînes de formatage, un contournement devra être mis en place.

           Veuillez noter que pour que cette option fasse effet, le source devra aussi être
           compilée avec -O1 ou plus. Si la variable d'environnement DEB_BUILD_OPTIONS contient
           noopt, la prise en charge de fortify sera désactivée du fait des nouveaux
           avertissements émis par la glibc version 2.16 et ultérieure.

       stackprotector
           Ce réglage (activé par défaut si stackprotectorstrong n'est pas employé), ajoute
           -fstack-protector --param=ssp-buffer-size=4 à CFLAGS, CXXFLAGS, OBJCFLAGS,
           OBJCXXFLAGS, GCJFLAGS, FFLAGS et FCFLAGS. Il ajoute des contrôles liés aux réécritures
           de piles. Cela conduit des tentatives d'attaques par injection de code à terminer en
           échec. Dans le meilleur des cas, cette protection transforme une vulnérabilité
           d'injection de code en déni de service ou en non-problème (selon les applications).

           Cette fonctionnalité impose de lier le code à la glibc (ou toute autre bibliothèque
           fournissant __stack_chk_fail) et doit donc être désactivée lorsque le code est
           construit avec -nostdlib, -ffreestanding ou équivalents.

       stackprotectorstrong
           Ce réglage, activé par défaut, ajoute -fstack-protector-strong à CFLAGS, CXXFLAGS,
           OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS et FCFLAGS. Il s'agit d'une version renforcée
           de stackprotector qui n'affecte pas les performances de manière importante.

           Désactiver stackprotector désactive également ce paramètre.

           Cette fonctionnalité a les même exigences que stackprotector, en plus de nécessiter
           gcc 4.9 ou plus récent.

       relro
           Ce réglage, activé par défaut, ajoute -Wl,-z,relro à LDFLAGS. Lors du chargement du
           programme, plusieurs parties de la mémoire ELF doivent être écrites par l'éditeur de
           liens. Ce réglage indique au chargeur de mettre ces sections en lecture seule avant de
           rendre le contrôle au programme. L'utilisation habituelle de ce réglage est la
           protection contre les attaques par réécriture GOT. Si cette option est désactivée,
           l'option bindnow sera également désactivée.

       bindnow
           Ce réglage, désactivé par défaut, ajoute -Wl,-z,now à LDFLAGS. Lors du chargement du
           programme, tous les symboles dynamiques sont résolus, ce qui permet au PLT (Procedure
           Linkage Table) entier d'être en lecture seule (du fait du réglage relro ci-dessus).
           Cette option ne peut être activée si relro ne l'est pas.

       pie Ce réglage (sans option globale par défaut depuis dpkg 1.18.23, parce qu'il est
           maintenant activé par défaut par gcc dans les architectures Debian amd64, arm64,
           armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, mips64el,
           powerpc, ppc64, ppc64el, riscv64, s390x, sparc et sparc64) ajoute les options requises
           pour activer ou désactiver PIE (exécutable indépendant de l'emplacement) au moyen des
           fichiers de spécifications de gcc, si nécessaire, selon que gcc injecte sur cette
           architecture les drapeaux par lui-même ou non. Si le réglage est activé et que gcc
           injecte les drapeaux, il n'ajoute rien. Si le réglage est activé et que gcc n'injecte
           pas les drapeaux, il ajoute -fPIE (au moyen de /usr/share/dpkg/pie-compiler.specs) à
           CFLAGS, CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS et FCFLAGS, et -fPIE -pie
           (au moyen de /usr/share/dpkg/pie-link.specs) à LDFLAGS. Si le réglage est désactivé et
           que gcc injecte les drapeaux, il ajoute -fno-PIE (au moyen de
           /usr/share/dpkg/no-pie-compile.specs) à CFLAGS, CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS,
           GCJFLAGS, FFLAGS et FCFLAGS, et -fno-PIE -no-pie (au moyen de
           /usr/share/dpkg/no-pie-link.specs) à LDFLAGS.

           Les exécutables à position indépendante (« Position Independent Executable »)
           permettent d'utiliser la randomisation de l'organisation de l'espace d'adressage
           (ASLR : « Address Space Layout Randomization »), qui est gérée par certaines versions
           du noyau. Bien que ASLR puisse déjà être mise en œuvre pour les zones de données dans
           la pile et le tampon (brk et mmap), les zones de codes doivent être compilées comme
           indépendantes de la position. Les bibliothèques partagées font déjà cela (-fPIC) ce
           qui permet automatiquement d'utiliser ASLR. Par contre les régions .text binaires
           doivent être construites en mode PIE pour mettre en œuvre ASLR. Une fois cela réalisé,
           les attaques ROP (« Return Oriented Programming ») deviennent plus difficiles car il
           n'existe pas d'emplacement statique d'où rebondir pendant une attaque par corruption
           de la mémoire.

           PIE n'est pas compatible avec fPIC, aussi, en général, des précautions doivent être
           prises lors de la construction d'objets partagés. Mais comme les drapeaux PIE émis
           sont injectés par des fichiers de spécifications de gcc, il devrait toujours être sûr
           de les définir sans condition indépendamment du type d'objet en train d'être compilé
           ou lié.

           Les bibliothèques statiques peuvent être utilisées par des programmes ou d'autres
           bibliothèques partagées. Selon les drapeaux utilisés pour compiler tous les objets
           d'une bibliothèque statique, ces bibliothèques seront utilisables par divers ensembles
           d'objets :

           none
               Ne peut être lié ni à un programme PIE, ni à une bibliothèque partagée.

           -fPIE
               Peut être lié à tout programme, mais pas à une bibliothèque partagée (recommandé).

           -fPIC
               Peut être lié à tout programme et toute bibliothèque partagée.

           S'il est nécessaire de régler ces drapeaux manuellement, en contournant l'injonction
           des spécifications de gcc, il y a plusieurs choses à prendre en compte. Le passage
           sans condition et de façon explicite de -fPIE, -fpie ou -pie à un système de
           construction en utilisant libtool est sûr dans la mesure où ces drapeaux seront
           retirés lors de la construction de bibliothèques partagées. Sinon, sur les projets qui
           construisent à la fois des programmes et des bibliothèques partagées, il faudrait
           s'assurer que, lors de la construction des bibliothèques partagées, -fPIC soit
           toujours passé en dernier aux drapeaux de compilation tels que CFLAGS (de sorte qu'il
           remplace tout -PIE antérieur), et que -shared soit passé en dernier aux drapeaux de
           création de lien tels que LDFLAGS (de sorte qu'il remplace tout -pie antérieur).
           Note : Cela ne devrait pas être nécessaire avec les mécanismes de spécification de gcc
           par défaut.

           De plus, comme la protection PIE est mise en œuvre à l'aide d'un registre global,
           certaines architectures privées de registre (mais plus i386 depuis les optimisations
           mises en œuvre dans gcc >= 5) peuvent souffrir de pertes de performances allant
           jusqu'à 15 % sur des charges d'applications utilisant largement les segments de
           texte ; le plus souvent, cette perte de performances n’excédera pas 1 %. Pour des
           architectures offrant plus de registres globaux (par exemple amd64), cette
           pénalisation n'existe pratiquement pas.

   reproductible
       Les options de compilation (détaillées ci-dessous) peuvent aider à améliorer la
       reproductibilité de la construction ou fournir des messages d'avertissement
       supplémentaires lors de la compilation. Sauf mention contraire (voir ci-dessous), ces
       options sont activées par défaut pour les architectures qui les gèrent.

       timeless
           Ce paramètre, activé par défaut, ajoute -Wdate-time à CPPFLAGS. Cela provoquera des
           avertissements quand les macros __TIME__, __DATE__ et __TIMESTAMP__ sont utilisées.

       fixfilepath
           This setting (enabled by default) adds -ffile-prefix-map=BUILDPATH=. to CFLAGS,
           CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS and FCFLAGS where BUILDPATH is set
           to the top-level directory of the package being built. This has the effect of removing
           the build path from any generated file.

           Si à la fois fixdebugpath et fixfilepath sont définis, cette option a la priorité
           parce c'est un sur-ensemble du premier.

       fixdebugpath
           Ce réglage, activé par défaut, ajoute -fdebug-prefix-map=BUILDPATH=. à CFLAGS,
           CXXFLAGS, OBJCFLAGS, OBJCXXFLAGS, GCJFLAGS, FFLAGS et FCFLAGSBUILDPATH est fixé
           sur le répertoire de plus haut niveau du paquet en construction. Cela a pour effet de
           retirer le chemin de construction de tous les symboles de débogage générés.

ENVIRONNEMENT

       Deux jeux de variables d'environnement effectuent les mêmes opérations. Le premier
       (DEB_drapeau_opération) ne devrait jamais être utilisé depuis debian/rules. Il est destiné
       aux utilisateurs souhaitant recompiler le paquet source avec des drapeaux de compilation
       modifiés. Le second (DEB_drapeau_MAINT_opération) ne doit être utilisé que dans
       debian/rules par les responsables de paquets pour modifier les drapeaux de compilation
       concernés.

       DEB_drapeau_SET
       DEB_drapeau_MAINT_SET
           Cette variable permet de forcer la valeur renvoyée pour le drapeau indiqué.

       DEB_drapeau_STRIP
       DEB_drapeau_MAINT_STRIP
           Cette variable peut être utilisée pour fournir une liste d'options (séparées par des
           espaces) qui seront retirées du jeu de drapeaux renvoyé pour le drapeau indiqué.

       DEB_drapeau_APPEND
       DEB_drapeau_MAINT_APPEND
           Cette variable permet d'ajouter des options à la valeur renvoyée pour le drapeau
           indiqué.

       DEB_drapeau_PREPEND
       DEB_drapeau_MAINT_PREPEND
           Cette variable permet de préfixer la valeur renvoyée pour le drapeau indiqué par des
           options supplémentaires.

       DEB_BUILD_OPTIONS
       DEB_BUILD_MAINT_OPTIONS
           Ces variables peuvent être utilisées par un utilisateur ou un responsable de paquet
           pour activer ou désactiver différentes options de zone qui affectent les drapeaux de
           construction. La variable DEB_BUILD_MAINT_OPTIONS outrepasse tous les paramètres de la
           zone d'options DEB_BUILD_OPTIONS. Voir la section ZONES D'OPTION pour plus de détails.

       DEB_VENDOR
           Ce réglage définit l'éditeur (« vendor ») actuel. Si cette valeur est vide, le contenu
           du fichier /etc/dpkg/origins/default est utilisé.

       DEB_BUILD_PATH
           Cette variable configure le chemin de construction (depuis dpkg 1.18.8) à utiliser
           avec des fonctions telles que fixdebugpath de telle sorte qu'elles soient contrôlées
           par l'appelant. Cette variable est actuellement spécifique à Debian et à ses dérivés.

       DPKG_COLORS
           Définit le mode de couleur (depuis dpkg 1.18.5). Les valeurs actuellement acceptées
           sont auto (par défaut), always et never.

       DPKG_NLS
           Si cette variable est définie, elle sera utilisée pour décider l'activation de la
           prise en charge des langues (NLS – Native Language Support), connu aussi comme la
           gestion de l'internationalisation (ou i18n) (depuis dpkg 1.19.0). Les valeurs permises
           sont : 0 et 1 (par défaut).

FICHIERS

   Fichiers de configuration.
       /etc/dpkg/buildflags.conf
           Fichier de configuration pour l'ensemble du système.

       $XDG_CONFIG_HOME/dpkg/buildflags.conf or
       $HOME/.config/dpkg/buildflags.conf
           Fichier de configuration propre à l'utilisateur

   Gestion de l'empaquetage
       /usr/share/dpkg/buildflags.mk
           Fragment de fichier Makefile qui chargera (et facultativement exportera) dans les
           variables (depuis dpkg 1.16.1) tous les drapeaux pris en charge par dpkg-buildflags.

EXEMPLES

       Pour passer des drapeaux de compilation à une commande de compilation dans un Makefile :

        $(MAKE) $(shell dpkg-buildflags --export=cmdline)

        ./configure $(shell dpkg-buildflags --export=cmdline)

       Pour définir les drapeaux de compilation dans un script shell ou un fragment de shell, on
       peut utiliser eval pour interpréter la sortie et exporter les drapeaux dans
       l'environnement :

        eval "$(dpkg-buildflags --export=sh)" && make

       ou définir les paramètres de position à passer à la commande :

        eval "set -- $(dpkg-buildflags --export=cmdline)"
        for dir in a b c; do (cd $dir && ./configure "$@" && make); done

   Utilisation dans debian/rules
       Il faut appeler dpkg-buildflags ou inclure buildflags.mk à partir du fichier debian/rules
       pour obtenir les drapeaux de compilation nécessaires à passer au système de construction.
       Veuillez noter que les anciennes versions de dpkg-buildpackage (antérieures à dpkg 1.16.1)
       exportaient ces drapeaux automatiquement. Néanmoins, il est déconseillé de dépendre de ce
       comportement parce qu'il casse l'appel manuel de debian/rules.

       Pour les paquets avec des systèmes de construction du style autoconf, il est possible de
       passer les options appropriées à configure ou make(1) directement, comme vu ci-dessus.

       Pour d'autres systèmes de construction ou si on souhaite un contrôle extrêmement précis
       sur le choix et la position où sont passés les drapeaux, --get peut être utilisé.
       Autrement, il est possible d'inclure buildflags.mk qui s'occupe de l'appel de dpkg-
       buildflags et du placement des drapeaux de compilation dans les variables de make.

       Si vous voulez exporter tous les drapeaux de compilation dans l'environnement (où le
       système de construction peut les récupérer) :

        DPKG_EXPORT_BUILDFLAGS = 1
        include /usr/share/dpkg/buildflags.mk

       Pour un contrôle supplémentaire sur ce qui est exporté, vous pouvez exporter manuellement
       les variables (puisque aucune n'est exportée par défaut) :

        include /usr/share/dpkg/buildflags.mk
        export CPPFLAGS CFLAGS LDFLAGS

       Et enfin, vous pouvez bien sûr passer manuellement les drapeaux aux commandes :

        include /usr/share/dpkg/buildflags.mk
        build-arch:
               $(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)

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