6.40. Flex-2.5.35

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

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

6.40.1. Flex のインストール

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

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 ライブラリ。