トップ > 最小システムの構築 > 新システムの作成(後半) >
Bison

  

Bisonのビルド

Bisonは、構文解析を行うコードを生成するためのツールです。 構文解析とは、字句(トークン)の並びを解析して構文的な構造として捉えることです。

例えばコンパイラは、ソースファイルを解析する時に、字句解析および構文解析を行います。 その構文解析の部分に、Bisonによって生成されたコードが利用されます。

  
字句解析を行うコードを生成するのは flex と呼ばれる別のソフトウェアです。
  
UNIXでは yacc & lex で構文解析と字句解析を行いますが、Linux系OSでは、Bison & flexを使います。

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

ソースファイルの展開

ソースファイルを展開します。


cd /sources
tar xvf bison-3.0.4.tar.xz
cd bison-3.0.4

 

configure

configureを実行します。


./configure \
  --prefix=/usr \
  --docdir=/usr/share/doc/bison-3.0.4 > ../../logs/configurelog.bison 2>&1

 

configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


cat ../../logs/configurelog.bison

 

ビルド

ビルドを実行します。


make

 

ビルドが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。

テスト

テストを行います。


make check 2>&1 | tee ../../logs/checklog.bison

 

テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。


grep 'tests were' ../../logs/checklog.bison

 

以下の結果であれば問題ありません

470 tests were successful.
23 tests were skipped.

インストール

インストールを行います。


make install

 

インストールが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。

ソースファイル付属文書のインストール

ソースファイルに付属している文書のインストールを行います。


mkdir -vp /usr/share/doc/bison-3.0.4
cp -va ABOUT-NLS      /usr/share/doc/bison-3.0.4
cp -va AUTHORS        /usr/share/doc/bison-3.0.4
cp -va COPYING        /usr/share/doc/bison-3.0.4
cp -va ChangeLog      /usr/share/doc/bison-3.0.4
cp -va ChangeLog-1998 /usr/share/doc/bison-3.0.4
cp -va ChangeLog-2012 /usr/share/doc/bison-3.0.4
cp -va INSTALL        /usr/share/doc/bison-3.0.4
cp -va NEWS           /usr/share/doc/bison-3.0.4
cp -va PACKAGING      /usr/share/doc/bison-3.0.4
cp -va README         /usr/share/doc/bison-3.0.4
cp -va README-alpha   /usr/share/doc/bison-3.0.4
cp -va README-release /usr/share/doc/bison-3.0.4
cp -va THANKS         /usr/share/doc/bison-3.0.4
cp -va TODO           /usr/share/doc/bison-3.0.4

 

後始末

ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。


cd ..
rm -fr bison-3.0.4

 

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh bison

 
  
  

まとめ

Bisonは、構文解析を行うコードを生成するためのツールです。

メニュー