
        *****************************************************
        *           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 NAAM

dpkg-buildflags - geeft de bij pakketbouw te gebruiken bouwvlaggen terug

=head1 OVERZICHT

B<dpkg-buildflags> [I<optie>...] [I<commando>]

=head1 BESCHRIJVING

B<dpkg-buildflags> is gereedschap om de compilatievlaggen op te halen die tijdens het bouwen van Debian pakketten gebruikt moeten worden.

De standaardvlaggen worden gedefinieerd door de leverancier, maar ze kunnen op verschillende manieren uitgebreid/vervangen worden:

=over 

=item 1.

voor het hele systeem met B<%PKGCONFDIR%/buildflags.conf>;

=item 2.

voor de huidige gebruiker met B<$XDG_CONFIG_HOME/dpkg/buildflags.conf>, waarbij B<$XDG_CONFIG_HOME> als standaardwaarde B<$HOME/.config> heeft;

=item 3.

tijdelijk door de gebruiker met omgevingsvariabelen (zie het onderdeel B<OMGEVING>);

=item 4.

dynamisch door de pakketonderhouder met omgevingsvariabelen die ingesteld worden via B<debian/rules> (zie het onderdeel B<OMGEVING>).

=back

De configuratiebestanden kunnen vier types opdrachten bevatten:

=over 

=item B<SET> I<vlag> I<waarde>

De vlag met I<vlag> als naam overschrijven om ze de waarde I<waarde> te geven.

=item B<STRIP> I<vlag> I<waarde>

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

=item B<APPEND> I<vlag> I<waarde>

De vlag met I<vlag> als naam uitbreiden door er de opties aan toe te voegen die in I<waarde> opgegeven worden. Er wordt een spatie geplaatst voor de waarde die toegevoegd wordt, indien de huidige waarde van de vlag niet leeg is.

=item B<PREPEND> I<vlag> I<waarde>

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

