1# Build: QNX
2
3Requires QNX SDP to build, with `QNX_TARGET` and `QNX_HOST` environment variables set. Make sure the latest meson is installed.
4
5Build scripts are made available to show how to cross-compile gfxstream and its aemu dependencies. See `./qnx/nto/build-aemu.sh` and `./qnx/nto/build-gfxstream.sh`
6
7    cd ./qnx
8    make
9
10Make will navigate to `./qnx/nto/aarch64le` and run the build scripts from there.
11
12The aemu dependency is downloaded to, and built in `./qnx/nto/aarch64le/aemu`.
13
14Gfxstream's build directory is `./qnx/nto/aarch64le/gfxstream`.
15
16    cd ./qnx
17    make install
18
19The install target requires the `INSTALL_ROOT_nto` environment variable, which sets the qnx staging/install path.
20
21pinfo.mk writes build info into the binary:
22
23    # use -i ./nto/aarch64le/gfxstream/host/libgfxstream_backend.so
24    QNX_BUILDID=(GNU)5dc1327b962ed2a7e992c1f6f35c0df3
25    NAME=libgfxstream_backend.so
26    DESCRIPTION=virtio-gpu backend renderer
27    DATE=2023/09/18-10:58:49-EDT
28    COMMIT=7b8c19e51845aee014684c43e6aa8409e919af6a
29
30A "recursive make" directory layout is used to allow multiplatform builds. For more info, see: [Conventions for Recursive Makefiles and Directories](https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.prog/topic/make_convent.html)
31