====== 1.3 Emscripten SDK ======
Emscripten è un compilatore che compila C/C++ in WebAssembly (WASM).
----
===== Cos'è Emscripten? =====
**Emscripten** traduce:
* Codice C/C++ → WebAssembly
* API di sistema → Equivalenti JavaScript
* OpenGL → WebGL
**Perché ci serve Emscripten?**
Per il build WASM di OpenSSL che funziona in Blazor WebAssembly.
----
===== Prerequisiti =====
* ☑ [[.:wsl-einrichten|WSL2 installato]]
* ☑ Git disponibile
----
===== Installazione in WSL =====
==== Passo 1: Aprire WSL ====
wsl
==== Passo 2: Clonare Emscripten SDK ====
# Nella directory opt (a livello di sistema)
cd /opt
# Clonare come root
sudo git clone https://github.com/emscripten-core/emsdk.git
sudo chown -R $USER:$USER /opt/emsdk
==== Passo 3: Installare l'ultima versione ====
cd /opt/emsdk
# Installare l'ultima versione stabile
./emsdk install latest
# Attivare
./emsdk activate latest
==== Passo 4: Impostare le variabili d'ambiente ====
**Temporaneo (solo questa sessione):**
source /opt/emsdk/emsdk_env.sh
**Permanente (in .bashrc):**
echo 'source /opt/emsdk/emsdk_env.sh' >> ~/.bashrc
----
===== Verifica =====
# Compilatore Emscripten
emcc --version
Output atteso:
emcc (Emscripten gcc/clang-like replacement) 3.1.xx
----
===== Per il Build OpenSSL =====
Per il build WASM di OpenSSL vengono utilizzati questi strumenti Emscripten:
| Strumento | Utilizzo |
|-----------|----------|
| ''emcc'' | Compilatore C (sostituisce gcc) |
| ''emar'' | Archiver (sostituisce ar) |
| ''emranlib'' | Ranlib (sostituisce ranlib) |
| ''emconfigure'' | Wrapper per ./Configure |
| ''emmake'' | Wrapper per make |
----
===== Continua con =====
* [[.:build:wasm-blazor|Build WASM/Blazor]]
* [[.:vorbereitung:start|Torna alla preparazione]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//