ソースからの Emscripten のビルド

Emscripten を自分でビルドすることは、emsdk を使用してバイナリを取得する代替手段です。

Emscripten 自体は Python と JavaScript で記述されているため、コンパイルする必要はありません。ただし、チェックアウト後、使用できるようになる前にさまざまな手順を実行する必要があります (例: npm install)。リポジトリの最上位にある bootstrap スクリプトはこれらの手順の実行を処理し、emccbootstrap を実行する必要があることを検出するとエラーになります。

メインの emscripten リポジトリに加えて、LLVM と Binaryen もチェックアウトしてビルドする必要があります (下記参照)。これらをコンパイルしたら、対応する場所を指すように .emscripten ファイルを編集する必要があります。

これらの各リポジトリの main ブランチを使用するか、Packaging の手順を確認して、特定のリリースで使用されている正確なコミットを特定してください。

LLVM のビルド

git リポジトリから LLVM をビルドします。clang と wasm-ld (例: -DLLVM_ENABLE_PROJECTS='lld;clang') と Wasm バックエンド (デフォルトで含まれています。無効にしないでください) を含め、そのプロジェクトの手順に従います。たとえば、このようなもので動作します。

mkdir build
cd build/
cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS='lld;clang' -DLLVM_TARGETS_TO_BUILD="host;WebAssembly" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF  # -DLLVM_ENABLE_ASSERTIONS=ON
cmake --build .

次に、環境変数 EM_LLVM_ROOT<llvm_src>/build/bin に設定します (インストールする必要はありません)。

LLVM の emsdk リリースに合わせる必要がある場合は、emscripten-release のビルドおよびテストスクリプトを確認してください。具体的には src/build.py

詳細については、アップストリームドキュメントを参照してください。

Binaryen のビルド

Binaryen のビルド手順を参照してください。