Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install

Rust toolchain

Install Rust via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.org | sh

This installs the latest stable toolchain; Emma65 uses the 2024 edition, which requires Rust 1.85 or newer. Verify with rustc --version and cargo --version, and see the rustup book for updating an existing installation.

System libraries

The plain emma65 and emma65-tracer binaries have no system library dependencies beyond Rust itself. Building the rest of the workspace needs additional development packages: emma65-display, emma65-led-matrix, and emma65-lcd-display need the SDL2 libraries (emma65-led-matrix also needs SDL2_gfx), and emma65-debugger needs Tauri’s Linux dependencies (WebKitGTK, GTK, libayatana-appindicator, librsvg).

Ubuntu Linux

sudo apt-get update
sudo apt-get install -y \
  build-essential \
  libsdl2-dev \
  libsdl2-gfx-dev \
  libwebkit2gtk-4.1-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev

Fedora Linux

sudo dnf install -y \
  gcc gcc-c++ make \
  SDL2-devel \
  SDL2_gfx-devel \
  webkit2gtk4.1-devel \
  openssl-devel \
  libappindicator-gtk3-devel \
  librsvg2-devel

Build and install

Build the whole workspace in release mode:

cargo build --release --workspace

Or build only what you need — each crate’s system library requirement is independent of the others (see above):

cargo build --release              # emma65 + emma65-tracer only
cargo build --release -p emma65-display
cargo build --release -p emma65-led-matrix
cargo build --release -p emma65-lcd-display
cargo build --release -p emma65-debugger

Install the binaries onto your PATH (cargo install has no --workspace flag, so each workspace member is installed with its own invocation — they all land in the same place, ~/.cargo/bin by default):

cargo install --path .            # emma65, emma65-tracer
cargo install --path display      # emma65-display
cargo install --path led-matrix   # emma65-led-matrix
cargo install --path lcd-display  # emma65-lcd-display

emma65-debugger isn’t installed this way; build it as a packaged desktop app with cargo tauri build instead (see The Debugger). On Linux this produces installable packages under target/release/bundle/ — a .deb and a .rpm:

sudo apt install ./target/release/bundle/deb/emma65-debugger_*.deb    # Ubuntu
sudo dnf install ./target/release/bundle/rpm/emma65-debugger-*.rpm    # Fedora

as well as a self-contained .AppImage under target/release/bundle/appimage/ that needs no install step — chmod +x it and run it directly (or use a tool like AppImageLauncher to add it to your desktop menu).