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, assegure que gawk é encontrado primeiro durante a configuração:

sed -i s/mawk// configure

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

mkdir build
pushd build
  ../configure
  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

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.

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 do install:

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