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

dpkg-buildflags - retorna flags de compilação para usar durante a compilação de pacotes

=head1 SINOPSE

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

=head1 DESCRIÇÃO

B<dpkg-buildflags> é uma ferramenta para obter flags de compilação para usar durante a compilação de pacotes Debian.

As flags predefinidas são definidas pelo fornecedor mas podem ser estendidas/sobrepostas de várias maneiras:

=over 

=item 1.

de todo o sistema com B<%PKGCONFDIR%/buildflags.conf>;

=item 2.

para o utilizador actual com B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> onde B<$XDG_CONFIG_HOME> usa por predefinição B<$HOME/.config>;

=item 3.

temporariamente pelo utilizador com variáveis de ambiente (veja a secção B<AMBIENTE>);

=item 4.

dinamicamente pelo maintainer do pacote com variáveis de ambiente definidas via B<debian/rules> (veja a secção B<AMBIENTE>).

=back

Os ficheiros de configuração podem conter quatro tipos de directivas:

=over 

=item B<SET> I<flag> I<value>

Sobrescreve a flag chamada I<flag> para ter o valor I<valor>.

=item B<STRIP> I<flag> I<value>

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

=item B<APPEND> I<flag> I<value>

Estende a flag chamada I<flag> ao acrescentar as opções dadas em I<valor>. É usado um espaço a preceder o valor acrescentado se o valor da flag actual não estiver vazio.

=item B<PREPEND> I<flag> I<value>

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

