トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

今更MinGW 2009.06(5) nasm,yasm

今更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.bz2yasm-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秒