-------------------------------------------------------------------------------
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).

sigrok-cli is a command-line tool written in C, which uses both libsigrok
and libsigrokdecode to provide the basic sigrok functionality from the
command-line. Among other things, it's useful for scripting purposes.


Status
------

sigrok-cli is in a usable state and has had official tarball releases.


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

 - git (only needed when building from git)
 - gcc or clang
 - make
 - autoconf >= 2.63 (only needed when building from git)
 - automake >= 1.11 (only needed when building from git)
 - libtool (only needed when building from git)
 - pkg-config >= 0.22
 - libglib >= 2.32.0
 - libsigrok >= 0.5.0
 - libsigrokdecode >= 0.6.0


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

In order to get the sigrok-cli source code and build it, run:

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

For installing sigrok-cli:

 $ make install

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

 http://sigrok.org/wiki/Building


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

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

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 program 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/Sigrok-cli

