To build on Ubuntu 24.04 or similar Debian-based systems, install the required build dependencies first:
sudo apt install build-essential pkg-config meson ninja-build gettext intltool libfontconfig1-dev libass-dev libboost-chrono-dev libboost-locale-dev libboost-regex-dev libboost-system-dev libboost-thread-dev zlib1g-dev wx3.2-headers libwxgtk3.2-dev icu-devtools libicu-dev libpulse-dev libasound2-dev libopenal-dev libffms2-dev libfftw3-dev libhunspell-dev libuchardet-dev libcurl4-gnutls-dev libgl1-mesa-dev libgtest-dev libgmock-dev libportal-gtk3-dev
Standard Build:
meson setup build --prefix=/usr/local --buildtype=release --strip -Dsystem_luajit=false -Ddefault_library=static
meson compile -C build
meson install -C build --skip-subprojects luajit
Packaging for Distribution:
If you are creating a package for a Linux distribution, use the following workflow to ensure LuaJIT is correctly handled (Aegisub requires LuaJIT with Lua 5.2 compatibility enabled):
meson subprojects download luajit
meson subprojects packagefiles --apply luajit
meson setup builddir --wrap-mode=nodownload --prefix=/usr --buildtype=release -Dsystem_luajit=false -Ddefault_library=static -Dtests=false
meson compile -C builddir
meson install -C builddir --skip-subprojects luajit
Packaging Constraints:
- LTO: Aegisub cannot be built with Link Time Optimization (LTO).
- LuaJIT: Requires Lua 5.2 compatibility. It is recommended to use the Meson subproject to statically link a compatible version.
- libstdc++: Requires version 6.0.32 or later.
- Wayland: To work directly on Wayland (instead of Xwayland), wxWidgets must be built with EGL enabled. Aegisub will fall back to X11 if EGL is missing.