input: decorate sr_input_find() parameter as const
[libsigrok.git] / README
1 -------------------------------------------------------------------------------
2 README
3 -------------------------------------------------------------------------------
4
5 The sigrok project aims at creating a portable, cross-platform,
6 Free/Libre/Open-Source signal analysis software suite that supports various
7 device types (such as logic analyzers, oscilloscopes, multimeters, and more).
8
9 libsigrok is a shared library written in C which provides the basic API
10 for talking to hardware and reading/writing the acquired data into various
11 input/output file formats.
12
13
14 Status
15 ------
16
17 libsigrok is in a usable state and has had official tarball releases.
18
19 While the API can change from release to release, this will always be
20 properly documented and reflected in the package version number and
21 in the shared library / libtool / .so-file version numbers.
22
23 However, there are _NO_ guarantees at all for stable APIs in git snapshots!
24 Distro packagers should only use released tarballs (no git snapshots).
25
26
27 Requirements
28 ------------
29
30 Requirements for the C library:
31
32  - git (only needed when building from git)
33  - gcc (>= 4.0) or clang
34  - make
35  - autoconf >= 2.63 (only needed when building from git)
36  - automake >= 1.11 (only needed when building from git)
37  - libtool (only needed when building from git)
38  - pkg-config >= 0.22
39  - libglib >= 2.32.0
40  - zlib (optional, used for CRC32 calculation in STF input)
41  - libzip >= 0.10
42  - libtirpc (optional, used by VXI, fallback when glibc >= 2.26)
43  - libserialport >= 0.1.1 (optional, used by some drivers)
44  - librevisa >= 0.0.20130412 (optional, used by some drivers)
45  - libusb-1.0 >= 1.0.16 (optional, used by some drivers)
46  - hidapi >= 0.8.0 (optional, used for some HID based "serial cables")
47  - bluez/libbluetooth >= 4.0 (optional, used for Bluetooth/BLE communication)
48  - libftdi1 >= 1.0 (optional, used by some drivers)
49  - libgpib (optional, used by some drivers)
50  - libieee1284 (optional, used by some drivers)
51  - libgio >= 2.32.0 (optional, used by some drivers)
52  - check >= 0.9.4 (optional, only needed to run unit tests)
53  - doxygen (optional, only needed for the C API docs)
54  - graphviz (optional, only needed for the C API docs)
55
56 Requirements for the C++ bindings:
57
58  - libsigrok >= 0.4.0 (the libsigrok C library, see above)
59  - A C++ compiler with C++11 support (-std=c++11 option), e.g.
60    - g++ (>= 4.8.1)
61    - clang++ (>= 3.3)
62  - autoconf-archive (only needed when building from git)
63  - doxygen (required for building the bindings, not only for C++ API docs!)
64  - graphviz (optional, only needed for the C++ API docs)
65  - Python (2 or 3) executable (development files are not needed)
66  - glibmm-2.4 (>= 2.32.0)
67
68 Requirements for the Python bindings:
69
70  - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above)
71  - Python >= 2.7 or Python >= 3 (including development files!)
72  - Python setuptools (for Python 2 or 3)
73  - pygobject >= 3.0.0 (for Python 2 or 3), a.k.a python-gi
74  - numpy (for Python 2 or 3)
75  - SWIG >= 2.0.0
76  - doxygen (optional, only needed for the Python API docs)
77  - graphviz (optional, only needed for the Python API docs)
78  - doxypy (optional, only needed for the Python API docs)
79
80 Requirements for the Ruby bindings:
81
82  - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above)
83  - Ruby >= 2.5.0 (including development files!)
84  - SWIG >= 3.0.8
85  - YARD (optional, only needed for the Ruby API docs)
86
87 Requirements for the Java bindings:
88
89  - libsigrokcxx >= 0.4.0 (the libsigrok C++ bindings, see above)
90  - SWIG >= 2.0.0
91  - Java JDK (for JNI includes and the javac/jar binaries)
92  - doxygen (optional, only needed for the Java API docs)
93  - graphviz (optional, only needed for the Java API docs)
94
95
96 Building and installing
97 -----------------------
98
99 In order to get the libsigrok source code and build it, run:
100
101  $ git clone git://sigrok.org/libsigrok
102  $ cd libsigrok
103  $ ./autogen.sh
104  $ ./configure
105  $ make
106
107 For installing libsigrok:
108
109  $ make install
110
111 See INSTALL or the following wiki page for more (OS-specific) instructions:
112
113  http://sigrok.org/wiki/Building
114
115 Please also check the following wiki page in case you encounter any issues:
116
117  http://sigrok.org/wiki/Building#FAQ
118
119
120 Device-specific issues
121 ----------------------
122
123 Please check README.devices for some notes and hints about device- or
124 driver-specific issues to be aware of.
125
126
127 Firmware
128 --------
129
130 Some devices supported by libsigrok need a firmware to be uploaded before the
131 device can be used. See README.devices for details.
132
133
134 Copyright and license
135 ---------------------
136
137 libsigrok is licensed under the terms of the GNU General Public License
138 (GPL), version 3 or later.
139
140 While some individual source code files are licensed under the GPLv2+, and
141 some files are licensed under the GPLv3+, this doesn't change the fact that
142 the library as a whole is licensed under the terms of the GPLv3+.
143
144 Please see the individual source files for the full list of copyright holders.
145
146
147 Mailing list
148 ------------
149
150  https://lists.sourceforge.net/lists/listinfo/sigrok-devel
151
152
153 IRC
154 ---
155
156 You can find the sigrok developers in the #sigrok IRC channel on Libera.Chat.
157
158
159 Website
160 -------
161
162  http://sigrok.org/wiki/Libsigrok
163