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.
|
|
This provides some future-proofing against newer Python versions.
|
|
|
|
|
|
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.
|
|
This is inspired by the autobook sections on Windows DLL builds.
https://www.sourceware.org/autobook/autobook/autobook_137.html
The AC_C_CONST macro improves support for the C language 'const'
decoration in case the compiler does not understand it.
|
|
This fixes bug #1438.
|
|
|
|
Add the -Wshadow -Wformat=2 -Wno-format-nonliteral -Wfloat-equal
compiler options (supported by both gcc and clang) to get notified
of more potential issues in the code.
|
|
As this uses g_slist_copy_deep(), we now require glib 2.34.
|
|
Make sure the PKG_PROG_PKG_CONFIG macro has become available before it
gets used. This unbreaks configuration in the poky environment (rocko).
|
|
This is needed so that WORDS_BIGENDIAN is defined on big-endian
systems, which is needed by version.c .
|
|
0.6.0 will be the next major release. Bump now, so that
there is no confusion of tarball 0.5.0 and 0.6.0-git snapshots.
|
|
The last release (0.4.0) had the libtool version (current:revision:age)
set to 3:0:0. Since this release removes and changes interfaces, the
new version is 4:0:0.
http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
This changes the library filename (e.g. on Linux) from
libsigrokdecode.so.3.0.0 to libsigrokdecode.so.4.0.0, the SONAME
(+symlink) becomes libsigrokdecode.so.4.
|
|
|
|
|
|
|
|
|
|
0.5.0 will be the next major, API-changing release. Bump now, so that
there is no confusion of tarball 0.4.0 and 0.5.0-git snapshots.
|
|
The last release (0.3.0) had the libtool version (current:revision:age)
set to 2:0:0. Since this release removes and changes interfaces, the new
version is 3:0:0.
http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
This changes the library filename (e.g. on Linux) from
libsigrokdecode.so.2.0.0 to libsigrokdecode.so.3.0.0, the SONAME
(+symlink) becomes libsigrokdecode.so.3.
|
|
This fixes bug #739.
|
|
This is needed for e.g. g_slist_free_full(), which incidentally
has been in use for a while already.
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
This avoids confusion with the released tarballs.
|
|
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.
|
|
Only the unittests use these flags, so don't go linking them in for
the main library too.
|
|
The == operator is not in POSIX.
|
|
The current libsigrokdecode build passes the python
CPPFLAGS and LDFLAGS directly into libsigrokdecode.pc.in.
This leads to issues while cross-compiling as while using
PKG_CONFIG_SYSROOT_DIR, there is a chance of the prefix
being duplicated. We now, while detecting the installation
of python (cross or normal), add a dependency for the
module name in the pkgconfig file (from configure.ac).
|
|
|
|
The libtool current:revision:age numbers change from 1:0:0 to 2:0:0.
Details:
http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info
This changes the library filename (e.g. on Linux) from
libsigrokdecode.so.1.0.0 to libsigrokdecode.so.2.0.0, the SONAME (+symlink)
becomes libsigrokdecode.so.2.
|
|
|
|
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)
|
|
Also, drop printing of the detected Python CPPFLAGS/LDFLAGS, not really
needed since it's available in 'make V=1' output as well (and we don't print
it for other libs either).
|
|
We use some functions specific to 3.1, but every distribution appears
to be at 3.2.x already anyway.
|
|
|
|
Drop checks where we don't use the result (yet). We might bring back
some of those once we start actually using the result in the code.
|
|
We just use dummy/fake python3.pc files on Windows so that the usual
pkg-config mechanism works there as well.
|
|
Even when using pkg-config not all distro/platform specific issues are
transparent, unfortunately. On some systems the pkg-config file is
named "python3.pc" on others it's versioned, e.g. "python-3.2.pc".
See also: http://sigrok.org/wiki/Libsigrokdecode/Python
This should fix the build on e.g. FreeBSD, NetBSD, Mac OS X (some
versions), and possibly various Linux distros, e.g. Gentoo.
Also, drop manual AC_MSG_ERROR() and let PKG_CHECK_MODULES() output a
more verbose and standardized error message if Python 3 is not found.
|
|
The python3-config script reported "-lm" as linker option previously,
but we switched to using pkg-config (among other things for
cross-compile support) which doesn't report "-lm" though (this is a
common behaviour across multiple distros and OSes).
|
|
Using python-config does not work when cross-compiling, since it
can only be run on the host system.
|