TL;TD;
MDNのガイダンスに従え。
ただCPU資源食いつぶされるから、寝る前にコンパイルして起きたらコンパイル済んでるが理想
解説
emscriptenとはLLVM(低級仮想マシン)を使ってコンパイル言語であるC/C++をJavaScriptに変換できるコンパイラ(GoだろうがRustだろうが変換してくれるはず)。
Webでは低級なものを扱える仕組むとしてWebAssemblyが提案されホットな話題になりつつある。
事前準備
Ubuntuだとgit、cmake、既存のコンパイラ(gcc/clang)、2.7以上のpythonは普通に入っているはずなので事前準備はいらない。
もし無い場合は
$ apt install git cmake gcc clang python
$ apt update
$ apt upgrade
とうてばいい。apt-get
しか使えない古いバージョンでもこれで要件は満たせるはず。
ソースコードの入手とコンパイル
書いてあるとおりgitからソースをクローンしてその中にある./emsdk
を色々叩くだけ。
ディレクトリ位置はどこでもいいが/use/local
に入れるか、もしくはユーザー領域に明示的に作りたい場合は$HOME/local
を作っていれるのがわかりやすいと思う。
ガイダンスにあるとおり./emsdk install
はかなりの時間を要する。
これはコンパイルを含んでいるためと思われる。手元のCore i5マシン(コア数2/スレッド数4)だとコンパイルが3プロセス走ったのでコンパイル中、マシンがかなり遅く使い物にならなくなったので注意が必要である。
Hello world
ガイダンスどおり
問題点
コンパイルすると長いと思ってパッケージを探すとある
$ apt search emscripten
emscripten/bionic 1.22.1-1build1 amd64
LLVM-to-JavaScript Compiler
emscripten-doc/bionic,bionic 1.22.1-1build1 all
LLVM-to-JavaScript Compiler
r-cran-v8/bionic 1.5-1 amd64
Embedded JavaScript Engine for R
ただこれはバージョンが古くガイダンスのサンプルですら動かない。
原因をググると英語でなんでそんな古いの入れてるのアップデートしろとのやり取りがあったのでパッケージのものを使うのはお薦めしない。
まとめ
emscriptenをインストールするにはフルコンパイルが入るので時間がかかる(マシンパワーも食う)。
デフォルトでパッケージ配布されているものはバージョンが古く使い物にならない。
...誰か最新版配布しないかな