# 3. Configurando o Python

## 3.1. Opções de configuração

Liste todas as opções do `./configure` usando:

    ./configure --help

Veja também o `Misc/SpecialBuilds.txt` na distribuição de código-fonte do Python.

### 3.1.1. Opções gerais

`--enable-loadable-sqlite-extensions```

  Oferece suporte a extensões carregáveis no módulo de extensão `_sqlite` (desabilitado por padrão).

  Veja o método `sqlite3.Connection.enable_load_extension()` do módulo `sqlite3`.

  Novo na versão 3.6.

`--disable-ipv6```

  Desabilita suporte a IPv6 (habilitado por padrão se houver suporte), veja o módulo `socket`.

`--enable-big-digits``=[15|30]`

  Define o tamanho em bits dos dígitos de `int` do Python: 15 ou 30 bits.

  Por padrão, o número de bits é selecionado dependendo de `sizeof(void*)`: 30 bits se o tamanho de `void*` for 64 bits ou maior, 15 bits caso contrário.

  Define o `PYLONG_BITS_IN_DIGIT` para `15` ou `30`.

  Veja `sys.int_info.bits_per_digit`.

`--with-cxx-main```

`--with-cxx-main``=COMPILER`

  Compila a função `main()` do Python e vincula o executável do Python ao compilador C++: `$CXX` ou COMPILER se especificado.

`--with-suffix``=SUFFIX`

  Define o sufixo do executável do Python para SUFFIX.

  O sufixo padrão é `.exe` no Windows e macOS (executável `python.exe`), e uma string vazia em outras plataformas (executável `python`).

`--with-tzpath``=<list of absolute paths separated by pathsep>`

  Seleciona o caminho de pesquisa de fuso horário padrão para `zoneinfo.TZPATH`. Veja a Configuração de tempo de compilação do módulo `zoneinfo`.

  Padrão: `/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo`.

  Veja o separador de caminhos `os.pathsep`.

  Novo na versão 3.9.

`--without-decimal-contextvar```

  Constrói o módulo de extensão `_decimal` usando um contexto local de thread ao invés de um contexto local de corrotina (padrão), veja o módulo `decimal`.

  Veja `decimal.HAVE_CONTEXTVAR` e o módulo `contextvars`.

  Novo na versão 3.9.

`--with-dbmliborder``=db1:db2:...`

  Substitui a ordem de verificação de backends de banco de dados para o módulo `dbm`

  Um valor válido é uma string separada por dois pontos (`:`) com os nomes de backend:

  - `ndbm`;

  - `gdbm`;

  - `bdb`.

`--without-c-locale-coercion```

  Desabilita a coerção de localidade C para uma localidade baseada em UTF-8 (ativada por padrão).

  Não define a macro `PY_COERCE_C_LOCALE`.

  Consulte `PYTHONCOERCECLOCALE` e a PEP 538.

`--with-platlibdir``=DIRNAME`

  Nome do diretório da biblioteca Python (o padrão é `lib`).

  Fedora e SuSE usam `lib64` em plataformas de 64 bits.

  Veja `sys.platlibdir`.

  Novo na versão 3.9.

`--with-wheel-pkg-dir``=PATH`

  Diretório de pacotes de wheel usados pelo módulo `ensurepip` (nenhum por padrão).

  Algumas políticas de empacotamento de distribuição do Linux recomendam contra o empacotamento de dependências. Por exemplo, o Fedora instala pacotes wheel no diretório `/usr/share/python-wheels/` e não instala o pacote `ensurepip._bundled`.

  Novo na versão 3.10.

### 3.1.2. Opções de instalação

`--prefix``=PREFIX`

  Instala arquivos independentes de arquitetura em PREFIX. No Unix, o padrão é `/usr/local`.

  Este valor pode ser recuperado em tempo de execução usando `sys.prefix`.

  Como exemplo, pode-se usar `--prefix="$HOME/.local/"` para instalar um Python em seu diretório pessoal (home).

`--exec-prefix``=EPREFIX`

  Instala arquivos dependentes de arquitetura no EPREFIX, o padrão é `--prefix`.

  Este valor pode ser recuperado em tempo de execução usando `sys.exec_prefix`.

