-`PREFIX`: default to `/usr/local`. It should be set to `/usr` when packaging.
-`LIBEXECDIR`: directory for auxiliary executables, default to `$PREFIX/libexec`. Arch Linux uses `/usr/lib`.
-`LINUX_STATIC_IME_PLUGIN=ON` (make phase): link to static ime plugin. Recommended for building with static version of Qt; **DO NOT** set for dynamic version of Qt.
### xmake-based Build Steps
1. Configure:
```bash
xmake f -p linux -a x86_64 -m release --qt=/usr --prefix=/usr/local
Platform can be `linux/amd64`, `linux/386`, `linux/arm64/v8`, `linux/arm/v7`, `linux/riscv64`, etc.
Image can be `docker.io/debian:12`, `docker.io/debian:11`, `docker.io/ubuntu:24.04`, `docker.io/ubuntu:23.10`, `docker.io/ubuntu:22.04`, etc.
Optional environment variables:
-`-e MIRROR=mirrors.kernel.org`: mirror for APT.
-`-e JOBS=4`: number of parallel jobs for make.
## Emulated Native Build for Foreign Architectures
It is possible to build Red Panda C++ for foreign architectures using targets’ native toolchains with QEMU user space emulation.
Note: Always run emulated native build **in containers or jails**. Mixing architectures may kill your system.
For Linux or BSD host, install statically linked QEMU user space emulator (package name is likely `qemu-user-static`) and make sure that binfmt support is enabled.
For Windows host, Docker and Podman should have QEMU user space emulation enabled. If not,
* For Docker:
```ps1
docker run --rm --privileged multiarch/qemu-user-static:register
```
* For Podman, whose virtual machine is based on Fedora WSL, simply enable binfmt support: