Commit Graph

275 Commits

Author SHA1 Message Date
Aurelien Jacobs d8f9609790 Build: avoid $< in ruby bindings rules
This fixes building with BSD make.
This closes bug #801.
2016-05-30 11:45:40 +02:00
George Hopkins 5a2c71ccd7 pce-322a: Initial driver implementation. 2016-05-18 18:28:08 +02:00
Lars-Peter Clausen dd5c48a6d5 Put driver pointers into special section
The sigrok core needs a list of all available drivers. Currently this list
is manually maintained by updating a global list whenever a driver is added
or removed.

Introduce a new special section that contains the list of all drivers. The
SR_REGISTER_DEV_DRIVER() and SR_REGISTER_DEV_DRIVER_LIST() macro is used to
add drivers to this new list. This is done by placing the pointers to the
driver into a special section. Since nothing else is in this section it is
known that it is simply a list of driver pointers and the core can iterate
over it as if it was an array.

The advantage of this approach is that the code necessary to add a driver
to the list is completely contained to the driver source and it is no
longer necessary to maintain a global list. If a driver is built it will
automatically appear in the list, if it is not built in won't. This means
that the list is always correct, whereas the previous approach used ifdefs
in the global driver list file which could get out-of-sync with the actual
condition when the driver was built.

Any sr_dev_driver structs that are no longer used outside the driver module
are marked as static.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2016-05-18 01:41:55 +02:00
Marvin Schmidt b571f84c84 build: Replace AX_CXX_COMPILE_STDCXX_11 with latest AX_CXX_COMPILE_STDCXX
The former appended the necessary switch to enable C++11 to the CXXFLAGS
whereas AX_CXX_COMPILE_STDCXX appends it to CXX which has the benefit
that all C++ sources are compiled using the same C++ standard. Therefore
it is no longer necessary to manually hardcode '-std=c++11' anywhere
like we did in the Ruby bindings linker command and assures that the
compilation of them is done with C++11 support as well.

This fixes bug #795
2016-05-14 00:36:43 +02:00
Marvin Schmidt c4a1015a29 build: Fix distribution of Ruby bindings
The bindings file was not listed in EXTRA_DIST and therefore not
distributed. We also need to provide an target to uninstall the Ruby
bindings and add it to UNINSTALL_EXTRA in order to make `make distcheck`
happy.

This fixes bug #741
2016-05-14 00:32:37 +02:00
Aurelien Jacobs 17165513f3 ruby: Fix out-of-tree build of the bindings.
This closes bug #797.
2016-05-12 23:08:21 +02:00
Lars-Peter Clausen aea4e45848 Add helper functions for software limits
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2016-05-09 12:12:14 +02:00
Uwe Hermann f227338297 Rename 'ft2232h' driver to 'ftdi-la'.
The driver already supports more than just the FT2232H chip.
2016-04-02 18:36:52 +02:00
Sergey Alirzaev 4f7fdcdd74 ft2232h: Add support for FTDI FT2232H/FT232R chip as LA.
This closes bug #780.
2016-03-30 13:36:02 +02:00
Alexandru Gagniuc 00b2a092c3 hp-3457a: Initial driver skeleton. 2016-03-30 12:32:55 +02:00
Chriter 6c6bc80a99 hantek-6xxx: Initial driver skeleton. 2016-03-09 19:20:13 +01:00
Uwe Hermann 6e8d31d468 arachnid-labs-re-load-pro: Initial driver skeleton. 2016-02-08 15:02:29 +01:00
Aurelien Jacobs e922790220 configure: replace buggy AX_RUBY_EXT by a proper implementation
This actually allows to get the proper DLEXT expected by Ruby on
the target system.
2016-01-28 22:48:44 +01:00
Aurelien Jacobs 27d44cf6e0 Implement Ruby bindings on top of SWIG/C++ bindings. 2016-01-28 19:03:52 +01:00
Aurelien Jacobs 0441038e2f Makefile: use PYSIGROK_FLAGS only for building python bindings 2016-01-11 16:25:35 +01:00
Soeren Apel 6d2897e394 Add the Lauterbach Trace32 logic analyzer data import module 2015-12-21 16:32:49 +01:00
Stefan Brüns e6b15cb5e6 input/raw_analog: Add input module for raw analog signals 2015-12-21 15:56:31 +01:00
Tilman Sauerbeck c7b17bcba3 lecroy-logicstudio: Initial driver implementation.
This supports both 8 and 16 channel modes with samplerates up to
500 MHz. Voltage thresholds are currently fixed at 1.58V.
2015-12-04 10:35:04 +01:00
Uwe Hermann 16fc7ee29f korad-kdxxxxp: Rename driver to korad-kaxxxxp.
This matches the supported / supportable devices better.
2015-11-27 00:54:07 +01:00
Daniel Elstner be64f90b53 sysclk-lwla: Implement support for LWLA1016
Refactor the sysclk-lwla driver to separate the generic logic from
the model-specific implementation. Based on this, implement support
for the SysClk LWLA1016 device.
2015-11-26 21:44:31 +01:00
Matthieu Gaillet eed3dec849 Add dtm0660 15-byte DMM protocol parser. 2015-11-15 23:54:37 +01:00
Daniel Elstner 45ec8f7756 build: Delete generated files on make clean 2015-11-08 11:51:17 +01:00
Daniel Elstner 7252a09e8f build: Enable uninstall of Java bindings
This is needed for make distcheck to work.
2015-11-07 22:20:19 +01:00
Daniel Elstner 9448951db5 build: Skip Python bindings during distcheck
setup.py attempts to relink the bindings at installation time,
which breaks distcheck. Thus, disable the Python bindings during
distcheck for now.
2015-11-07 22:13:14 +01:00
Daniel Elstner 0a9d05dc7c build: Distribute missing files 2015-11-07 22:00:25 +01:00
Daniel Elstner 37829c15b5 build: Make ChangeLog generation distcheck-safe 2015-11-07 21:51:40 +01:00
jry 3ba56876b4 asix-sigma: Split into api.c and protocol.[ch] modules. 2015-11-05 21:26:39 +01:00
Daniel Elstner 5dd538ded0 build: Set CXXFLAGS when building Python module
Set both CFLAGS and CXXFLAGS when executing setup.py to build
the Python bindings. Newer versions of distutils/setuptools have
apparently started to pick up the latter when compiling C++.
2015-11-02 14:30:24 +01:00
Daniel Elstner 8ebf1469a9 build: Use common SWIG defines for Python and Java
Make the Python and Java bindings use the same set of preprocessor
macros for the SWIG parsing stage, taken from a make variable. Add
G_GNUC_{BEGIN,END}_IGNORE_DEPRECATIONS to that set.
2015-10-30 12:51:16 +01:00
Uwe Hermann 8e0f9bf782 Makefile.am: Avoid non-portable -t option for $(INSTALL).
The 'install' tool doesn't have a -t option on all platforms
(e.g. Mac OS X or FreeBSD).
2015-10-29 23:59:12 +01:00
Martin Ling 36e3f6a9ce Makefile.am: Make SWIG wrappers also depend on new templates.i file. 2015-10-26 07:17:01 +01:00
Martin Ling df979d6dc6 python: Give all enum values __doc__ strings. 2015-10-26 07:17:01 +01:00
Daniel Elstner 564d009e88 Java: Remove obsolete SourceCallback interface 2015-10-26 07:11:20 +01:00
Daniel Elstner 4c9208a799 SWIG: Hack around SWIG segfault on private destructors
Apparently this problem has been fixed in SWIG 3.0.6. However,
until we can require that version, define "private" as "protected"
when running the SWIG parser.
2015-10-26 06:45:56 +01:00
Daniel Elstner c6e18e007a SWIG: Define "noexcept" empty to work around SWIG bug
The SWIG 2.0.12 on my system bails out with a syntax error on the
"noexcept" keyword in C++11 code. Define "noexcept" to nothing (for
the SWIG parser only) to work around this problem.
2015-10-26 06:45:56 +01:00
Uwe Hermann 6b71bf1ba0 Add a few unit tests for the analog conversion functions. 2015-10-21 00:29:29 +02:00
Hannu Vuolasaho e75ee7de25 korad-kdxxxxp: Initial driver skeleton. 2015-10-13 23:15:33 +02:00
Daniel Elstner 655b116cc1 build: Do not define FIRMWARE_DIR on Windows
The hard-coded location is bound to be wrong anyway. Instead, rely
on the new resource lookup code to find the firmware files in a
location relative to the library or executable.
2015-10-03 14:08:32 +02:00
Daniel Elstner bee246665b resource: New internal API for accessing resource files
The resource API provides a generic means for accessing resources
that are bundled with sigrok, such as device firmware files. Since
the manner of resource bundling is platform-dependent, users of
libsigrok may override the functions used to open, close and read
a resource. The default implementation accesses resources as files
located in one of the XDG data directories or a directory defined
at compile time.
2015-10-01 15:44:55 +02:00
Martin Lederhilger 7c198f968b gwinstek-gds-800: Initial driver skeleton. 2015-09-30 19:22:27 +02:00
Uwe Hermann 3182d4ebb3 Makefile.am: Shorten ChangeLog target a bit. 2015-09-14 17:54:48 +02:00
Daniel Elstner 56c8705e37 Build: Move _POSIX_C_SOURCE definition to config.h
Do not redefine it though when already set, so that it can be
overridden by the user, or indirectly by the compiler settings.
2015-09-13 18:54:46 +02:00
Daniel Elstner bcc3694ff7 Build: Use GNUMAKEFLAGS for --no-print-directory 2015-09-10 19:35:17 +02:00
Daniel Glöckner 05ac4a9828 hung-chang-dso-2100: Initial driver skeleton. 2015-09-10 14:42:12 +02:00
Uwe Hermann ba3070ff34 Makefile.am: Use @ORDER@ instead of |.
This is set to | (or left empty) by SR_PROG_MAKE_ORDER_ONLY for
portability reasons, since not all Make implementations support
order-only prerequisites.
2015-09-09 15:20:10 +02:00
Martin Ling fd31865ef4 Don't rebuild Python or Java bindings unless C++ interface changes. 2015-09-09 11:19:05 +02:00
Daniel Elstner 3841c4c58d Build: Use SR_PROG_MAKE_NO_PRINT_DIRECTORY 2015-09-07 23:54:00 +02:00
Daniel Elstner 452986bec4 Build: Fix installation of Python bindings
Apparently setup.py install behaves differently when given
the --root option, so omit that if DESTDIR is empty.