`--disable-test-modules```

  Não compila nem instala módulos de teste, como o pacote `test` ou o módulo de extensão `_testcapi` (compilado e instalado por padrão).

  Novo na versão 3.10.

`--with-ensurepip``=[upgrade|install|no]`

  Seleciona o comando `ensurepip` executado na instalação do Python:

  - `upgrade` (padrão): executa o comando `python -m ensurepip --altinstall --upgrade`.

  - `install`: executa o comando `python -m ensurepip --altinstall`;

  - `no`: não executa ensurepip;

  Novo na versão 3.6.

### 3.1.3. Opções de desempenho

Configuring Python using `--enable-optimizations --with-lto` (PGO + LTO) is recommended for best performance.

`--enable-optimizations```

  Habilita a otimização guiada por perfil (PGO, do inglês Profile Guided Optimization) usando `PROFILE_TASK` (desabilitado por padrão).

  O compilador C Clang requer o programa `llvm-profdata` para PGO. No macOS, o GCC também exige: o GCC é apenas um apelido para o Clang no macOS.

  Desabilita também a interposição semântica no libpython se `--enable-shared` e GCC forem usados: adiciona `-fno-semantic-interposition` aos sinalizadores do compilador e do vinculador.

  Novo na versão 3.6.

  Alterado na versão 3.10: Usa `-fno-semantic-interposition` no GCC.

`PROFILE_TASK`

  Variável de ambiente usada no Makefile: argumentos de linha de comando do Python para a tarefa de geração de PGO.

  Padrão: `-m test --pgo --timeout=$(TESTTIMEOUT)`.

  Novo na versão 3.8.

`--with-lto```

  Habilita o otimização em tempo de vinculação (LTO, do inglês Link Time Optimization) em qualquer construção (desabilitado por padrão).

  O compilador C Clang requer `llvm-ar` para LTO (`ar` no macOS), bem como um vinculador compatível com LTO (`ld.gold` ou `lld`).

  Novo na versão 3.6.

`--with-computed-gotos```

  Habilita “gotos” computados no laço de avaliação (habilitado por padrão em compiladores suportados).

`--without-pymalloc```

  Desabilita o alocador de memória especializado do Python pymalloc (habilitado por padrão).

  Veja também a variável de ambiente `PYTHONMALLOC`.

`--without-doc-strings```

  Desabilita as strings de documentação estática para reduzir o consumo de memória (habilitado por padrão). As strings de documentação definidas em Python não são afetadas.

  Não define a macro `WITH_DOC_STRINGS`.

  Veja a macro `PyDoc_STRVAR()`.

`--enable-profiling```

  Habilita o perfil de código a nível C com `gprof` (desabilitado por padrão).

### 3.1.4. Compilação de depuração do Python

Uma compilação de depuração é Python compilada com a opção de configuração `--with-pydebug`.

Efeitos de uma compilação de depuração:

- Exibe todos os avisos por padrão: a lista de filtros de aviso padrão está vazia no módulo `warnings`.

- Adiciona `d` a `sys.abiflags`.

- Adiciona a função `sys.gettotalrefcount()`.

- Adiciona a opção de linha de comando `-X showrefcount`.

- Add `PYTHONTHREADDEBUG` environment variable.

- Add support for the `__ltrace__` variable: enable low-level tracing in the bytecode evaluation loop if the variable is defined.

- Instala ganchos de depuração nos alocadores de memória para detectar estouro de buffer e outros erros de memória.

- Define as macros `Py_DEBUG` e `Py_REF_DEBUG`.

- Add runtime checks: code surroundeded by `#ifdef Py_DEBUG` and `#endif`. Enable `assert(...)` and `_PyObject_ASSERT(...)` assertions: don’t set the `NDEBUG` macro (see also the `--with-assertions` configure option). Main runtime checks:

  - Adiciona verificações de sanidade nos argumentos da função.

  - Objetos Unicode e int são criados com sua memória preenchida com um padrão para detectar o uso de objetos não inicializados.

  - Garante que as funções que podem limpar ou substituir a exceção atual não sejam chamadas com uma exceção levantada.

  - O coletor de lixo (função `gc.collect()`) executa algumas verificações básicas na consistência dos objetos.

  - A macro `Py_SAFE_DOWNCAST()` verifica o underflow e o overflow de inteiros ao fazer o downcast de tipos largos para tipos estreitos.

