2014年6月21日土曜日

Emscripten-1.20.0/fastcomp on Ubuntu-14.04 の環境準備の仕方

以前、2014年4月に書いた時はEmscripten-1.16.0でした。現在最新のEmscripten-1.20.0でもほぼ同様なものの少しだけ違うところもあるので改めて整理しておきます。

[ Ubuntu-14.04にLLVM-3.3-devほかを導入 ]

  1. `apt install llvm-3.3-dev`
  2. `apt install nodejs`
  • 任意オプション(使いたければどうぞ)
    • `apt install cmake`
    • `apt install ninja-build`
[ Emscripten-fastcomp をビルド ]
  1. `git clone git@github.com:kripken/emscripten-fastcomp.git`
    • すでに clone 済みなら pull
  2. `cd emscripten-fastcomp`
  3. `git tag`
    • タグでリリースバージョンを確認(執筆時点の最新版は1.20.0です)。
  4. `git checkout 1.20.0`
  5. `cd tools`
  6. `git clone git@github.com:kripken/emscripten-fastcomp-clang.git clang`
    • すでに clone 済みなら pull
    • このリポジトリーのディレクトリー名は clang である必要があります、注意。
  7. `cd clang`
  8. `git tag`
    • タグでリリースバージョンを確認(執筆時点の最新版は1.20.0です)。
  9. `git checkout 1.20.0`
  10. `cd ../../`
    • emscripten-fastcompリポジトリーのルートに戻ります。
  11. `mkdir build`
  12. `cd build`
  13. `cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;JSBackend" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DCLANG_INCLUDE_EXAMPLES=OFF -DCLANG_INCLUDE_TESTS=OFF`
    • ninja を使わずに make を使いたい場合は -G Ninja しなければ make になります。
    • cmake を使わずに ../configure を使うこともできます。
      • `../configure --enable-optimized --disable-assertions --enable-targets=host,js`
  14. `ninja`
    • または make
[ Emscripten を用意 ]
  1. `git clone git@github.com:kripken/emscripten.git`
    • Emscripten-fastcompとは別です。
    • すでに clone 済みなら pull
  2. `cd emscripten`
  3. `git tag`
    • タグでリリースバージョンを確認(執筆時点の最新版は1.20.0です)。
  4. `git checkout 1.20.0`
  5. em++ 、 emcc など直接叩くフロントエンドコマンドを実行可能なパスにシンボリックリンクしておく。(わたしは ~/opt/bin がこの手の定番の置き場所になっています。)
    • `cd ~/opt/bin` `ln -s ~/repos/emscripten/em++` などします。
  6. `em++ --version`
    • `emcc`でもよいので、一度実行すると "~/.emscripten" が生成されます。
  7. `vim ~/.emscripten`
    • 例示はvimですがエディターはお好みでどうぞ。
    1. LLVM_ROOT を先にビルドした Emscripten-fastcomp の build/bin に設定する。  LLVM_ROOT = '/...dokoka.../emscripten-fastcomp/build/bin'
  8. `emcc --version` などして確認。問題があれば報告してくれます。
[ 番外編: Emscripten-fastcomp を使わない方法 (わたしは非推奨とします) ]
  • 適当な行に LLVM_ADD_VERSION = '3.3' を追記。
    • Ubuntuでは llvm-3.3 パッケージではバージョン番号なし版へのシンボリックリンクが自動生成されないため必要となります。
  • `EMCC_FAST_COMPILER=0 em++`のようにしてfastcompを無効化してemscriptenを使えます。常時これで使う場合はalias無いし環境変数にセットしておくと良いと思います。

参考

0 件のコメント:

コメントを投稿