6.3. Ncurses-6.5

O pacote Ncurses contém bibliotecas para manuseio independente de terminal das telas de caracteres .

Tempo aproximado de construção: 0,4 UPC
Espaço em disco exigido: 53 MB

6.3.1. Instalação do Ncurses

Primeiro, execute os seguintes comandos para construir o programa tic no anfitrião de construção:

mkdir build
pushd build
  ../configure AWK=gawk
  make -C include
  make -C progs tic
popd

Prepare o Ncurses para compilação:

./configure --prefix=/usr                \
            --host=$LFS_TGT              \
            --build=$(./config.guess)    \
            --mandir=/usr/share/man      \
            --with-manpage-format=normal \
            --with-shared                \
            --without-normal             \
            --with-cxx-shared            \
            --without-debug              \
            --without-ada                \
            --disable-stripping          \
            AWK=gawk

O significado das novas opções de configuração:

--with-manpage-format=normal

Isso evita que o Ncurses instale páginas de manual comprimidas, o que possivelmente aconteça se a própria distribuição anfitriã tiver páginas de manual comprimidas.

--with-shared

Isso faz com que o Ncurses construa e instale bibliotecas C compartilhadas.

--without-normal

Isso evita que o Ncurses construa e instale bibliotecas C estáticas.

--without-debug

Isso evita que o Ncurses construa e instale bibliotecas de depuração.

--with-cxx-shared

Isso faz com que o Ncurses construa e instale vínculos C++ compartilhados. Também evita a construção e instalação de vínculos C++ estáticos.

--without-ada

Isso assegura que o Ncurses não construa suporte para o compilador Ada, o qual possivelmente esteja presente no anfitrião, porém não estará disponível até que nós entremos no ambiente chroot.

--disable-stripping

Essa chave impede o sistema de construção de usar o aplicativo strip oriundo do anfitrião. Usar ferramentas do anfitrião em aplicativos compilados cruzadamente pode causar falha.

AWK=gawk

Essa chave impede o sistema de construção de usar o programa mawk oriundo do anfitrião. Algumas versões do mawk podem causar esse pacote falhar para construir.

Compile o pacote:

make

Instale o pacote:

make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
ln -sv libncursesw.so $LFS/usr/lib/libncurses.so
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
     -i $LFS/usr/include/curses.h

O significado das opções de instalação:

TIC_PATH=$(pwd)/build/progs/tic

Nós precisamos passar o caminho do recém construído aplicativo tic que executa na máquina de construção, de forma que a base de dados de terminal possa ser criada sem erros.

ln -sv libncursesw.so $LFS/usr/lib/libncurses.so

A biblioteca libncurses.so é necessária para uns poucos pacotes que nós construiremos breve. Nós criamos esse link simbólico para usar a libncursesw.so como uma substituta.

sed -e 's/^#if.*XOPEN.*$/#if 1/' ...

O arquivo de cabeçalho curses.h contém a definição de várias estruturas de dados do Ncurses. Com diferentes definições de macro de pré processador, dois conjuntos de definição de estrutura de dados podem ser usados: a definição de oito bits é compatível com a libncurses.so e a definição de caracteres largos é compatível com a libncursesw.so. Como estamos usando a libncursesw.so como uma substituta da libncurses.so, edite o arquivo de cabeçalho de forma que ele sempre usará a definição de estrutura de dados de caracteres largos compatível com a libncursesw.so.

Detalhes acerca deste pacote estão localizados na Seção 8.30.2, “Conteúdo do Ncurses.”