Veja também o Modo de Desenvolvimento do Python e a opção de configuração `--with-trace-refs`.

Alterado na versão 3.8: Compilações de lançamento e compilações de depuração agora são compatíveis com ABI: definir a macro `Py_DEBUG` não implica mais na macro `Py_TRACE_REFS` (consulte a opção `--with-trace-refs`), que apresenta a única incompatibilidade de ABI.

### 3.1.5. Opções de depuração

`--with-pydebug```

  Construção de depuração do Python: define a macro `Py_DEBUG` (desabilitada por padrão).

`--with-trace-refs```

  Habilita referências de rastreamento para fins de depuração (desabilitado por padrão).

  Efeitos:

  - Define a macro `Py_TRACE_REFS`.

  - Adiciona a função `sys.getobjects()`.

  - Adiciona a variável de ambiente `PYTHONDUMPREFS`.

  Esta construção não é compatível com ABI com a construção de lançamento (construção padrão) ou construção de depuração (macros `Py_DEBUG` e `Py_REF_DEBUG`).

  Novo na versão 3.8.

`--with-assertions```

  Constrói com asserções C habilitadas (o padrão é não): `assert(...);` e `_PyObject_ASSERT(...);`.

  Se definido, a macro `NDEBUG` não é definida na variável do compilador `OPT`.

  Veja também a opção `--with-pydebug` (construção de depuração) que também habilita asserções.

  Novo na versão 3.6.

`--with-valgrind```

  Habilita suporte ao Valgrind (o padrão é não).

`--with-dtrace```

  Habilita suporte ao DTrace (o padrão é não).

  Veja Instrumentando o CPython com DTrace e SystemTap.

  Novo na versão 3.6.

`--with-address-sanitizer```

  Habilita o detector de erros de memória AddressSanitizer, `asan` (o padrão é não).

  Novo na versão 3.6.

`--with-memory-sanitizer```

  Habilita o detector de erros de alocação do MemorySanitizer, `msan` (o padrão é não).

  Novo na versão 3.6.

`--with-undefined-behavior-sanitizer```

  Habilita o detector de comportamento indefinido UndefinedBehaviorSanitizer, `ubsan` (o padrão é não).

  Novo na versão 3.6.

### 3.1.6. Opções da ligação

`--enable-shared```

  Habilita a construção de uma biblioteca Python compartilhada: `libpython` (o padrão é não).

`--without-static-libpython```

  Não constrói `libpythonMAJOR.MINOR.a` e não instala `python.o` (construído e habilitado por padrão).

  Novo na versão 3.10.

### 3.1.7. Opções da biblioteca

`--with-libs``='lib1 ...'`

  Vincula bibliotecas adicionais (o padrão é não).

`--with-system-expat```

  Build the `pyexpat` module using an installed `expat` library (default is no).

`--with-system-ffi```

  Build the `_ctypes` extension module using an installed `ffi` library, see the `ctypes` module (default is system-dependent).

`--with-system-libmpdec```

  Constrói o módulo de extensão `_decimal` usando uma biblioteca `mpdec` instalada, veja o módulo `decimal` (o padrão é não).

  Novo na versão 3.3.

`--with-readline``=editline`

  Usa a biblioteca `editline` para backend do módulo `readline`.

  Define a macro `WITH_EDITLINE`.

  Novo na versão 3.10.

`--without-readline```

  Não constrói o módulo `readline` (construído por padrão).

  Não define a macro `HAVE_LIBREADLINE`.

  Novo na versão 3.10.

`--with-tcltk-includes``='-I...'`

  Override search for Tcl and Tk include files.

`--with-tcltk-libs``='-L...'`

  Override search for Tcl and Tk libraries.

`--with-libm``=STRING`

  Substitui a biblioteca matemática `libm` por STRING (o padrão depende do sistema).

`--with-libc``=STRING`

  Substitui a biblioteca C `libc` por STRING (o padrão depende do sistema).

`--with-openssl``=DIR`

  Raiz do diretório OpenSSL.

  Novo na versão 3.7.

