6.3. Ncurses-6.2

Ncurses パッケージは、端末に依存しない、文字ベースのスクリーン制御を行うライブラリを提供します。

概算ビルド時間: 0.7 SBU
必要ディスク容量: 48 MB

6.3.1. Ncurses のインストール

ビルドにあたって gawk が必ず最初に見つかるようにします。

sed -i s/mawk// configure

そして以下のコマンドを実行して、ビルドホスト上にticプログラムをビルドします。

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

Ncurses をコンパイルするための準備をします。

./configure --prefix=/usr                \
            --host=$LFS_TGT              \
            --build=$(./config.guess)    \
            --mandir=/usr/share/man      \
            --with-manpage-format=normal \
            --with-shared                \
            --without-debug              \
            --without-ada                \
            --without-normal             \
            --enable-widec

configure オプションの意味

--with-manpage-format=normal

本パラメーターは Ncurses が圧縮された man ページをインストールしないようにします。 ホストディストリビューションそのものが圧縮 man ページを利用していると、同じようになってしまうからです。

--without-ada

このオプションは Ncurses に対して Ada コンパイラーのサポート機能をビルドしないよう指示します。 この機能はホストシステムでは提供されているかもしれませんが、chroot 環境に入ってしまうと利用できなくなります。

--enable-widec

本スイッチは通常のライブラリ (libncurses.so.6.2) ではなくワイド文字対応のライブラリ (libncursesw.so.6.2) をビルドすることを指示します。 ワイド文字対応のライブラリは、マルチバイトロケールと従来の 8ビットロケールの双方に対して利用可能です。 通常のライブラリでは 8ビットロケールに対してしか動作しません。 ワイド文字対応と通常のものとでは、ソース互換があるもののバイナリ互換がありません。

--without-normal

本スイッチは、ほとんどのスタティックライブラリをビルドせずインストールもしません。

パッケージをコンパイルします。

make

パッケージをインストールします。

make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so

install オプションの意味

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

ビルドマシン上において、作り出したばかりの tic のパスを示すことが必要です。 こうすることで terminal データベースがエラーなく生成できることになります。

echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so

パッケージの中で、わずかですが libncurses.so を必要としているものがあります。 これはすぐに生成する予定のものです。 ここでこの小さなリンカースクリプトを生成します。 これは 第 8 章 においてビルドします。

共有ライブラリを、これが期待されている /lib ディレクトリに移動します。

mv -v $LFS/usr/lib/libncursesw.so.6* $LFS/lib

ライブラリを移動させたので、シンボリックリンクが 1 つ、存在しないファイルを指してしまいます。 そこでこれを再生成します。

ln -sfv ../../lib/$(readlink $LFS/usr/lib/libncursesw.so) $LFS/usr/lib/libncursesw.so

本パッケージの詳細は 「Ncurses の構成」を参照してください。