
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NOM

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

=head1 SYNOPSIS

B<dpkg-buildflags> [I<option>...] [I<commande>]

=head1 DESCRIPTION

B<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 S<façons :>

=over 

=item 1.

pour tout le système avec B<%PKGCONFDIR%/buildflags.conf> ;

=item 2.

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

=item 3.

temporairement par l'utilisateur avec des variables d'environnement (voir B<VARIABLES D'ENVIRONNEMENT>) ;

=item 4.

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

=back

Les fichiers de configuration peuvent contenir quatre types de S<directives :>

=over 

=item B<SET> I<drapeau> I<valeur>

Remplace le drapeau I<drapeau> par la valeur I<valeur>.

=item B<STRIP> I<drapeau> I<valeur>

Strip from the flag named I<flag> all the build flags listed in I<value>. Since dpkg 1.16.1.

=item B<APPEND> I<drapeau> I<valeur>

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

=item B<PREPEND> I<drapeau> I<valeur>

Extend the flag named I<flag> by prepending the options given in I<value>. A space is appended to the prepended value if the flag's current value is non-empty.  Since dpkg 1.16.1.

=back

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

This program was introduced in dpkg 1.15.7.

=head1 COMMANDES

=over 

=item B<--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 S<« égal »> S<(« I<drapeau>=I<valeur> »).> Il s'agit de l'action par défaut.

=item B<--list>

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

=item B<--status>

Display any information that can be useful to explain the behavior of B<dpkg-buildflags> (since dpkg 1.16.5): relevant environment variables, current vendor, state of all feature flags.  Also print the resulting compiler flags with their origin.

Cette option est destinée à être utilisée depuis B<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.

=item B<--export=>I<format>

Affiche sur la sortie standard les commandes qui permettent d'exporter tous les drapeaux de compilation pour un outil particulier. Si I<format> n'est pas spécifié, sa valeur est B<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 S<charge :>

=over 

=item B<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.

=item B<cmdline>

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

=item B<configure>

C'est un ancien alias pour B<cmdline>.

=item B<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 B<include>.

=back

=item B<--get> I<drapeau>

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

=item B<--origin> I<drapeau>

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

=over 

=item B<vendor>

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

=item B<system>

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

=item B<user>

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

=item B<env>

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

=back

=item B<--query>

Print any information that can be useful to explain the behavior of the program: current vendor, relevant environment variables, feature areas, state of all feature flags, whether a feature is handled as a builtin default by the compiler (since dpkg 1.21.14), and the compiler flags with their origin (since dpkg 1.19.0).

Par S<exemple :>

 Vendor: Debian
 Environment:
  DEB_CFLAGS_SET=-O0 -Wall

 Area: qa
 Features:
  bug=no
  canary=no
 Builtins:

 Area: hardening
 Features:
  pie=no
 Builtins:
  pie=yes

 Area: reproducible
 Features:
  timeless=no
 Builtins:

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

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

=item B<--query-features> I<domaine>

Affiche les fonctionnalités activées pour un domaine donné (depuis S<dpkg 1.16.2).> Si la fonctionnalité est gérée par le compilateur (même seulement sur quelques architectures) comme une fonction par défaut, alors un champ B<Builtin> est affiché (depuis S<dpkg 1.21.14).> Les seuls domaines reconnus actuellement sur Debian et ses dérivés sont B<future>, B<qa>, B<reproducible>, B<sanitize> et B<hardening>, voir la section B<ZONES D'OPTION> pour plus de détails. Renvoie un code de sortie B<0> si le domaine est connu et B<1> s'il est inconnu.

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

 Feature: pie
 Enabled: yes
 Builtin: yes

 Feature: stackprotector
 Enabled: yes

=item B<--help>

Afficher un message d'aide puis quitter.

=item B<--version>

Afficher le numéro de version puis quitter.

=back

=head1 DRAPEAUX GÉRÉS

=over 

=item B<ASFLAGS>

Options de l'assembleur. Valeur par S<défaut :> aucune. Depuis S<dpkg 1.21.0.>

=item B<CFLAGS>

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

=item B<CPPFLAGS>

Options du préprocesseur C. Valeur par S<défaut :> aucune.

=item B<CXXFLAGS>

Options du compilateur C++. Analogue à B<CFLAGS>.

=item B<OBJCFLAGS>

Options for the Objective C compiler. Same as B<CFLAGS>.  Since dpkg 1.17.7.

=item B<OBJCXXFLAGS>

Options for the Objective C++ compiler. Same as B<CXXFLAGS>.  Since dpkg 1.17.7.

=item B<GCJFLAGS>

Options du compilateur Java GNU (gcj). Un sous-ensemble de B<CFLAGS>.

=item B<DFLAGS>

Options du S<compilateur D> (ldc ou gdc). Depuis S<dpkg 1.20.6.>

=item B<FFLAGS>

Options du compilateur Fortran 77. Un sous-ensemble de B<CFLAGS>.

=item B<FCFLAGS>

Options for the Fortran 9x compiler. Same as B<FFLAGS>.  Since dpkg 1.17.7.

=item B<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 B<-Wl> et B<,> doivent être retirés de ces options). Valeur par S<défaut :> aucune.