`--with-openssl-rpath``=[no|auto|DIR]`

  Define o diretório da biblioteca de tempo de execução (rpath) para bibliotecas OpenSSL:

  - `no` (padrão): não define o rpath;

  - `auto`: detecta automaticamente o rpath de `--with-openssl` e `pkg-config`;

  - DIR: define um rpath explícito.

  Novo na versão 3.10.

### 3.1.8. Opções de segurança

`--with-hash-algorithm``=[fnv|siphash24]`

  Seleciona o algoritmo de hash para usar em `Python/pyhash.c`:

  - `siphash24` (default).

  - `fnv`;

  Novo na versão 3.4.

`--with-builtin-hashlib-hashes``=md5,sha1,sha256,sha512,sha3,blake2`

  Módulos embutidos de hash

  - `md5`;

  - `sha1`;

  - `sha256`;

  - `sha512`;

  - `sha3` (com shake);

  - `blake2`.

  Novo na versão 3.9.

`--with-ssl-default-suites``=[python|openssl|STRING]`

  Substitui a string dos conjuntos de criptografia padrão do OpenSSL:

  - `python` (padrão): use a seleciona preferida do Python;

  - `openssl`: mantém inalterados os padrões do OpenSSL;

  - STRING: usa uma string personalizada

  Veja o módulo `ssl`.

  Novo na versão 3.7.

  Alterado na versão 3.10: As configurações `python` e STRING também definem TLS 1.2 como versão mínima do protocolo.

### 3.1.9. Opções do macOS

Veja `Mac/README.rst`.

`--enable-universalsdk```

`--enable-universalsdk``=SDKDIR`

  Cria uma construção binária universal. SDKDIR especifica qual SDK do macOS deve ser usado para executar a construção (o padrão é não).

`--enable-framework```

`--enable-framework``=INSTALLDIR`

  Cria um Python.framework em vez de uma instalação tradicional do Unix. O INSTALLDIR opcional especifica o caminho de instalação (o padrão é não).

`--with-universal-archs``=ARCH`

  Especifica o tipo de binário universal que deve ser criado. Esta opção só é válida quando `--enable-universalsdk` está definido.

  Opções:

  - `universal2`;

  - `32-bit`;

  - `64-bit`;

  - `3-way`;

  - `intel`;

  - `intel-32`;

  - `intel-64`;

  - `all`.

`--with-framework-name``=FRAMEWORK`

  Especifica o nome do framework python no macOS válido apenas quando `--enable-framework` está definido (padrão: `Python`).

## 3.2. Sistema de Construção Python

### 3.2.1. Arquivos principais do sistema de construção

- `configure.ac` => `configure`;

- `Makefile.pre.in` => `Makefile` (criado por `configure`);

- `pyconfig.h` (criado por `configure`);

- `Modules/Setup`: Extensões C construídas pelo Makefile usando o shell script `Module/makesetup`;

- `setup.py`: C extensions built using the `distutils` module.

### 3.2.2. Principais etapas de construção

- Arquivos C (`.c`) são construídos como arquivos objeto (`.o`).

- Uma biblioteca estática `libpython` (`.a`) é criada a partir de arquivos de objetos.

- `python.o` e a biblioteca estática `libpython` estão vinculadas ao programa final `python`.

- C extensions are built by the Makefile (see `Modules/Setup`) and `python setup.py build`.

### 3.2.3. Alvos principais do Makefile

- `make`: Constrói o Python com a biblioteca padrão.

- `make platform:`: constrói o programa `python`, mas não constrói os módulos de extensão da biblioteca padrão.

- : constrói `make profile-opt` o Python usando otimização guiada por perfil (ou Profile Guided Optimization – PGO). Você pode usar a opção `--enable-optimizations` do configure para tornar este o alvo padrão do comando `make` (`make all` ou apenas `make`).

- `make buildbottest`: Constrói o Python e executa o conjunto de testes do Python, da mesma forma que os buildbots testam o Python. Defina a variável `TESTTIMEOUT` (em segundos) para alterar o tempo limite do teste (1200 por padrão: 20 minutos).

- `make install`: Constrói e instala o Python.

- `make regen-all`: Regenera (quase) todos os arquivos gerados; `make regen-stdlib-module-names` e `autoconf` deve ser executado separadamente para os arquivos gerados restantes.

- `make clean`: Remove os arquivos construídos.

