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

  

flexのビルド

flexは、字句解析を行うコードを生成するためのツールです。 字句解析とは、テキストを解析して字句(トークン)に分割する処理です。

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

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

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

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


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

 

ソースファイルの展開

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


cd /sources
tar xvf flex-2.5.39.tar.xz
cd flex-2.5.39

 

ソースファイルの修正

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


sed -i -e '/test-bison/d' tests/Makefile.in

 

configure

configureを実行します。


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

 

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


cat ../../logs/configurelog.flex

 

ビルド

ビルドを実行します。


make

 

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

テスト

テストを行います。


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

 

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


grep '^Tests ' ../../logs/checklog.flex

 

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

Tests succeeded: 44
Tests FAILED: 0

インストール

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


make install

 

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

インストール後の追加作業

インストール後の追加作業を行います。 flex に lex という名称のシンボリックリンクを与えます。


ln -vsf flex /usr/bin/lex

 

今後の作業でビルドするソフトウェアの中には、このツールを lex というファイル名で呼び出すものもあるかもしれません。 そこで、flex に lex という名称のシンボリックリンクを与えています。

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

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


mkdir -vp /usr/share/doc/flex-2.5.39
cp -va ABOUT-NLS    /usr/share/doc/flex-2.5.39
cp -va AUTHORS      /usr/share/doc/flex-2.5.39
cp -va COPYING      /usr/share/doc/flex-2.5.39
cp -va ChangeLog    /usr/share/doc/flex-2.5.39
cp -va INSTALL      /usr/share/doc/flex-2.5.39
cp -va NEWS         /usr/share/doc/flex-2.5.39
cp -va ONEWS        /usr/share/doc/flex-2.5.39
cp -va README       /usr/share/doc/flex-2.5.39
cp -va THANKS       /usr/share/doc/flex-2.5.39
cp -va TODO         /usr/share/doc/flex-2.5.39
cp -va doc/flex.pdf /usr/share/doc/flex-2.5.39

 

後始末

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


cd ..
rm -fr flex-2.5.39

 

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

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


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

 
  
  

まとめ

flexは、字句解析を行うコードを生成するためのツールです。

メニュー