De configuratiebestanden kunnen commentaar bevatten op regels die beginnen met een hekje (#). Ook lege regels worden genegeerd.

This program was introduced in dpkg 1.15.7.

=head1 COMMANDO'S

=over 

=item B<--dump>

Op standaarduitvoer alle compilatievlaggen en hun waarden tonen. Dit geeft per regel één vlag en de waarde ervan weer met daartussenin een gelijkheidsteken (“I<vlag>=I<waarde>”). Dit is de standaardactie.

=item B<--list>

Een lijst weergeven van vlaggen die door de huidige leverancier ondersteund worden (één per regel). Zie het onderdeel B<SUPPORTED FLAGS> (ondersteunde vlaggen) voor meer informatie daarover.

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

Het is de bedoeling dat dit uitgevoerd wordt vanuit B<debian/rules>, zodat de bouwlog een duidelijk spoor van de gebruikte vlaggen kan bijhouden. Dit kan nuttig zijn om ermee verband houdende problemen te diagnosticeren.

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

Op standaarduitvoer commando's weergeven die gebruikt kunnen worden om alle compilatievlaggen te exporteren ten behoeve van een specifiek gereedschap. Indien de waarde I<indeling> niet opgegeven werd, wordt B<sh> verondersteld. Enkel compilatievlaggen die met een hoofdletter beginnen worden opgenomen. Van de andere wordt aangenomen dat ze niet bruikbaar zijn voor de omgeving. Ondersteunde indelingen:

=over 

=item B<sh>

Shell-opdrachten om alle compilatievlaggen in de omgeving in te stellen en te exporteren. Er worden aanhalingstekens geplaatst rond de vlagwaarden waardoor de uitvoer gereed is om door een shell geëvalueerd te worden.

=item B<cmdline>

Argumenten om door te geven aan de commandoregel van een bouwprogramma om al de compilatievlaggen te gebruiken (sinds dpkg 1.17.0). De vlagwaarden worden volgens de shell-syntaxis tussen haakjes geplaatst.

=item B<configure>

Dit is een verouderde alias voor B<cmdline>.

=item B<make>

Make-opdrachten om alle compilatievlaggen in de omgeving in te stellen en te exporteren. De uitvoer kan naar een Makefile-fragment geschreven worden en geëvalueerd met behulp van een B<include>-opdracht.

=back

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

De waarde van de vlag op de standaarduitvoer weergeven. Sluit af met 0 bij een gekende vlag en sluit anders af met 1.

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

De origine weergeven van de waarde die teruggegeven wordt door B<--get>. Sluit af met 0 bij een gekende vlag en sluit anders af met 1. De origine kan één van de volgende waarden hebben:

=over 

=item B<vendor>

de originele vlag die door de leverancier ingesteld werd, wordt teruggegeven;

=item B<system>

de vlag werd ingesteld/gewijzigd door een systeemconfiguratie;

=item B<user>

de vlag werd ingesteld/gewijzigd door een gebruikersspecifieke configuratie;

=item B<env>

de vlag werd ingesteld/gewijzigd door een omgevingsspecifieke configuratie.

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

Bijvoorbeeld:

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

De functies weergeven die voor een opgegeven gebied geactiveerd zijn (sinds dpkg 1.16.2). Als de functie door de compiler als een ingebouwde standaard wordt behandeld (al is het maar op sommige architecturen), dan wordt een veld B<Builtin> weergegeven (sinds dpkg 1.21.14). Momenteel worden door Debian en zijn derivaten enkel de gebieden B<future>, B<qa>, B<reproducible>, B<sanitize> en B<hardening> herkend. Zie het onderdeel B<FUNCTIEGEBIEDEN> voor meer details. Sluit af met 0 als het gebied gekend is, anders met 1.

De uitvoer is in RFC822-indeling met één sectie per functie. Bijvoorbeeld:

 Feature: pie
 Enabled: yes
 Builtin: yes

 Feature: stackprotector
 Enabled: yes

=item B<--help>

Info tonen over het gebruik en afsluiten.

=item B<--version>

De versie tonen en afsluiten.

=back

=head1 ONDERSTEUNDE VLAGGEN

=over 

=item B<ASFLAGS>

Opties voor de assembler. Standaardwaarde: leeg. Sinds dpkg 1.21.0.

=item B<CFLAGS>

Opties voor de C-compiler. De door de leverancier ingestelde standaardwaarde bestaat uit B<-g> en het standaardniveau van optimalisatie (gewoonlijk B<-O2>, of B<-O0> indien de omgevingsvariabele B<DEB_BUILD_OPTIONS> I<noopt> aangeeft).

=item B<CPPFLAGS>

Opties voor de C-preprocessor. Standaardwaarde: leeg.

=item B<CXXFLAGS>

Opties voor de C++ compiler. Hetzelfde als 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>

Opties voor de GNU Java compiler (gcj). Een subset van B<CFLAGS>.

=item B<DFLAGS>

Opties voor de D-compiler (ldc of gdc). Sinds dpkg 1.20.6.

=item B<FFLAGS>

Opties voor de Fortran 77 compiler. Een subset van B<CFLAGS>.

=item B<FCFLAGS>

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

=item B<LDFLAGS>

Opties die aan de compiler doorgegeven worden bij het linken van uitvoerbare programma's en gedeelde objecten (indien de linker rechtstreeks aangeroepen wordt, dan moeten B<-Wl> en B<,> van die opties verwijderd worden). Standaardwaarde: leeg.

=back

In de toekomst kunnen nog andere vlaggen toegevoegd worden als daar behoefte aan ontstaat (bijvoorbeeld om andere talen te ondersteunen).

=head1 FUNCTIEGEBIEDEN

Elke gebiedsfunctie kan in de gebiedswaarde van de omgevingsvariabelen B<DEB_BUILD_OPTIONS> en B<DEB_BUILD_MAINT_OPTIONS> ingeschakeld en uitgeschakeld worden met de schakelaars ‘B<+>’ en ‘B<->’. Om bijvoorbeeld de B<hardening>-functionaliteit “pie” te activeren en de functionaliteit “fortify” uit te schakelen, kunt u in B<debian/rules> het volgende doen:

    export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify

De bijzondere functie B<all> (geldig in elk gebied) kan gebruikt worden om gelijktijdig alle gebiedsfunctionaliteit te activeren of uit te schakelen. Alles uitschakelen in het gebied B<hardening> en enkel “format” en “fortify” activeren kunt u dus doen met:

    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

Er kunnen verschillende compilatieopties (die hierna beschreven worden) gebruikt worden om functies te activeren die standaard geactiveerd zouden moeten zijn, maar dat niet zijn om redenen van terugwaartse compatibiliteit.

=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 kwaliteitsbevordering

Er kunnen verschillende compilatieopties (die hierna beschreven worden) gebruikt worden om problemen in de broncode of het bouwsysteem te helpen detecteren.

=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 optimalisering

Er kunnen verschillende compilatieopties (die hierna beschreven worden) gebruikt worden om een resulterend binair bestand te optimaliseren (sinds dpkg 1.21.0). B<Opmerking>: het inschakelen van B<al> deze opties kan resulteren in niet-reproduceerbare ongewenste bijverschijnselen in het binair bestand.

=over 

=item B<lto>

Deze instelling (sinds dpkg 1.21.0; standaard uitgeschakeld) zet Link Time Optimization aan door B<-flto=auto -ffat-lto-objects> toe te voegen aan B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS> of B<LDFLAGS>.

=back

=head2 sanering

Er kunnen verschillende compilatie-opties (die hierna beschreven worden) gebruikt worden om te helpen bij het gezond houden van een resulterend binair pakket op het vlak van geheugenvervuiling, geheugenlekkage, geheugengebruik na vrijgave, dataraces bij threads en bugs door ongedefinieerd gedrag. B<Noot>: deze opties zouden B<niet> gebruikt mogen worden voor een bouw voor productiedoeleinden, aangezien ze een verminderde betrouwbaarheid bieden inzake codeconformiteit en de beveiliging en zelfs de functionaliteit reduceren.

=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 kwetsbaarheidsreductie

Er kunnen verschillende compilatie-opties (die hierna beschreven worden) gebruikt worden om te helpen bij het versterken van een resulterend binair pakket tegen geheugenvervuilingsaanvallen of om bijkomende waarschuwingsberichten te geven tijdens het compileren. Behalve wanneer hierna anders aangegeven is, worden deze opties standaard geactiveerd voor architecturen die ze ondersteunen.

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

Merk op dat de code ook met B<-O1> of hoger gecompileerd moet worden opdat deze optie effect zou hebben. Indien de omgevingsvariabele B<DEB_BUILD_OPTIONS> I<noopt> bevat, dan wordt ondersteuning voor B<fortify> uitgeschakeld. Dit is te wijten aan nieuwe waarschuwingen die gegeven worden door glibc 2.16 en hoger.

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

Deze functionaliteit vereist het linken van de code met glibc (of een andere aanbieder van B<__stack_chk_fail>) en moet dus uitgeschakeld worden als er gebouwd wordt met B<-nostdlib> of B<-ffreestanding> of iets gelijkaardigs.

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

Het uitzetten van B<stackprotector> schakelt ook deze functionaliteit uit.

Deze functionaliteit stelt dezelfde vereisten als B<stackprotector> en heeft daarenboven ook gcc 4.9 of een recentere versie nodig.

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

Position Independent Executable (PIE - positie-onafhankelijke programma) is nodig om voordeel te halen uit Address Space Layout Randomization (ASLR - de adresruimte rangschikken in toevallige volgorde), hetgeen door sommige kernelversies ondersteund wordt. Hoewel ASLR reeds voor datagebieden in de stack en de heap opgelegd kan worden (brk and mmap), moeten de codegebieden als positieonafhankelijk gecompileerd worden. Gedeelde bibliotheken doen dit reeds (B<-fPIC>), waardoor zij automatisch ASLR krijgen, maar binaire .text-gebieden moeten als PIE gebouwd worden om ASLR te krijgen. Als dit gebeurt, worden aanvallen van het type ROP (Return Oriented Programming - op terugkeerwaarde georiënteerd programmeren) veel moeilijker aangezien er geen statische locaties meer zijn die bij een aanval van geheugenvervuiling als springplank gebruikt kunnen worden.

PIE is niet compatibel met B<-fPIC>, dus over het algemeen moet men voorzichtig zijn bij het bouwen van gedeelde objecten. Maar aangezien de PIE-vlaggen die meegegeven worden geïnjecteerd worden via specs-bestanden van gcc, zou het altijd veilig moeten zijn om ze onvoorwaardelijk in te stellen ongeacht het objecttype dat gecompileerd of gelinkt wordt.

Statische bibliotheken kunnen door programma's of door andere gedeelde bibliotheken gebruikt worden. Afhankelijk van de gebruikte vlaggen bij het compileren van alle objecten in een statische bibliotheek, zullen deze bibliotheken door verschillende reeksen objecten gebruikt kunnen worden:

=over 

=item geen

Kan niet gelinkt worden aan een PIE-programma, noch aan een gedeelde bibliotheek.

=item B<-fPIE>

Kan gelinkt worden aan elk programma, maar niet aan een gedeelde bibliotheek (aanbevolen).

=item B<-fPIC>

Kan gelinkt worden aan elk programma en elke gedeelde bibliotheek.

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

Aangezien PIE via een algemeen register geïmplementeerd wordt, kunnen bovendien bij sommige architecturen (maar niet meer bij i386 sinds de optimalisaties die in gcc E<gt>= 5 toegepast zijn) prestatieverminderingen tot 15% optreden bij zeer zware belasting met tekstsegmenten van toepassingen. De meeste belastingen hebben minder dan 1% prestatievermindering tot gevolg. Architecturen met meer algemene registers (bijv. amd64) vertonen niet zo een hoge terugval in de ergste gevallen.

=back

=head2 reproduceerbaarheid

De hierna behandelde compilatieopties kunnen gebruikt worden om de bouwreproduceerbaarheid te helpen verbeteren of om bijkomende waarschuwingsberichten af te leveren tijdens het compileren. Behalve wanneer het hierna aangegeven wordt, worden deze opties standaard geactiveerd voor architecturen die ze ondersteunen.

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

Indien zowel B<fixdebugpath> als B<fixfilepath> ingesteld zijn, heeft deze laatste optie voorrang, omdat het een superset is van de eerste.

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 OMGEVING

Er zijn twee sets omgevingsvariabelen die dezelfde operaties uitvoeren. De eerste (DEB_I<vlag>_I<operatie>) zou nooit gebruikt mogen worden binnen B<debian/rules>. Die is bedoeld voor eventuele gebruikers die het bronpakket opnieuw willen bouwen met andere bouwvlaggen. De tweede set (DEB_I<vlag>_MAINT_I<operatie>) zou door pakketonderhouders enkel in B<debian/rules> gebruikt moeten worden om de resulterende bouwvlaggen aan te passen.

=over 

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

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

Deze variabele kan gebruikt worden om de teruggegeven waarde voor de opgegeven vlag I<vlag> af te dwingen.

=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)