- `make distclean`: Mesmo que `make clean`, mas também remove arquivos criados pelo script de configuração.

### 3.2.4. Extensões C

Some C extensions are built as built-in modules, like the `sys` module. They are built with the `Py_BUILD_CORE_BUILTIN` macro defined. Built-in modules have no `__file__` attribute:

    >>> import sys
    >>> sys
    <module 'sys' (built-in)>
    >>> sys.__file__
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: module 'sys' has no attribute '__file__'

Other C extensins are built as dynamic libraries, like the `_asyncio` module. They are built with the `Py_BUILD_CORE_MODULE` macro defined. Example on Linux x86-64:

    >>> import _asyncio
    >>> _asyncio
    <module '_asyncio' from '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'>
    >>> _asyncio.__file__
    '/usr/lib64/python3.9/lib-dynload/_asyncio.cpython-39-x86_64-linux-gnu.so'

`Modules/Setup` é usado para gerar alvos Makefile para construir extensões C. No início dos arquivos, as extensões C são construídas como módulos embutidos. Extensões definidas após o marcador `*shared*` são construídas como bibliotecas dinâmicas.

The `setup.py` script only builds C extensions as shared libraries using the `distutils` module.

The `PyAPI_FUNC()`, `PyAPI_API()` and `PyMODINIT_FUNC()` macros of `Include/pyport.h` are defined differently depending if the `Py_BUILD_CORE_MODULE` macro is defined:

- Usa `Py_EXPORTED_SYMBOL` se `Py_BUILD_CORE_MODULE` estiver definido

- Do contrário, usa `Py_IMPORTED_SYMBOL`.

If the `Py_BUILD_CORE_BUILTIN` macro is used by mistake on a C extension built as a shared library, its `PyInit_xxx()` function is not exported, causing an `ImportError` on import.

## 3.3. Sinalizadores do compilador e do vinculador

Opções definidas pelo script `./configure` e variáveis de ambiente e usadas por `Makefile`.

### 3.3.1. Sinalizadores do pré-processador

`CONFIGURE_CPPFLAGS`

  Valor da variável `CPPFLAGS` passado para o script `./configure`.

  Novo na versão 3.6.

`CPPFLAGS`

  (Objective) C/C++ preprocessor flags, e.g. `-I<include dir>` if you have headers in a nonstandard directory `<include dir>`.

  Both `CPPFLAGS` and `LDFLAGS` need to contain the shell’s value for setup.py to be able to build extension modules using the directories specified in the environment variables.

`BASECPPFLAGS`

  Novo na versão 3.4.

`PY_CPPFLAGS`

  Sinalizadores extras de pré-processador adicionados para construir os arquivos de objeto do interpretador.

  Padrão: `$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)`.

  Novo na versão 3.2.

### 3.3.2. Sinalizadores do compilador

`CC`

  Comando do compilador C.

  Exemplo: `gcc -pthread`.

`MAINCC`

  C compiler command used to build the `main()` function of programs like `python`.

  Variable set by the `--with-cxx-main` option of the configure script.

  Default: `$(CC)`.

`CXX`

  Comando do compilador C++.

  Used if the `--with-cxx-main` option is used.

  Exemplo: `g++ -pthread`.

`CFLAGS`

  Sinalizadores do compilador C.

`CFLAGS_NODIST`

  `CFLAGS_NODIST` is used for building the interpreter and stdlib C extensions. Use it when a compiler flag should not be part of the distutils `CFLAGS` once Python is installed (bpo-21121).

  Em particular, `CFLAGS` não deve conter:

  - o sinalizador do compilador `-I` (para definir o caminho de pesquisa para arquivos incluídos). Os sinalizadores `-I` são processadas da esquerda para a direita, e quaisquer sinalizadores em `CFLAGS` terão precedência sobre os sinalizadores `-I` fornecidos pelo usuário e pelo pacote.

  - sinalizadores de segurança como `-Werror` porque as distribuições não podem controlar se os pacotes instalados pelos usuários estão em conformidade com esses padrões elevados.

  Novo na versão 3.5.

`EXTRA_CFLAGS`

  Sinalizadores extra do compilador C.

`CONFIGURE_CFLAGS`

  Valor da variável `CFLAGS` passado para o script `./configure`.

  Novo na versão 3.2.