Os ficheiros de configuração podem conter comentários nas linhas que começam com um cardinal (#). As linhas vazias também são ignoradas.

This program was introduced in dpkg 1.15.7.

=head1 COMANDOS

=over 

=item B<--dump>

Escreve na saída standard todas as bandeiras de compilação e os seus valores. Escreve uma bandeira por linha separada do seu valor por um sinal de igual ("I<flag>=I<value>"). Esta é a acção predefinida.

=item B<--list>

Escreve a lista das flags suportadas pelo fornecedor actual (uma por cada linha). Veja a secção B<FLAGS SUPORTADAS> para mais informação sobre elas.

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

Isto destina-se a ser corrido a partir de B<debian/rules>, para que os relatórios de compilação mantenham um rasto claro das bandeiras de compilação usadas. Isto pode ser útil para diagnosticar problemas relacionados com elas.

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

Escreve na saída standard comandos que podem ser usados para exportar todas as bandeiras de compilação para alguma ferramenta particular. Se o valor I<format> não for fornecido, é assumido B<sh>. Apenas são incluídas bandeiras que comecem com um caractere maiúsculo, as outras são assumidas como não apropriadas para o ambiente. Formatos suportados:

=over 

=item B<sh>

Comandos de shell para definir e exportar todas as bandeiras de compilação no ambiente. Os valores das bandeiras são citados para que o resultado esteja pronto para avaliação pela shell.

=item B<cmdline>

Argumentos a passar para a linha de comandos dos programas de compilação para se usar todas as bandeiras de compilação (desde dpkg 1.17.0). Os valores das bandeiras são citados na sintaxe da shell.

=item B<configure>

Este é um nome alternativo antigo para B<cmdline>.

=item B<make>

Faz as directivas definir e exportar todas as bandeiras de compilação no ambiente. O resultado pode ser escrito para o fragmento do Makefile e avaliado usando uma directiva B<include>.

=back

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

Escreve o valor da flag na saída standard. Termina com 0 se a flag for conhecida, caso contrário termina com 1.

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

Escreve a origem do valor que é devolvido por B<--get>. Termina com 0 se a flag for conhecida, caso contrário termina com 1. A origem pode ser um dos seguintes valores:

=over 

=item B<vendor>

é devolvida a flag origina definida pelo fornecedor;

=item B<system>

a flag é definida/modifica por uma configuração de todo o sistema;

=item B<user>

a flag é definida/modifica por uma configuração específica do utilizador;

=item B<env>

a flag é definida/modifica por uma configuração específica do ambiente;

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

Por exemplo:

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

Escreve as funcionalidades activadas para uma dada área (desde dpkg 1.16.2). Se a funcionalidade é lidada (mesmo que apenas em algumas arquitecturas) como predefinição de compilação pelo compilador, então é escrito um campo B<Builtin> (desde dpkg 1.21.14). As únicas áreas actualmente reconhecidas em Debian e derivados são B<future>, B<qa>, B<reproducible>, B<sanitize> e B<hardening>, veja a secção B<ÁREAS DE CARACTERÍSTICAS> para mais detalhes. Termina com 0 se a área é conhecida caso contrário termina com 1.

O resultado está em formato RFC822, com uma secção por característica. Por exemplo:

 Feature: pie
 Enabled: yes
 Builtin: yes

 Feature: stackprotector
 Enabled: yes

=item B<--help>

Mostra a mensagem de utilização e termina.

=item B<--version>

Mostra a versão e termina.

=back

=head1 FLAGS SUPORTADAS

=over 

=item B<ASFLAGS>

Opções para o assemblador. Valor predefinido: vazio. Desde dpkg 1.21.0.

=item B<CFLAGS>

Opções para o compilador de C. O valor predefinido regulado pelo fornecedor inclui B<-g> e o nível de optimização predefinido (geralmente B<-O2>, ou B<-O0> se a variável de ambiente B<DEB_BUILD_OPTIONS> definir I<noopt>).

=item B<CPPFLAGS>

Opções para o pré-processador de C. Valor predefinido: vazio.

=item B<CXXFLAGS>

Opções para o compilador de C++. O mesmo que 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>

Opções para o compilador de Java do GNU (gcj). Um subconjunto de B<CFLAGS>.

=item B<DFLAGS>

Opções para o compilador D (ldc ou gdc). Desde dpkg 1.20.6.

=item B<FFLAGS>

Opções para o compilador Fortran 77. Um subconjunto de B<CFLAGS>.

=item B<FCFLAGS>

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

=item B<LDFLAGS>

Opções passadas ao compilador quando faz link a executáveis ou objetos partilhados (se o vinculador (linker) for chamado directamente, então B<-Wl> e B<,> têm de ser cortados destas opções). Valor predefinido: empty.

=back

Podem ser adicionadas novas bandeiras no futuro se a necessidade surgir (por exemplo para suportar outras linguagens).

=head1 ÁREAS DE CARACTERÍSTICAS

Cada funcionalidade de área pode ser activada ou desactivada no valor da área das variáveis de ambiente B<DEB_BUILD_OPTIONS> e B<DEB_BUILD_MAINT_OPTIONS> com o modificador ‘B<+>’ e ‘B<->’. Por exemplo, par activar a funcionalidade "pie" de B<hardening> e desactivar a funcionalidade “fortify” você pode fazer isto em B<debian/rules>:

    export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify

A funcionalidade especial B<all> (válida em qualquer área) pode ser usada para activar ou desactivar todas as funcionalidades de área ao mesmo tempo. Assim desactivar tudo na área B<hardening> e activar apenas apenas “format” e “fortify” pode ser obtido com:

    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

Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas para activar funcionalidades que deveria estar activadas por predefinição, mas não podem estar por razões de compatibilidade com versões anteriores.

=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

Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas para ajudar a detectar no código fonte ou no sistema de compilação.

=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

Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas para ajudar a optimizar um binário resultante (desde dpkg 1.21.0). B<Nota>: ativador B<todas> estas opções pode resultar em artefactos binários não reproduzíveis.

=over 

=item B<lto>

Esta definição (desde dpkg 1.21.0; desactivada por predefinição) activa Link Time Optimization ao adicionar B<-flto=auto -ffat-lto-objects> a B<CFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS> e B<LDFLAGS>.

=back

=head2 sanitize

Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas para ajudar a higienizar um binário resultante contra corrupções de memória, fugas de memória, utilização após livre, segmentação de dados e bugs de comportamento indefinido.  B<Nota>: estas opções B<não> devem ser usadas para compilações de produção pois elas podem reduzir a confiança na conformidade do código, reduzir a segurança ou mesmo a funcionalidade.

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

Várias opções de tempo de compilação (detalhado em baixo) podem ser usadas para ajudar a endurecer um binário resultante contra ataques de corrupção de memória, ou disponibilizar mensagens de aviso adicionais durante a compilação. Excepto como notado em baixo, estas estão activadas por predefinição para as arquitecturas que as suportam.

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

Note que para esta opção ter algum efeito, a fonte tem de também ser compilada com B<-O1> ou superior. Se a variável de ambiente B<DEB_BUILD_OPTIONS> conter I<noopt>, então o suporte a B<fortify> será desactivado, devido a novos avisos serem emitidos pelo glibc 2.16 e posterior.

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

Esta funcionalidade requer ligação (link) a glibc (ou outro fornecedor de B<__stack_chk_fail>), portanto precisa de ser desactivada quando se compila com B<-nostdlib> ou B<-ffreestanding> ou semelhante.

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

Desactivar B<stackprotector> irá também desactivar esta definição.

Esta funcionalidade tem os mesmos requerimentos que B<stackprotector>, e adicionalmente também requer gcc 4.9 e posterior.

=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) é necessário para tirar vantagem de Address Space Layout Randomization (ASLR), suportado por algumas versões de kernel. Enquanto ASLR já pode ser aplicada para áreas de dados na stack e heap (brk e mmap), as áreas de código têm de ser compiladas como independente-de-posição. As bibliotecas partilhadas já fazem isto (B<-fPIC>), assim elas ganham ASLR automaticamente, mas as regiões de texto binários precisam de ser compiladas como PIE para ganhar ASLR. Quando isto acontece, os ataques ROP (Return Oriented Programming) são mais difíceis pois não são localizações estáticas para ressaltar durante um ataque de corrupção de memória.