Deze variabele kan gebruikt worden om in een lijst met witruimte als scheidingsteken opties op te geven die weggehaald zullen worden uit de set vlaggen die teruggegeven wordt voor de opgegeven I<vlag>.

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

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

Deze variabele kan gebruikt worden om bijkomende opties toe te voegen aan de waarde die teruggegeven wordt voor de opgegeven I<vlag>.

=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)

Deze variabele kan gebruikt worden om vooraan bijkomende opties toe te voegen aan de waarde die teruggegeven wordt voor de opgegeven I<vlag>.

=item B<DEB_BUILD_OPTIONS>

=item B<DEB_BUILD_MAINT_OPTIONS> (since dpkg 1.16.1)

Deze variabelen kunnen door een gebruiker of een onderhouder gebruikt worden om diverse gebiedsfuncties die bouwvlaggen beïnvloeden, te activeren of uit te zetten. De variabele B<DEB_BUILD_MAINT_OPTIONS> vervangt eventuele instellingen in de functionaliteitsgebieden B<DEB_BUILD_OPTIONS>. Zie het onderdeel B<FUNCTIONALITEITSGEBIEDEN> voor de details.

=item B<DEB_VENDOR>

Deze instelling definieert de huidige leverancier. Indien zij niet ingesteld is, zal gezocht worden naar de huidige leverancier door te gaan lezen in B<%PKGCONFDIR%/origins/default>.

