6.3. Ncurses-6.4

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

概算ビルド時間: 0.3 SBU
必要ディスク容量: 51 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-normal             \
            --with-cxx-shared            \
            --without-debug              \
            --without-ada                \
            --disable-stripping          \
            --enable-widec

configure オプションの意味

--with-manpage-format=normal

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

--with-shared

これは Ncurses において共有 C ライブラリをビルドしインストールします。

--without-normal

これは Ncurses においてスタティックな C ライブラリのビルドおよびインストールを行わないようにします。

--without-debug

これは Ncurses においてデバッグライブラリのビルドおよびインストールを行わないようにします。

--with-cxx-shared

これは Ncurses において共有 C++ バインディングをビルドしインストールします。 同時にスタティックな C++ バインディングのビルドおよびインストールは行わないようにします。

--without-ada

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

--disable-stripping

本スイッチは、ホスト上の strip を、ビルドシステムが利用しないようにします。 クロスコンパイルされたプログラムに対して、ホスト上のツールを使うと、ビルド失敗の原因になります。

--enable-widec

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

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

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 章 においてビルドします。

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