PIE não é compatível com B<-fPIC>, assim em geral é preciso cuidado ao compilar objectos partilhados. Mas porque as bandeiras PIE emitidas são injetadas via ficheiros specs de gcc, deverá ser sempre seguro defini-las incondicionalmente independentemente do tipo de objecto a ser compilado ou ligado em link.

Bibliotecas estáticas pode ser usadas por programas ou outras bibliotecas partilhadas. Dependendo das bandeiras usadas para compilar todos os objectos dentro de uma biblioteca estática, estas bibliotecas serão utilizáveis por conjuntos diferentes de objectos:

=over 

=item none

Não pode ser vinculado a um programa PIE, não é uma biblioteca partilhada.

=item B<-fPIE>

Pode ser vinculado a qualquer programa, mas não a uma biblioteca partilhada (recomendado).

=item B<-fPIC>

Pode ser vinculado a qualquer programa e biblioteca partilhada.

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

Adicionalmente, como PIE é implementado via registo geral, algumas arquitecturas com falta de registo (mas não incluindo mais a i386 desde as optimizações implementadas no gcc E<gt>= 5) podem ver perdas de performance até aos 15% em grandes cargas de aplicações de segmentos de texto pesados; a maioria das cargas vêm menos de 1%. Arquitecturas com registos mais gerais (ex. amd64) não vêm mais alto que uma penalidade de pior caso.

=back

=head2 reproducible

As opções de tempo de compilação detalhadas em baixo  podem ser usadas para ajudar a melhorar a reprodutibilidade de compilação ou fornecer mensagens de aviso adicionais durante a compilação. Excepto como notado em baixo, estas estão activadas por predefinição para as arquitecturas que as suportam.

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

Se ambas B<fixdebugpath> e B<fixfilepath> forem definidas, esta opção toma precedência, porque é um superconjunto do anterior.

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 AMBIENTE

Existem 2 conjuntos de variáveis de ambiente a fazer as mesmas operações, O primeiro (DEB_I<flag>_I<op>) nunca deve ser usada dentro de B<debian/rules>. Destina-se a qualquer utilizador que queria recompilar o pacote fonte com bandeiras de compilação diferentes. O segundo conjunto (DEB_I<flag>_MAINT_I<op>) só deve ser usado em B<debian/rules> pelos maintainers de pacotes para alterar as bandeiras de compilação resultantes.

=over 

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

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

Esta variável pode ser usada para forçar o valor retornado para a <flag> fornecida.

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

Esta variável pode ser usada para disponibilizar uma lista separada por espaços das opções que irão ser despojadas do conjunto de flags retornado para a I<flag> fornecida.

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

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