=item B<DEB_BUILD_PATH>

Deze variabele stelt in welk bouwpad (sinds dpkg 1.18.8) gebruikt moet worden bij functionaliteit zoals B<fixdebugpath> waardoor die gesuperviseerd kan worden door het aanroepende programma. Momenteel is deze variabele Debian- en derivaat-specifiek.

=item B<DPKG_COLORS>

Stelt de kleurmodus in (sinds dpkg 1.18.5). Waarden die momenteel gebruikt mogen worden zijn: B<auto> (standaard), B<always> en B<never>.

=item B<DPKG_NLS>

Indien dit ingesteld is, zal het gebruikt worden om te beslissen over het activeren van moedertaalondersteuning, ook gekend als internationaliseringsondersteuning (of i18n) (sinds dpkg 1.19.0). Geldige waarden zijn: B<0> and B<1> (standaard).

=back

=head1 BESTANDEN

=head2 Configuratiebestanden

=over 

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

Configuratiebestand dat voor het hele systeem geldt.

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

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

Configuratiebestand dat gebruikersafhankelijk is.

=back

=head2 Ondersteuning bij het maken van een pakket

=over 

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

Makefile-fragment dat alle vlaggen die door B<dpkg-buildflags> ondersteund worden, laadt in variabelen (en eventueel exporteert) (sinds dpkg 1.16.1).

