Details on this package are located in Section 8.30.2, “Contents of Ncurses.”
The Ncurses package contains libraries for terminal-independent handling of character screens.
First, ensure that gawk is found first during configuration:
sed -i s/mawk// configure
Then, run the following commands to build the “tic” program on the build host:
mkdir build pushd build ../configure make -C include make -C progs tic popd
Prepare Ncurses for compilation:
./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
The meaning of the new configure options:
--with-manpage-format=normal
This prevents Ncurses from installing compressed manual pages, which may happen if the host distribution itself has compressed manual pages.
--with-shared
This makes Ncurses build and install shared C libraries.
--without-normal
This prevents Ncurses from building and installing static C libraries.
--without-debug
This prevents Ncurses from building and installing debug libraries.
--with-cxx-shared
This makes Ncurses build and install shared C++ bindings. It also prevents it building and installing static C++ bindings.
--without-ada
This ensures that Ncurses does not build support for the Ada compiler, which may be present on the host but will not be available once we enter the chroot environment.
--disable-stripping
This switch prevents the building system from using the strip program from the host. Using host tools on cross-compiled programs can cause failure.
Compile the package:
make
Install the package:
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
The meaning of the install options:
TIC_PATH=$(pwd)/build/progs/tic
We need to pass the path of the newly built tic program that runs on the building machine, so the terminal database can be created without errors.
The libncurses.so
library is
needed by a few packages we will build soon. We create this
symlink to use libncursesw.so
as a replacement.
The header file curses.h
contains the definition of various Ncurses data structures.
With different preprocessor macro definitions two different
sets of the data structure definition may be used: the 8-bit
definition is compatible with libncurses.so
and the wide-character
definition is compatible with libncursesw.so
. Since we are using
libncursesw.so
as a replacement
of libncurses.so
, edit the
header file so it will always use the wide-character data
structure definition compatible with libncursesw.so
.
Details on this package are located in Section 8.30.2, “Contents of Ncurses.”