Esta variável pode ser usada para acrescentar opções suplementares ao valor retornado para a I<flag> fornecida.

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

Esta variável pode ser usada para adicionar opções suplementares ao inicio do valor retornado  para a I<flag> fornecida.

=item B<DEB_BUILD_OPTIONS>

=item B<DEB_BUILD_MAINT_OPTIONS> (since dpkg 1.16.1)

Estas variáveis podem ser usadas por um utilizador ou maintainer para desactivar/activar várias funcionalidades de área que afectam bandeiras de compilação. A variável B<DEB_BUILD_MAINT_OPTIONS> sobrepõe qualquer definição nas áreas de funcionalidade de B<DEB_BUILD_OPTIONS>. Veja a secção B<ÁREAS DE CARACTERÍSTICAS> para detalhes.

=item B<DEB_VENDOR>

Esta definição define o fornecedor actual. Se não definida, irá descobrir o fornecedor actual ao ler B<%PKGCONFDIR%/origins/default>.

=item B<DEB_BUILD_PATH>

Esta variável define o caminho de compilação (desde dpkg 1.18.8) a usar em funcionalidades como B<fixdebugpath> para que possam ser controladas pelo chamador. Esta variável é actualmente específica de Debian e derivados.

=item B<DPKG_COLORS>

Define o modo de cor (desde dpkg 1.18.5). Os valores actualmente aceites são: B<auto> (predefinido), B<always> e B<never>.

=item B<DPKG_NLS>

Se definida, será usada para decidir se deve activar o Suporte a Linguagem Nativa. Também como conhecido como suporte de internacionalização (ou i18n) (desde dpkg 1.19.0). Os valores aceites são B<0> e B<1> (predefinição).

=back

=head1 FICHEIROS

=head2 Ficheiros de configuração

=over 

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

Ficheiro de configuração geral do sistema.

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

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

Ficheiro de configuração do utilizador.

=back

=head2 Suporte a empacotamento

=over 

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

trecho do Makefile que irá carregar (e opcionalmente exportar) todas as bandeiras suportadas pelo B<dpkg-buildflags> em variáveis (desde dpkg 1.16.1).

=back

=head1 EXEMPLOS

Para passar flags de compilação a um comando de compilação dentro de um Makefile:

=over 

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

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

=back

Para definir bandeiras de compilação num script de shell ou num fragmento de shell, por ser usado o B<eval> para interpretar o resultado e para exportar as bandeiras no ambiente:

=over 

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

=back

ou para definir os parâmetros posicionais a passar a um comando:

=over 

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

=back

=head2 Utilização em debian/rules

Você deve chamar B<dpkg-buildflags> ou incluir B<buildflags.mk> do ficheiro B<debian/rules> para obter as bandeiras de compilação necessárias para passar ao sistema de compilação. Note que versões antigas do B<dpkg-buildpackage> (antes do dpkg 1.16.1) exportavam estas bandeiras automaticamente. No entanto, você não deve confiar nisto, pois isto quebra a invocação manual de B<debian/rules>.

Para pacotes com sistemas de compilação tipo autoconf, você pode passar as opções relevantes ao configure ou B<make>(1) directamente, como mostrado em cima.

Para outros sistemas de compilação, ou quando precisa de um controle mais afinado acerca de quais bandeiras são passadas para onde, você pode usar B<--get>. Ou você pode incluir B<buildflags.mk> em vez disto, o que toma conta de chamar B<dpkg-buildflags> e guardar as bandeiras de compilação em variáveis do make.

Se você quiser exportar todas as bandeiras de compilação para o ambiente (onde elas pode ser colhidas pelo seu sistema de compilação):

=over 

 DPKG_EXPORT_BUILDFLAGS = 1
 include %PKGDATADIR%/buildflags.mk

=back

Para algum controle extra sobre o que é exportado, você pode exportar manualmente as variáveis (pois nenhuma é exportada por predefinição).

=over 

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

=back

E claro que você pode passar as bandeiras aos comandos manualmente:

=over 

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

=back


=head1 TRADUÇÃO

Américo Monteiro

Se encontrar algum erro na tradução deste documento, por favor comunique para
Américo Monteiro <a_monteiro@gmx.com>.
