Detaljer om denne pakken finner du i Section 8.29.2, “Innhold i Ncurses”
Ncurses pakken inneholder biblioteker for terminaluavhengig håndtering av karakterskjermer.
Først, sørg for at gawk blir funnet først under konfigurasjonen:
sed -i s/mawk// configure
Kjør deretter følgende kommandoer for å bygge “tic” programmet på byggeverten:
mkdir build pushd build ../configure make -C include make -C progs tic popd
Forbered Ncurses for kompilering:
./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 \ --enable-widec
Betydningen av de nye konfigureringsalternativene:
--with-manpage-format=normal
Dette forhindrer at Ncurses installerer komprimerte manualsider, noe som kan skje hvis selve vertsdistribusjonen har komprimerte manualsider.
--with-shared
Dette får Ncurses til å bygge og installere delte C biblioteker.
--without-normal
Dette forhindrer at Ncurses bygger og installerer statiske C biblioteker.
--without-debug
Dette forhindrer at Ncurses bygger og installerer feilsøkingsbiblioteker.
--with-cxx-shared
Dette får Ncurses til å bygge og installere delte C++ bindinger. Den forhindrer også at den bygger og installerer statiske C++ bindinger.
--without-ada
Dette sikrer at Ncurses ikke bygger støtte for Ada kompilatoren som kan være til stede på verten, men som ikke vil være tilgjengelig når vi går inn i chroot miljøet.
--disable-stripping
Denne bryteren hindrer byggesystemet fra å bruke strip programmet fra verten. Bruk av vertsverktøy på krysskompilerte programmer kan forårsake feil.
--enable-widec
Denne bryteren gjør at biblioteker med brede tegn
(wide-character) f.eks., libncursesw.so.6.4-20230520
) skal bygges i
stedet for vanlige (f.eks., libncurses.so.6.4-20230520
). Disse brede
tegnbibliotekene er brukbare i både multibyte og
tradisjonelle 8-biters lokaliteter, mens vanlige biblioteker
fungerer som de skal bare i 8-biters lokaliteter. Brede
karakterer og normale biblioteker er kildekompatibel, men
ikke binærkompatibel.
Kompiler pakken:
make
Installer pakken:
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
Betydningen av installasjonsalternativene:
TIC_PATH=$(pwd)/build/progs/tic
Vi må sende stien til den nettopp bygde tic programmet som kjører på byggemaskinen, slik at terminaldatabasen kan opprettes uten feil.
libncurses.so
biblioteket
trengs av noen få pakker vi skal bygge snart. Vi lager denne
symbolkoblingen for å bruke libncursesw.so
som en erstatning.
Deklarasjonsfilen curses.h
inneholder definisjonen av ulike Ncurses datastrukturer. Med
forskjellige preprocessor makro definisjoner to forskjellige
sett med data strukturdefinisjon kan brukes: 8-biters
definisjon er kompatibel med libncurses.so
og definisjon av
wide-character er kompatibel med libncursesw.so
. Siden vi bruker
libncursesw.so
som erstatning
for libncurses.so
, rediger
deklarasjonsfilen slik at den alltid vil bruke
datastrukturdefinisjonen med wide-character kompatibel med
libncursesw.so
.
Detaljer om denne pakken finner du i Section 8.29.2, “Innhold i Ncurses”