1// -*- mode:doc; -*-
2// vim: set syntax=asciidoc:
3
4[[requirement]]
5== System requirements
6
7Buildroot is designed to run on Linux systems.
8
9While Buildroot itself will build most host packages it needs for the
10compilation, certain standard Linux utilities are expected to be
11already installed on the host system. Below you will find an overview of
12the mandatory and optional packages (note that package names may vary
13between distributions).
14
15[[requirement-mandatory]]
16
17=== Mandatory packages
18
19* Build tools:
20
21** +which+
22** +sed+
23** +make+ (version 3.81 or any later)
24** +binutils+
25** +build-essential+ (only for Debian based systems)
26** +diffutils+
27** +gcc+ (version 4.8 or any later)
28** `g++` (version 4.8 or any later)
29** +bash+
30** +patch+
31** +gzip+
32** +bzip2+
33** +perl+ (version 5.8.7 or any later)
34** +tar+
35** +cpio+
36** +unzip+
37** +rsync+
38** +file+ (must be in +/usr/bin/file+)
39** +bc+
40** +findutils+
41
42* Source fetching tools:
43** +wget+
44
45[[requirement-optional]]
46
47=== Optional packages
48
49* Recommended dependencies:
50+
51Some features or utilities in Buildroot, like the legal-info, or the
52graph generation tools, have additional dependencies. Although they
53are not mandatory for a simple build, they are still highly recommended:
54+
55** +python+ (version 2.7 or any later)
56
57* Configuration interface dependencies:
58+
59For these libraries, you need to install both runtime and development
60data, which in many distributions are packaged separately. The
61development packages typically have a _-dev_ or _-devel_ suffix.
62+
63** +ncurses5+ to use the 'menuconfig' interface
64** +qt5+ to use the 'xconfig' interface
65** +glib2+, +gtk2+ and +glade2+ to use the 'gconfig' interface
66
67* Source fetching tools:
68+
69In the official tree, most of the package sources are retrieved using
70+wget+ from _ftp_, _http_ or _https_ locations. A few packages are only
71available through a version control system. Moreover, Buildroot is
72capable of downloading sources via other tools, like +git+ or +scp+
73(refer to xref:download-infra[] for more details). If you enable
74packages using any of these methods, you will need to install the
75corresponding tool on the host system:
76+
77** +bazaar+
78** +cvs+
79** +git+
80** +mercurial+
81** +scp+
82** +sftp+
83** +subversion+
84
85* Java-related packages, if the Java Classpath needs to be built for
86  the target system:
87** The +javac+ compiler
88** The +jar+ tool
89
90* Documentation generation tools:
91** +asciidoc+, version 8.6.3 or higher
92** +w3m+
93** +python+ with the +argparse+ module (automatically present in 2.7+ and 3.2+)
94** +dblatex+ (required for the pdf manual only)
95
96* Graph generation tools:
97** +graphviz+ to use 'graph-depends' and '<pkg>-graph-depends'
98** +python-matplotlib+ to use 'graph-build'
99
100* Package statistics tools ('pkg-stats'):
101** +python-aiohttp+
102