6.40. Flex-2.5.35

Flex パッケージは、字句パターンを認識するプログラムを生成するユーティリティを提供します。

概算ビルド時間: 0.7 SBU テストスイート込み
必要ディスク容量: 28 MB テストスイート込み

6.40.1. Flex のインストール

C++ のスキャナ生成に含まれるバグを修正するためのパッチを適用します。 これがないと GCC-4.4.3 を用いた時にスキャナに関するコンパイルに失敗します。

patch -Np1 -i ../flex-2.5.35-gcc44-1.patch

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

./configure --prefix=/usr

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

make

コンパイル結果をテストするために以下を実行します。(約 0.5 SBU)

make check

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

make install

他のパッケージの中には lex ライブラリが /usr/lib ディレクトリにあるものとして動作しています。 これに対応するためシンボリックリンクを作成します。

ln -sv libfl.a /usr/lib/libl.a

プログラムの中には flex コマンドが用いられず、その前身である lex コマンドを実行しようとするものがあります。 そういったプログラムへ対応するために lex という名のラッパースクリプトを生成します。 このスクリプトは lex のエミュレーションモードとして flex を実行します。

cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex

exec /usr/bin/flex -l "$@"

# End /usr/bin/lex
EOF
chmod -v 755 /usr/bin/lex

必要ならドキュメントファイル flex.pdf をインストールします。

mkdir -v /usr/share/doc/flex-2.5.35
cp    -v doc/flex.pdf \
         /usr/share/doc/flex-2.5.35

6.40.2. Flex の構成

インストールプログラム: flex, lex
インストールライブラリ: libfl.a, libfl_pic.a

概略説明

flex

テキスト内のパターンを認識するためのプログラムを生成するツール。 これは多彩なパターン検索の規則構築を可能とします。 これを利用することで特別なプログラムの生成が不要となります。

lex

lex のエミュレーションモードとして flex を実行するスクリプト。

libfl.a

flex ライブラリ。