-------------------------------------------------------------------------------
README
-------------------------------------------------------------------------------

The sigrok project aims at creating a portable, cross-platform,
Free/Libre/Open-Source signal analysis software suite that supports various
device types (such as logic analyzers, oscilloscopes, multimeters, and more).

libsigrokdecode is a shared library written in C which provides the basic
API for running sigrok protocol decoders. The protocol decoders themselves
are written in Python.


Status
------

libsigrokdecode is in a usable state and has had official tarball releases.

While the API can change from release to release, this will always be
properly documented and reflected in the package version number and
in the shared library / libtool / .so-file version numbers.

However, there are _NO_ guarantees at all for stable APIs in git snapshots!
Distro packagers should only use released tarballs (no git snapshots).


Requirements
------------

 - git
 - gcc (>= 4.0)
 - make
 - autoconf >= 2.63
 - automake >= 1.11
 - libtool
 - pkg-config >= 0.22
 - libglib >= 2.24.0
 - Python >= 3.2
 - check >= 0.9.4 (optional, only needed to run unit tests)


Building and installing
-----------------------

In order to get the libsigrokdecode source code and build it, run:

 $ git clone git://sigrok.org/libsigrokdecode
 $ cd libsigrokdecode
 $ ./autogen.sh
 $ ./configure
 $ make

For installing libsigrokdecode:

 $ make install

See INSTALL or the following wiki page for more (OS-specific) instructions:

 http://sigrok.org/wiki/Building


Copyright and license
---------------------

libsigrokdecode is licensed under the terms of the GNU General Public License
(GPL), version 3 or later.

The protocol decoders (PDs) included in libsigrokdecode are an integral part
of the shared library (they are not merely external "plugins", they are not
external programs that libsigrokdecode calls via fork/exec, they cannot
function standalone without libsigrokdecode at all, the PDs and the rest of
the libsigrokdecode codebase share data structures and make function calls
to each other). Thus, since the PDs are part of the library, they are also
licensed under the terms of the GPLv3+.

While some individual source code files are licensed under the GPLv2+, and
some files are licensed under the GPLv3+, this doesn't change the fact that
the library as a whole is licensed under the terms of the GPLv3+.

Please see the individual source files for the full list of copyright holders.


Mailing list
------------

 https://lists.sourceforge.net/lists/listinfo/sigrok-devel


IRC
---

You can find the sigrok developers in the #sigrok IRC channel on Freenode.


Website
-------

 http://sigrok.org/wiki/Libsigrokdecode

