4.2. configure

パッケージ固有のオプションは次の通り。

--enable-mt=LIST

ビルドするメルセンヌ・ツイスタを選択する。例えばmt521とmt607を選択するなら、--enable-mt=mt521,mt607と指定すること。無指定のときはすべてのメルセンヌ・ツイスタが選択される。選択肢の一覧は表 3.1. 「メルセンヌ・ツイスタ一覧」の名称の欄を参照のこと。

--enable-initialization=LIST

ビルドする初期化関数を選択する。例えばスカラ値による初期化関数だけをビルド対象とするなら、--enable-initialization=scalarと指定すること。無指定のときはすべての初期化関数が選択される。選択肢の一覧は表 3.2. 「初期化方式一覧」の名称の欄を参照のこと。

--enable-variant=LIST

ビルドする乱数生成関数を選択する。例えばループ版の乱数生成関数だけをビルド対象とするなら、--enable-variant=loop,loop-ntと指定すること。無指定のときはすべての乱数生成関数が選択される。選択肢の一覧は表 3.3. 「乱数生成方式一覧」の名称の欄を参照のこと。

--enable-loop-variants-inlining, --disable-loop-variants-inlining

ループ版の乱数生成関数の部分インライン展開を制御する。無指定のときは部分インライン展開が有効になる。

--enable-force-vartype=STRING

mtlite_result_typeの実体を強制指定する。例えばunsigned intを指定するなら、--enable-force-vartype='unsigned int'とする(引数内の空白がシェルの区切り文字として扱われないようにすること)。無指定のときはconfigureが自動検出する。使用するときは、必要に応じて--enable-force-includesも併せて指定すること。

--enable-force-includes=LIST

mtlite.hがインクルードするファイルを強制指定する。通常は無指定でよいが、--enable-force-vartypeで指定した型がヘッダファイルを必要とするときなどに使用する。例えば次の通り。

./configure \
  --enable-force-vartype='uint_fast32_t' \
  --enable-force-includes='<stdint.h>'

複数のヘッダファイルを指定するときは文字,で区切ること。

実行速度やフットプリントサイズを意識するなら、コンパイル時の最適化オプションを適切に指定するべきである。また、共有ライブラリ化を行わない方が関数呼び出しに要する時間が短い場合がある。必要に応じて、例えば次のように指定すること(最適化オプションはgccに対するものである)。

./configure --disable-shared CFLAGS='-O3 -NDEBUG'

クロス開発を行うときは、configureが定義する--hostおよび--buildオプションを適切に指定すること。例えばarm-linux上で動作するmt-liteをi686-pc-linux-gnu上でビルドする場合は、次のように指定する。

./configure --host=arm-linux --build=i686-pc-linux-gnu