=back

=head1 VOORBEELDEN

Om in een Makefile bouwvlaggen door te geven aan een bouwcommando:

=over 

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

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

=back

Om in een shell-script of shell-fragment bouwvlaggen in te stellen, kan B<eval> gebruikt worden om de uitvoer te interpreteren en de vlaggen in de omgeving te exporteren:

=over 

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

=back

of om de positieparameters in te stellen die aan een commando doorgegeven moeten worden:

=over 

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

=back

=head2 Het gebruik in debian/rules

Om de benodigde bouwvlaggen te bekomen die aan het bouwsysteem doorgegeven moeten worden, moet u vanuit het bestand B<debian/rules> B<dpkg-buildflags> aanroepen of B<buildflags.mk> invoegen. Merk op dat oudere versies van B<dpkg-buildpackage> (voor dpkg 1.16.1) deze vlaggen automatisch exporteerden. U zou hierop echter niet mogen betrouwen, aangezien dit het handmatig aanroepen van B<debian/rules> defect maakt.

Voor pakketten met een autoconf-achtig bouwsysteem, kunt u de relevante opties rechtstreeks doorgeven aan configure of B<make>(1), zoals hiervoor geïllustreerd werd.

Voor andere bouwsystemen, of indien u een meer fijnmazige controle nodig heeft over welke vlaggen waar doorgegeven worden, kunt u B<--get> gebruiken. Of in de plaats daarvan kunt u B<buildflags.mk> invoegen, dat zorgt voor het aanroepen van B<dpkg-buildflags> en het opslaan van de bouwvlaggen in variabelen voor make.

Indien u alle bouwvlaggen naar de omgeving wenst te exporteren (waar ze door uw bouwsysteem opgepikt kunnen worden):

=over 

 DPKG_EXPORT_BUILDFLAGS = 1
 include %PKGDATADIR%/buildflags.mk

=back

Als u bijkomende controle wenst over wat geëxporteerd wordt, kunt u de variabelen handmatig exporteren (aangezien er standaard geen enkele geëxporteerd wordt):

=over 

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

=back

En u kunt de vlaggen natuurlijk ook handmatig doorgeven aan commando's:

=over 

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

=back