`CONFIGURE_CFLAGS_NODIST`

  Valor da variável `CFLAGS_NODIST` passado para o script `./configure`.

  Novo na versão 3.5.

`BASECFLAGS`

  Sinalizadores base do compilador.

`OPT`

  Sinalizadores de otimização.

`CFLAGS_ALIASING`

  Sinalizadores de alias estritos ou não estritos usados para compilar `Python/dtoa.c`.

  Novo na versão 3.7.

`CCSHARED`

  Sinalizadores de compilador usados para construir uma biblioteca compartilhada.

  Por exemplo, `-fPIC` é usado no Linux e no BSD.

`CFLAGSFORSHARED`

  Sinalizadores extras de C adicionados para construir os arquivos de objeto do interpretador.

  Padrão: `$(CCSHARED)` quando `--enable-shared` é usado, ou uma string vazia caso contrário.

`PY_CFLAGS`

  Padrão: `$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)`.

`PY_CFLAGS_NODIST`

  Padrão: `$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal`.

  Novo na versão 3.5.

`PY_STDMODULE_CFLAGS`

  Sinalizadores do C usados para construir os arquivos de objeto do interpretador.

  Padrão: `$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)`.

  Novo na versão 3.7.

`PY_CORE_CFLAGS`

  Padrão: `$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE`.

  Novo na versão 3.2.

`PY_BUILTIN_MODULE_CFLAGS`

  Sinalizadores do compilador para construir um módulo de extensão de biblioteca padrão como um módulo embutido, como o módulo `posix`.

  Padrão: `$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN`.

  Novo na versão 3.8.

`PURIFY`

  Comando de Purify. Purify é um programa depurador de memória.

  Padrão: string vazia (não usada).

### 3.3.3. Sinalizadores do vinculador

`LINKCC`

  Comando do vinculador usado para construir programas como `python` e `_testembed`.

  Default: `$(PURIFY) $(MAINCC)`.

`CONFIGURE_LDFLAGS`

  Valor da variável `LDFLAGS` passado para o script `./configure`.

  Evite atribuir `CFLAGS`, `LDFLAGS`, etc. para que os usuários possam usá-los na linha de comando para anexar a esses valores sem pisotear os valores predefinidos.

  Novo na versão 3.2.

`LDFLAGS_NODIST`

  `LDFLAGS_NODIST` is used in the same manner as `CFLAGS_NODIST`. Use it when a linker flag should not be part of the distutils `LDFLAGS` once Python is installed (bpo-35257).

  Em particular, `LDFLAGS` não deve conter:

  - o sinalizador do compilador `-L` (para definir o caminho de pesquisa para arquivos incluídos). Os sinalizadores `-L` são processadas da esquerda para a direita, e quaisquer sinalizadores em `LDFLAGS` terão precedência sobre os sinalizadores `-L` fornecidos pelo usuário e pelo pacote.

`CONFIGURE_LDFLAGS_NODIST`

  Valor da variável `LDFLAGS_NODIST` passado para o script `./configure`.

  Novo na versão 3.8.

`LDFLAGS`

  Linker flags, e.g. `-L<lib dir>` if you have libraries in a nonstandard directory `<lib dir>`.

  Both `CPPFLAGS` and `LDFLAGS` need to contain the shell’s value for setup.py to be able to build extension modules using the directories specified in the environment variables.

`LIBS`

  Sinalizadores do vinculador para passar bibliotecas para o vinculador ao vincular o executável Python.

  Exemplo: `-lrt`.

`LDSHARED`

  Comando para construir uma biblioteca compartilhada.

  Padrão: `@LDSHARED@ $(PY_LDFLAGS)`.

`BLDSHARED`

  Comando para construir a biblioteca compartilhada `libpython`.

  Padrão: `@BLDSHARED@ $(PY_CORE_LDFLAGS)`.

`PY_LDFLAGS`

  Padrão: `$(CONFIGURE_LDFLAGS) $(LDFLAGS)`.

`PY_LDFLAGS_NODIST`

  Padrão: `$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)`.

  Novo na versão 3.8.

`PY_CORE_LDFLAGS`

  Sinalizadores de vinculador usados para construir os arquivos de objeto do interpretador.

  Novo na versão 3.8.