Skip to content

Building from Source

Jeremy Fielder edited this page Mar 19, 2026 · 1 revision

Building from Source

Dependencies

Arch Linux

sudo pacman -S qt6-base qt6-multimedia cmake ninja pkgconf
# Optional: fftw (for NR2 spectral noise reduction)
sudo pacman -S fftw

Ubuntu / Debian

sudo apt install qt6-base-dev qt6-multimedia-dev cmake ninja-build pkg-config
# Optional
sudo apt install libfftw3-dev
# For audio (if building outside AppImage)
sudo apt install gstreamer1.0-pulseaudio gstreamer1.0-pipewire

Fedora

sudo dnf install qt6-qtbase-devel qt6-qtmultimedia-devel cmake ninja-build
sudo dnf install fftw-devel  # optional

macOS (Homebrew)

brew install qt@6 ninja portaudio pkgconf cmake fftw

Build

git clone https://github.com/ten9876/AetherSDR.git
cd AetherSDR
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j$(nproc)
./build/AetherSDR

Build Options

Option Default Description
HAVE_FFTW3 Auto-detected NR2 spectral noise reduction (requires libfftw3)
HAVE_PORTAUDIO Auto-detected PortAudio fallback audio backend
CMAKE_BUILD_TYPE RelWithDebInfo Use Release for optimized, Debug for development

Install (optional)

sudo cmake --install build

Installs binary to /usr/bin/AetherSDR, desktop entry, and icon.

Development

The project uses C++20 and Qt6. Key source directories:

  • src/core/ — Protocol, audio, network
  • src/models/ — Radio, slice, meter, transmit models
  • src/gui/ — All widgets and applets

See CLAUDE.md for full architecture documentation.

Clone this wiki locally