# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0

# Keep sorted.
autoconf
bison
build-essential
clang-format
curl
doxygen
flex
g++
git
libelf1
libelf-dev
libftdi1-2
libftdi1-dev
libssl-dev
libusb-1.0-0
make
ninja-build
pkgconf
python3
python3-pip
python3-setuptools
python3-wheel
# The pip-installed version does not come with LibYAML support by default,
# which significantly speeds up the parsing/dumping of YAML files in fusesoc.
python3-yaml
srecord
tree
xsltproc
zlib1g-dev