=back

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

=head1 ZONES D'OPTION

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

    export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify

L'option spéciale B<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 B<hardening> en n'activant que S<« format »> et S<« fortify »> peut être réalisé S<avec :>

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

=head2 abi

Several compile-time options (detailed below) can be used to enable features that can change the ABI of a package, but cannot be enabled by default due to backwards compatibility reasons unless coordinated or checked individually.

=over 

=item B<lfs>

This setting (since dpkg 1.22.0; disabled by default) enables Large File Support on 32-bit architectures where their ABI does not include LFS by default, by adding B<-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64> to B<CPPFLAGS>.

When this feature is enabled it will override the value from the same feature in the B<future> feature area.

=item B<time64>

This setting (since dpkg 1.22.0; disabled by default) enables 64-bit time_t support on 32-bit architectures where their ABI does not include it by default, by adding B<-D_TIME_BITS=64> to B<CPPFLAGS>.  This setting automatically enables the B<lfs> feature as it requires it.

=back

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

=over 

=item B<lfs>

This setting (since dpkg 1.19.0; disabled by default) is now an alias for the B<lfs> feature in the B<abi> area, use that instead.  The feature from the B<abi> area overrides this setting.

=back

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

=over 

=item B<bug>

This setting (since dpkg 1.17.4; disabled by default) adds any warning option that reliably detects problematic source code.  The warnings are fatal.  The only currently supported flags are B<CFLAGS> and B<CXXFLAGS> with flags set to B<-Werror=array-bounds>, B<-Werror=clobbered>, B<-Werror=implicit-function-declaration> and B<-Werror=volatile-register-var>.

=item B<canary>

This setting (since dpkg 1.17.14; disabled by default) adds dummy canary options to the build flags, so that the build logs can be checked for how the build flags propagate and to allow finding any omission of normal build flag settings.  The only currently supported flags are B<CPPFLAGS>, B<CFLAGS>, B<OBJCFLAGS>, B<CXXFLAGS> and B<OBJCXXFLAGS> with flags set to B<-D__DEB_CANARY_>I<flag>_I<random-id>B<__>, and B<LDFLAGS> set to B<-Wl,-z,deb-canary->I<random-id>.

=back

=head2 optimize

Plusieurs options de compilation (détaillées ci-dessous) peuvent être utilisées pour aider à optimiser un binaire produit (depuis S<dpkg 1.21.0).> S<B<Note> :> activer B<toutes> ces options peuvent aboutir à des objets binaires non-reproductibles.

=over 

=item B<lto>

Ce réglage (depuis S<dpkg 1.21.0 ;> désactivé par défaut) active S<« Link> Time S<Optimization »> en ajoutant B<-flto=auto -ffat-lto-objects> à B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS> et B<LDFLAGS>.

=back

=head2 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. S<B<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.

=over 

=item B<address>

This setting (since dpkg 1.18.0; disabled by default) adds B<-fsanitize=address> to B<LDFLAGS> and B<-fsanitize=address -fno-omit-frame-pointer> to B<CFLAGS> and B<CXXFLAGS>.

=item B<thread>

This setting (since dpkg 1.18.0; disabled by default) adds B<-fsanitize=thread> to B<CFLAGS>, B<CXXFLAGS> and B<LDFLAGS>.

=item B<leak>

This setting (since dpkg 1.18.0; disabled by default) adds B<-fsanitize=leak> to B<LDFLAGS>. It gets automatically disabled if either the B<address> or the B<thread> features are enabled, as they imply it.

=item B<undefined>

This setting (since dpkg 1.18.0; disabled by default) adds B<-fsanitize=undefined> to B<CFLAGS>, B<CXXFLAGS> and B<LDFLAGS>.

=back

=head2 hardening

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.

=over 

=item B<format>

This setting (since dpkg 1.16.1; enabled by default) adds B<-Wformat -Werror=format-security> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS> and B<OBJCXXFLAGS>.  This will warn about improper format string uses, and will fail when format functions are used in a way that represent possible security problems. At present, this warns about calls to B<printf> and B<scanf> functions where the format string is not a string literal and there are no format arguments, as in B<printf(foo);> instead of B<printf("%s", foo);> This may be a security hole if the format string came from untrusted input and contains ‘%n’.