Fixes #644.
2015-09-02 14:07:06 +02:00
Daniel Elstner c05a0ba528 Build: Pass compiler flags from make to setup.py
Extend setup.py to allow environment variables to be set on the
command line. Use that functionality to replace the pkg-config
invocations with flags passed on from make. Suppress the annoying
-Wstrict-prototypes warning by overriding the OPT variable.

Also move the "cd bindings/python" from Makefile.am to setup.py
to side-step problems with "cd" in make rules.

This also fixes bug #628.
2015-08-29 17:08:34 +02:00
Daniel Elstner 5b869e978a Build: Go back to _POSIX_C_SOURCE=200112L 2015-08-28 18:35:16 +02:00
Uwe Hermann 9380ec2f05 kern-scale: Initial driver skeleton. 2015-08-28 11:43:04 +02:00
Uwe Hermann e5d953b559 Add a protocol parser for KERN scales.
(KERN & SOHN GmbH, http://www.kern-sohn.com/)
2015-08-28 11:43:04 +02:00
Daniel Elstner 68799618f6 Build: Define feature test macro _DEFAULT_SOURCE
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.
2015-08-26 13:55:53 +02:00
Daniel Elstner 65489c1ada Build: Use TESTS prefix instead of CHECK for flag variables
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.
2015-08-26 13:13:39 +02:00
Bert Vermeulen 91ef511db2 scpi: Make helper functions from scpi-pps available library-wide. 2015-08-25 19:13:17 +02:00
Daniel Elstner e662d9e8e5 Build: Limit system features to C99 and POSIX
Use -std=c99 to try and enforce standard compliance.
2015-08-25 12:58:39 +02:00
Daniel Elstner ba1c29dc22 Build: Reduce unnecessary config substitutions
Variable substitutions with a constant value may as well be
set directly in Makefile.am.
2015-08-24 22:20:30 +02:00
Daniel Elstner bc8ff24de6 Build: Leave LIBS alone during configure
Put the extra libraries into SR_EXTRA_LIBS instead of LIBS.
Create an SR_CHECK_LIBS macro to make that easy. Substitute
SR_EXTRA_LIBS into libsigrok.pc, too.
2015-08-24 22:19:05 +02:00
Daniel Elstner b84a733105 Build: Check for accepted compiler flags
Introduce the SR_CHECK_COMPILE_FLAGS macro and use it to check
for additional compiler flags. Put the accepted flags into the
separate substitution variable SR_EXTRA_CFLAGS.

With this and the preceding changes, bug #578 should now be fixed.
2015-08-24 20:12:47 +02:00
Daniel Elstner 4cf2f34f43 Build: Make compiler warnings configurable
Use the SR_ARG_ENABLE_WARNINGS macro to configure and check for
the availability of compiler warning flags. Maintain separate
sets of warning flags for C and C++.

The configure option --enable-warnings=[min|max|fatal|no] can
be used to set the compiler warning level for all languages.
The default level is "max".
2015-08-24 20:08:24 +02:00
Daniel Elstner ea1d535145 Build: Place Autoconf macros into m4/ directory
This separates the M4 macros from the other cruft in autostuff/
to prepare for the introduction of custom macro files.
2015-08-24 20:04:29 +02:00
Daniel Elstner a9cb82ace2 Build: Get rid of recursive make invocations
Do not invoke $(MAKE) just to execute some clean rule.
This gets rid of the "jobserver unavailable" warnings.
2015-08-18 21:30:54 +02:00
Daniel Elstner 90420ef6bc Build: Tell setup.py where to find SWIG 2015-08-18 20:14:14 +02:00
Uwe Hermann 3f03ffaf2f FreeBSD: Also check for swig2.0 in addition to swig.
On FreeBSD (for example) the SWIG binary is called "swig2.0".

This fixes bug #557.
2015-08-18 18:28:30 +02:00
Daniel Elstner dbde3b6513 Build: Avoid $< in explicit rules
Although useful, makes other than GNU make do not like this.
Name the prerequisite explicitly instead, and circumvent any
VPATH substitution other makes may do.
2015-08-18 18:20:50 +02:00
Daniel Elstner 1f61c22ff5 Build: Cleanup up and modernize autotools setup
Note that some --enable options of configure have become
--with or --without options.
2015-08-16 18:28:13 +02:00
Daniel Elstner 5a3e34285d setup.py: Do VPATH search for swig/enums.i
Also, in swig/classes.i include swig/enums.i rather than plain
enums.i, to guard against future name clashes.
2015-08-16 18:28:13 +02:00
Daniel Elstner cf5b338e07 Build: Depend on swig/enums.i where appropriate 2015-08-16 18:28:13 +02:00
Daniel Elstner 122322a9ba Build: Do not distribute generated headers
version.h and enums.hpp are generated at build time and should
not be included in the distribution tarball.  This seems to have
triggered a weird error when doing a VPATH build of the dist
tarball.
2015-08-16 18:28:13 +02:00
Daniel Elstner 9ac018d0fc Build: Pass nostdinc option to automake
It seems automake automatically adds the directory containing
the generated version.h to the include path.  Use nostdinc to
disable default includes altogether.
2015-08-16 18:28:13 +02:00
Daniel Elstner 31ac7735ea Build: Distribute bindings sources
A couple of files referenced during the build were missing from
the distribution, causing a tarball build failure.
2015-08-16 18:28:13 +02:00
Daniel Elstner c1aae90038 Build: Set local include directories in Makefile.am
Move the include flags for files in the source tree from
configure.ac to Makefile.am where they belong.  Also use
AM_CPPFLAGS instead of CFLAGS/CXXFLAGS to make sure the
files in the build/source tree are always picked up first.

Also, remove the include/libsigrok sub-directory from the
search path, thereby making the <libsigrok/> prefix mandatory
when building libsigrok itself.  This matches the convention
already imposed on users of the library.
2015-08-16 18:28:12 +02:00
Jiří Pinkava df705a7af7 Java: install files into DESTDIR
This fixes bug #537.
2015-06-13 17:28:51 +02:00
Uwe Hermann f54ebe0c06 modbus: Minor typos, cosmetics and consistency fixes. 2015-06-07 20:40:32 +02:00
Aurelien Jacobs e1ccfb1910 maynuo-m97: Initial driver skeleton. 2015-06-07 20:15:08 +02:00
Aurelien Jacobs 4c938fc27f modbus: add a serial RTU backend. 2015-05-12 13:22:34 +02:00
Aurelien Jacobs daa3901205 Add a modbus communication helper module. 2015-05-12 13:22:34 +02:00
Uwe Hermann fc8f82e965 cxx: Makefile.am: Use libtool's -no-undefined option. 2015-04-07 02:29:09 +02:00
Martin Ling ff101fca12 windows: Fix building shared library on MinGW. 2015-04-07 02:27:59 +02:00
Uwe Hermann c36f78f772 Add initial Voltcraft VC-870 support.
There are a few details that have yet to be implemented or
reverse engineered and tested.
2015-03-20 21:27:04 +01:00
Bert Vermeulen b9d530920f fx2lafw: Basic acquisition support for DSLogic. 2015-03-19 18:25:55 +01:00
Bert Vermeulen a7d7f93c1b fx2lafw: scan/firmware support for DSLogic. 2015-03-19 18:25:55 +01:00
Martin Ling f3cde30904 ut372: Initial sub-driver skeleton. 2015-03-01 22:30:57 +00:00
Uwe Hermann 02a2bf688f unit tests: Drop unneeded check_ filename prefix. 2015-02-17 15:24:28 +01:00
Bartosz Golaszewski 289eebd7ca baylibre-acme: Add Linux-specific GPIO helpers.
These functions allow to export, read and set GPIOs using Linux
sysfs interface.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-02-16 01:20:08 +01:00
Bartosz Golaszewski dfaee1de17 baylibre-acme: Initial driver skeleton.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-02-16 01:20:07 +01:00
Uwe Hermann 8677e4e7be transform: Add a few basic unit tests. 2015-02-11 15:24:38 +01:00
Uwe Hermann d74d30bb14 transform: Add an "invert" transform module.
This inverts the data values:

 - An analog value of x becomes 1/x.

 - A digital value of 0 becomes 1 (and vice versa).
2015-02-11 15:24:34 +01:00
Uwe Hermann 43caa46623 transform: Add a "scale" transform module. 2015-02-11 15:24:30 +01:00
Uwe Hermann 39f1752eff transform: Add a "nop" transform module.
This doesn't do anything, just passes input packets on unmodified.
2015-02-11 12:23:02 +01:00
Uwe Hermann 988357ca2f transform: Add a basic set of API calls. 2015-02-11 12:23:02 +01:00
Uffe Jakobsen b595a45876 Fix problem building with BSD make
This fixes bug #556:

Bug 556 - libsigrok fails to build with BSD Make
2015-02-10 15:14:08 +01:00
Uwe Hermann d378f10099 Makefile.am: Add NEED_SERIAL condition. 2015-01-31 22:42:32 +01:00
Uwe Hermann 2182e77511 Makefile.am: Unconditionally build src/lcr/es51919.c.
We do the same with DMM parsers currently, and this change also
fixes an issue in sigrok-util's 'new-driver' script.

This fixes bug #545.
2015-01-31 22:29:07 +01:00
Uwe Hermann 0959ed3d02 Install libsigrokcxx headers in separate directory.
Don't mix libsigrokcxx header files into the $prefix/include/libsigrok
directory. Use a separate $prefix/include/libsigrokcxx instead.
2015-01-17 21:31:56 +01:00
Uwe Hermann 161dc24d84 cxx: Rename include/libsigrok/ to include/libsigrokcxx/. 2015-01-17 20:26:14 +01:00
Uwe Hermann 1b40fdb881 Rename libsigrok.hpp to libsigrokcxx.hpp.
This avoids confusion of libsigrok.h vs. libsigrok.hpp and makes it
clearer that this is the main libsigrokcxx header.
2015-01-17 20:15:38 +01:00
Uwe Hermann 52ff4f6a04 Rename libsigrokxx to the more common libsigrokcxx. 2015-01-17 18:52:43 +01:00
Uwe Hermann f3256bb706 Makefile.am: Use $(MKDIR_P) everywhere. 2015-01-12 01:19:12 +01:00
Jiří Pinkava 6ae5362589 Python bindings: respect DESTDIR.
Thanks Aurelien Jacobs <aurel@gnuage.org> for a suggested
fix/improvement.
2015-01-09 16:17:36 +01:00