Age | Commit message (Collapse) | Author |
|
The IRMP core library is not thread safe (known limitation, heritage of
the AVR firmware origin). Add a mutex so that calling applications can
lock IR decoder core instances. Allow Python threading while waiting for
the locks, we can safely assume that this IRMP wrapper is used in the
sigrok context which does require Python for decoders. Add my copyright
for the non-trivial changes.
This implementation uses glib for locking to improve portability, which
already is a dependency of the libsigrokdecode component. This version
uses belt and suspenders by implementing a constructor as well as adding
auto init calls to each of the public API code paths. The client ID is
not an essential requirement, but useful during application maintenance.
|
|
Add the irmp/ subdirectory to the automake build instructions. Make the
feature optional, provide an enable/disable switch (on by default).
It's an essential implementation detail that the irmp.c file is required
to build, but is not a compile unit of its own. It's yet to be seen how
to most appropriately declare the dependencies of libirmp_la (can get
refined in future commits).
Create a separate shared object from the IRMP source, which shall result
in a stable filename for the DLL/.so lookup. Decoder library code would
not know the application's executable name, neither is anonymous symbol
lookup "in the current process" portable across supported platforms.
The configure.ac macros were modelled after the autobook DLL section.
https://www.sourceware.org/autobook/autobook/autobook_137.html
Symbol export is simple because the library gets implemented and built
here, but is not used from C language code in this project. That's why
we don't do the full dance of symbol import which would be needed on
Windows.
|
|
All decoders must be of PD API version 3 now.
|
|
Remove the FSF postal address as it might change (it did in the past).
Reference the gnu.org website instead which is more stable.
|
|
This simplifies cross-platform handling of the Python/decoder paths
and module installation/dist a bit and also fixes bug #804.
|
|
|
|
Avoid confusion resulting from using the same macro name for
different purposes.
|
|
|
|
|
|
Do not redefine it though when already set, so that it can be
overridden by the user, or indirectly by the compiler settings.
|
|
Also output the compiler version in the configuration summary.
|
|
|
|
|
|
This basically makes glibc expose the same set of features as
if gcc was invoked without any restricting -std=c* option. Unlike
_GNU_SOURCE however, it does not enable GNU-specific extensions.
So, with this macro defined the behavior of Linux with glibc
should match that of other platforms.
|
|
In order to avoid confusion of the flags-gathering pkg-config
result with the actual test for the availability of "check",
change the pkg-config output variable prefix from CHECK to TESTS.
|
|
|
|
|
|
|
|
|
|
Drop them from the libsigrokdecode repository.
|
|
CFLAGS, CPPFLAGS, LDFLAGS and so on are so-called "user variables" and
are meant for users of the package to use/override. The package itself
should not set or modify them in any way. Instead, the "shadow variables"
such as AM_CFLAGS, AM_CPPFLAGS, AM_LDFLAGS and so on, can be modified by
the package.
|
|
The build of runtc caused issues with make -j as runtc
was attempted to be linked with libsigrokdecode before
libsigrokdecode was linked. Using LDADD to insert
libsigrokdecode ensures that it links before runtc,
ensuring the build completes correctly.
|
|
|
|
Sometimes the Python 3 executable is called just 'python3', sometimes
it is called 'python3.4' and so on. Handle all cases transparently for
the user.
Before:
$ make install
/usr/bin/env: python3: No such file or directory
After:
$ make install
python3.4 ./tools/install-decoders -i ./decoders -o [...]
Installing 36 protocol decoders:
[...]
|
|
(fewer files, less clutter)
|
|
This fixes 'make install' and 'make dist' for out-of-tree builds.
|
|
This only compiles libsigrok into the one target that needs it, instead
of slopping it all over the place.
|
|
This adds a tool in the tests directory, called pdtest. It uses the
"test/" directory in every PD directory, if present, to run the
PD against dumps found in the sigrok-dumps repository, and compares
the output against ".output" files in the "test/" directory. The file
"test/test.conf" is used to configure which tests to run.
A separate tool (tests/runtc.c) is used to run the actual decoding and
report output.
To get an overview of the options, run tests/pdtest without any options.
|
|
|
|
Fixes bug 215.
|
|
This automatically figures out the files to install for each protocol
decoder, without involving autotools.
All python files (filenames ending in .py) are always installed. If a
protocol decoder requires installation of a non-python file, a small
file called 'config' can be created in that protocol decoder's
directory, with the following content:
# comments are ok
extra-install vendorlist.txt commands.txt
|
|
|
|
|
|
|
|
|
|
|
|
This uses the Check unit testing framework, just like libsigrok.
For now, only a few very basic unit tests are included.
Invocation:
make check
|
|
|
|
This matches the convention used in libsigrok. Potential other headers
might end up in libsigrokdecode/, but only libsigrokdecode.h is meant
to be #included by frontends directly.
|
|
|
|
This is used in the generated Doxygen HTML output.
|
|
|
|
If the (generated) ChangeLog file is marked for DISTCLEANFILES, it'll be
removed whenever "make distclean" is called (and is then gone forever if
you use the tarballs, for example).
|
|
|
|
|
|
|
|
No need to use the LIBSIGROKDECODE_ prefix here when we use SRD_ everywhere
else. Also, better distinction between package version and lib version.
|
|
|
|
|
|
|