=item B<fortify>

This setting (since dpkg 1.16.1; enabled by default) adds B<-D_FORTIFY_SOURCE=2> to B<CPPFLAGS>. During code generation the compiler knows a great deal of information about buffer sizes (where possible), and attempts to replace insecure unlimited length buffer function calls with length-limited ones. This is especially useful for old, crufty code. Additionally, format strings in writable memory that contain ‘%n’ are blocked. If an application depends on such a format string, it will need to be worked around.

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

=item B<stackprotector>

This setting (since dpkg 1.16.1; enabled by default if stackprotectorstrong is not in use) adds B<-fstack-protector --param=ssp-buffer-size=4> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>.  This adds safety checks against stack overwrites. This renders many potential code injection attacks into aborting situations. In the best case this turns code injection vulnerabilities into denial of service or into non-issues (depending on the application).

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

=item B<stackprotectorstrong>

This setting (since dpkg 1.17.11; enabled by default) adds B<-fstack-protector-strong> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>.  This is a stronger variant of B<stackprotector>, but without significant performance penalties.

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

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

=item B<stackclask>

This setting (since dpkg 1.22.0; enabled by default) adds B<-fstack-clash-protection> on B<amd64>, B<arm64>, B<armhf> and B<armel> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>.  This adds code to prevent stack clash style attacks.

=item B<branch>

This setting (since dpkg 1.22.0; enabled by default) adds B<-fcf-protection> on B<amd64> and B<-mbranch-protection=standard> on B<arm64> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>.  This adds branch protection to indirect calls, jumps and returns to check whether these are valid at run-time.

=item B<relro>

This setting (since dpkg 1.16.1; enabled by default) adds B<-Wl,-z,relro> to B<LDFLAGS>.  During program load, several ELF memory sections need to be written to by the linker. This flags the loader to turn these sections read-only before turning over control to the program. Most notably this prevents GOT overwrite attacks. If this option is disabled, B<bindnow> will become disabled as well.

=item B<bindnow>

This setting (since dpkg 1.16.1; disabled by default) adds B<-Wl,-z,now> to B<LDFLAGS>. During program load, all dynamic symbols are resolved, allowing for the entire PLT to be marked read-only (due to B<relro> above). The option cannot become enabled if B<relro> is not enabled.

=item B<pie>

This setting (since dpkg 1.16.1; with no global default since dpkg 1.18.23, as it is enabled by default now by gcc on the amd64, arm64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc and sparc64 Debian architectures) adds the required options to enable or disable PIE via gcc specs files, if needed, depending on whether gcc injects on that architecture the flags by itself or not.  When the setting is enabled and gcc injects the flags, it adds nothing.  When the setting is enabled and gcc does not inject the flags, it adds B<-fPIE> (via I<%PKGDATADIR%/pie-compiler.specs>) to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>, and B<-fPIE -pie> (via I<%PKGDATADIR%/pie-link.specs>) to B<LDFLAGS>.  When the setting is disabled and gcc injects the flags, it adds B<-fno-PIE> (via I<%PKGDATADIR%/no-pie-compile.specs>) to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS>, and B<-fno-PIE -no-pie> (via I<%PKGDATADIR%/no-pie-link.specs>) to B<LDFLAGS>.

