Building the XRT Software Stack

Building the XRT Installation Package

Installing Building Dependencies

XRT requires C++14 compiler and a few development libraries bundled with modern Linux distribution. Please install the necessary tools and dependencies using the provided xrtdeps.sh.

sudo <XRT>/src/runtime_src/tools/scripts/xrtdeps.sh

The xrtdeps.sh script installs the standard distribution packages for the tools and libraries XRT depends on. If any system libraries XRT depends on (for example Boost libraries) are updated to non standard versions, then XRT must be rebuilt.

On RHEL7.x/CentOS7.x use devtoolset to switch to C++14 devlopment environment. This step is not applicable to Ubuntu, which already has C++14 capable GCC.

scl enable devtoolset-9 bash

XRT includes source code for ERT firmware. It needs to be compiled with the MicroBlaze GCC compiler, which is available in Xilinx Vitis™ Software Platform. To generate a complete XRT package, please install Vitis™ Software Platform and setup XILINX_VITIS environment variable. If XILINX_VITIS is not available in the build system, the building and packaging steps for ERT will be skipped. On the deployment system, XRT will try to find the ERT firmware in /lib/firmware/xilinx directory. If it’s not available, errors will be reported.

Building the XRT Runtime

cd build
./build.sh

build.sh script builds for both Debug and Release profiles.

On RHEL/CentOS, if build.sh was accidentally run prior to enabling the devtoolset, then it is necessary to clean stale files makefiles by running build.sh clean prior to the next build.

Please check ERT firmware is built properly at build/Release/opt/xilinx/xrt/share/fw/sched*.bin.

Packaging RPM on RHEL/CentOS or DEB on Ubuntu

The package is automatically built for the Release version but not for the Debug version:

cd build/Release
make package
cd ../Debug
make package

Building the XRT Documentation

XRT Documentation can be built automatically using Sphinx doc builder together with Linux kernel based kernel-doc utility.

To compile and install the documentation into the doc directory at the top of the repository:

cd build
./build.sh docs
# To browse the generated local documentation with a web browser:
xdg-open Release/runtime_src/doc/html/index.html