今更MinGW 2009.06(5) nasm,yasm
アセンブラのnasmとyasmをビルドしインストールする。
nasmとyasmはどちらもx86のSIMD命令(MMX,SSE,SSE2等)に対応したアセンブラで、殆どのケースでこれらの命令を利用した高速化のために使用される。一昔前にはnasmがこの用途での一人勝ち状態であったが、一時期更新が滞り、新規命令に対応しなかったことから、リプレースとしてyasmが登場した。その後nasmの更新は再開したが、yasmに移行してしまったプロジェクトも多いため、用途は同じソフトウェアではあるが、両方インストールしておくのが間違いない。また、yasmはx86-64に対応している。
導入
これらは公式サイトにバイナリが用意されているのでそれらをインストールしても良いのだが、猫科研究所ではMinGW公式以外のものはソースで得るようにしているので、ここではビルドする。また、ビルド手順が標準的であることから、MinGW/MSYSでのビルドを学ぶに絶好の題材だ。公式のバイナリがMinGW向けに行われているかも不明なので、ソースからビルドしてみるとよい。
nasmの公式サイトとyasmの公式サイトからそれぞれ最新のソースを取得してこよう。猫研パックa003ではnasm-2.05.01.tar.bz2とyasm-0.8.0.tar.gzを使用しているが、好みで最新のものでも構わない。ここではソースアーカイブを/src以下に展開したものとして解説する。
まずはnasmから。
pushd /src/nasm-2.05.01 ./configure --prefix=/mingw make make strip make install cp /mingw/bin/nasm.exe /mingw/bin/nasmw.exe popd
configureの--prefixは、make installで完成した.exeや.dll、.a等をインストールする先のディレクトリを指定している。
通常make stripは不要(大抵はmake時に同時に行う)だが、nasmの場合は明示する必要があり、これを行わないとバイナリが大きくなる。stripとは、シンボル情報の削除を意味しており、makeを通さずに使用するstripというコマンドそのものもあるので覚えておくと良い。
最後の.exeのコピーは、希にWindows環境ではnasmではなくnasmw.exeを使用するようMakefileに記述しているソフトウェアがあるため、その対策をしている。MSYSからのみnasmを使用するならシェルスクリプトで代用しても良い。
次にyasm。
pushd yasm-0.8.0 ./configure --prefix=/mingw make make install-strip popd
make install-stripはstripしたバイナリをインストールするという意味だろう。
最終更新時間:2009年06月25日 03時13分01秒