Les exécutables à position indépendante S<(« Position> Independent S<Executable »)> permettent d'utiliser la randomisation de l'organisation de l'espace d'adressage S<(ASLR :> S<« Address> Space Layout S<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 (B<-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 S<(« Return> Oriented S<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 B<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 S<d'objets :>

=over 

=item none

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

=item B<-fPIE>

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

=item B<-fPIC>

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

=back

If there is a need to set these flags manually, bypassing the gcc specs injection, there are several things to take into account. Unconditionally and explicitly passing B<-fPIE>, B<-fpie> or B<-pie> to a build-system using libtool is safe as these flags will get stripped when building shared libraries.  Otherwise on projects that build both programs and shared libraries you might need to make sure that when building the shared libraries B<-fPIC> is always passed last (so that it overrides any previous B<-PIE>) to compilation flags such as B<CFLAGS>, and B<-shared> is passed last (so that it overrides any previous B<-pie>) to linking flags such as B<LDFLAGS>. B<Note>: This should not be needed with the default gcc specs machinery.

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 E<gt>= 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.

=back

=head2 reproducible

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.

=over 

=item B<timeless>

This setting (since dpkg 1.17.14; enabled by default) adds B<-Wdate-time> to B<CPPFLAGS>.  This will cause warnings when the B<__TIME__>, B<__DATE__> and B<__TIMESTAMP__> macros are used.

=item B<fixfilepath>

This setting (since dpkg 1.19.1; enabled by default) adds B<-ffile-prefix-map=>I<BUILDPATH>B<=.> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS> where B<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 B<fixdebugpath> et B<fixfilepath> sont définis, cette option a la priorité parce c'est un sur-ensemble du premier.

B<Note>: If the build process captures the build flags into the resulting built objects, that will make the package unreproducible.  And while disabling this option might make some of the objects reproducible again this would also require disabling B<fixdebugpath>, which might make any generated debug symbols objects unreproducible.  The ideal fix is to stop capturing build flags.

=item B<fixdebugpath>

This setting (since dpkg 1.18.5; enabled by default) adds B<-fdebug-prefix-map=>I<BUILDPATH>B<=.> to B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS> and B<FCFLAGS> where B<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 debug symbols.

B<Note>: This feature has similar reproducible properties as B<fixfilepath>.

=back

=head1 ENVIRONNEMENT

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

=over 

=item B<DEB_>I<drapeau>B<_SET>

=item B<DEB_>I<flag>B<_MAINT_SET> (since dpkg 1.16.1)

Cette variable permet de forcer la valeur renvoyée pour le I<drapeau> indiqué.

=item B<DEB_>I<flag>B<_STRIP> (since dpkg 1.16.1)

=item B<DEB_>I<flag>B<_MAINT_STRIP> (since dpkg 1.16.1)

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 I<drapeau> indiqué.

=item B<DEB_>I<drapeau>B<_APPEND>

=item B<DEB_>I<flag>B<_MAINT_APPEND> (since dpkg 1.16.1)

Cette variable permet d'ajouter des options à la valeur renvoyée pour le I<drapeau> indiqué.

=item B<DEB_>I<flag>B<_PREPEND> (since dpkg 1.16.1)

=item B<DEB_>I<flag>B<_MAINT_PREPEND> (since dpkg 1.16.1)

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

=item B<DEB_BUILD_OPTIONS>

=item B<DEB_BUILD_MAINT_OPTIONS> (since dpkg 1.16.1)

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 B<DEB_BUILD_MAINT_OPTIONS> outrepasse tous les paramètres de la zone d'options B<DEB_BUILD_OPTIONS>. Voir la section B<ZONES D'OPTION> pour plus de détails.

=item B<DEB_VENDOR>

Ce réglage définit l'éditeur S<(« vendor »)> actuel. Si cette valeur est vide, le contenu du fichier B<%PKGCONFDIR%/origins/default> est utilisé.

=item B<DEB_BUILD_PATH>

Cette variable configure le chemin de construction (depuis S<dpkg 1.18.8)> à utiliser avec des fonctions telles que B<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.

=item B<DPKG_COLORS>

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

=item B<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 S<dpkg 1.19.0).> Les valeurs permises S<sont :> B<0> et B<1> (par défaut).

=back

=head1 FICHIERS

=head2 Fichiers de configuration.

=over 

=item B<%PKGCONFDIR%/buildflags.conf>

Fichier de configuration pour l'ensemble du système.

=item B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> ou

=item B<$HOME/.config/dpkg/buildflags.conf>

Fichier de configuration propre à l'utilisateur

=back

=head2 Gestion de l'empaquetage

=over 

=item B<%PKGDATADIR%/buildflags.mk>

Fragment de fichier Makefile qui chargera (et facultativement exportera) dans les variables (depuis S<dpkg 1.16.1)> tous les drapeaux pris en charge par B<dpkg-buildflags>.

=back

=head1 EXEMPLES

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

=over 

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

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

=back

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

=over 

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

=back

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

=over 

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

=back

=head2 Utilisation dans debian/rules

Il faut appeler B<dpkg-buildflags> ou inclure B<buildflags.mk> à partir du fichier B<debian/rules> pour obtenir les drapeaux de compilation nécessaires à passer au système de construction. Veuillez noter que les anciennes versions de B<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 B<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 B<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, B<--get> peut être utilisé. Autrement, il est possible d'inclure B<buildflags.mk> qui s'occupe de l'appel de B<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 S<récupérer) :>

=over 

 DPKG_EXPORT_BUILDFLAGS = 1
 include %PKGDATADIR%/buildflags.mk

=back

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

=over 

 include %PKGDATADIR%/buildflags.mk
 export CPPFLAGS CFLAGS LDFLAGS

=back

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

=over 

 include %PKGDATADIR%/buildflags.mk
 build-arch:
 	$(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)

=back


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