Commit Graph

316 Commits

Author SHA1 Message Date
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 4ed3d9b6db Build: Simplify driver dependency check 2015-08-24 20:15:36 +02:00
Daniel Elstner 2d143826b0 Build: Add private copy of C++11 check macro
Place a copy of ax_cxx_compile_stdcxx_11.m4 from the Autoconf
macro archive into our private m4/ directory. This is cleaner
than trying to parse M4 file versions etc. Plus, the macro is
now always available.
2015-08-24 20:15:20 +02:00
Daniel Elstner 0ab8386a5c Build: Prefer newer versions of libftdi and SWIG 2015-08-24 20:14:57 +02:00
Daniel Elstner 26b67f1141 Build: Use commas to separate missing dependencies
Beautify the output. Also fix the PyGObject test.
2015-08-24 20:14:48 +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 1bb196e496 Build: Move package check macros to m4/sigrok.m4
Define generic macros for pkg-config dependency checks etc. in
m4/sigrok.m4, so they can be easily reused by downstream modules.
2015-08-24 20:10:18 +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 24138539c1 Build: Move custom Autoconf macros to separate file
Place custom Autoconf macros which other sigrok modules may
re-use into a separate file m4/sigrok.m4. Also, introduce new
macros for defining the package and library versions, and for
gathering compiler warning flags.
2015-08-24 20:07:01 +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 cb4d28efd1 Build: Do not omit first argument to m4_warn()
It seems that contrary to what the documentation says, leaving
the category argument to m4_warn() empty is not allowed. Use
the "unsupported" category for lack of a better choice.
2015-08-24 20:04:13 +02:00
Uwe Hermann aafcb3fe87 FreeBSD: Also check for swig3.0.
On FreeBSD (for example) the SWIG binary can also be called "swig3.0".

This fixes (together with the recent "swig2.0" addition) bug #557.
2015-08-19 15:44:43 +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 da0763d096 Build: Skip C++ CFLAGS and LIBS check when disabled
It is not a good idea to invoke PKG_CHECK_MODULES with an empty
list of modules to check, so skip the invocation in that case.
2015-08-18 18:20:50 +02:00
Daniel Elstner b8b727e45f Build: Fix typo that broke the driver enable options 2015-08-18 18:20:50 +02:00
Daniel Elstner d37c7109bf Build: Make SR_DRIVER() handle dependencies
Turn the hardware driver dependency handling on its head, by
making SR_DRIVER() take a list of dependencies to check for.
2015-08-18 18:20:50 +02:00
Daniel Elstner 7c16e74d45 Build: Make dependency on git change more robust
It can sometimes happen that .git/HEAD or .git/refs/head/*, which
are added as config.status dependencies during configure, do not
exist anymore at build time.  For instance, when the current branch
is deleted after switching to a different one.

Wrap the dependencies inside $(wildcard ...) to avoid this problem.
Note that this is a GNU make feature.  However, it should be fine
as it is only used for git builds.  Even if a non-GNU make is used,
the construct will hopefully just expand to nothing.
2015-08-18 18:20:50 +02:00
Uwe Hermann 965d68898a Build: Show glib/libzip version requirements in configure summary. 2015-08-16 23:56:43 +02:00
Uwe Hermann 2700e63d48 Build: Fix a typo causing libftdi1 detection issues. 2015-08-16 23:53:23 +02:00
Daniel Elstner 2cbde15198 Build: Properly namespace the version defines
Use the CONF_ prefix for the configured host define as well as
the various build-time version macros.
2015-08-16 18:53:32 +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 c5f179a975 Build: Simplify the hardware driver selection
Replace DRIVER() and DRIVER2() by a single SR_DRIVER() macro.
Derive the names of shell variables and preprocessor defines
programatically to cut down on repetition.
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 7f289d14ec Build: Append git revision hash to version
Append the git revision hash to the libsigrok package version,
unless HEAD exactly matches a release tag.  Note that this does
not affect the version known to autoconf -- e.g. source tarballs
created by make dist will not receive a revision suffix.

Changes to git HEAD automatically trigger a reconfiguration.
Uncommitted changes do not, which is why I left out the -dirty
suffix.
2015-08-16 18:28:13 +02:00
Daniel Elstner b9eb8e1a8c Consistently use SR_PACKAGE_VERSION instead of VERSION 2015-08-16 18:28:13 +02:00
Daniel Elstner 27a2497dc2 Build: Delay expansion of $datadir in FIRMWARE_DIR
Make it so that $(datadir) is resolved at make time, as per
autotools recommendations.  Note that $datadir is not fully
resolved at configure time to begin with, i.e. part of it
already was evaluated at make time.
2015-08-16 18:28:13 +02:00
Daniel Elstner b2478a23db Build: Make version.h a configuration header
Use the proper tool for the job and make libsigrok/version.h
a secondary configuration header, so that autoconf's AC_DEFINE
machinery can be used to generate it.  Note that the header
template is still hand-written, enabling fine control of the
content.
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
Uwe Hermann bd7b83cf63 backend: Output lib versions, host, and endianness in sr_init().
This should help to more easily debug issues reported by users.
2015-08-15 21:06:30 +02:00
Uwe Hermann 176c7219bb Only build BayLibre ACME driver if <sys/timerfd.h> is available.
This fixes bug #610 (Android build issue).
2015-07-25 19:50:36 +02:00
Uwe Hermann e6b8f35fa7 Bump version to 0.4.0 (the upcoming next major release). 2015-07-18 18:03:29 +02:00
Uwe Hermann 025f6ed862 Append "-git" to the version string.
This avoids confusion with the released tarballs.
2015-07-18 17:54:41 +02:00
Aurelien Jacobs e1ccfb1910 maynuo-m97: Initial driver skeleton. 2015-06-07 20:15:08 +02:00
Aurelien Jacobs e35e1e7bab Compile with -std=c11 along with _POSIX_C_SOURCE=200112L.
With gcc 5.1 released and defaulting to std=gnu11, the code will be compiled
according to different standards depending on the compiler version so we
should better specify explicitly what standard we are targetting.
C11 is now quite mature, it is supported in the just release Debian stable
(gcc 4.9) and also in old-stable (gcc 4.7), so there should be no reason to
use anything more ancient.
We also should have no reason to need any non-standard GNU extension.
So using only C11 + POSIX sounds like the best option right now.
2015-04-28 22:07:03 +02:00
Uwe Hermann 8d80146722 Lower libserialport requirement to 0.1.1. 2015-04-19 18:39:35 +02:00
Uwe Hermann 2d31e8bcbd configure.ac: Drop unneeded AC_CANONICAL_SYSTEM. 2015-04-08 18:50:07 +02:00
Uwe Hermann 2560941223 configure.ac: Two more fixes for the baylibre-acme detection. 2015-02-26 18:55:17 +01:00
Vladislav Ivanov f80b3fe234 configure.ac: Fix baylibre-acme OS check. 2015-02-26 11:14:55 +01:00
Bartosz Golaszewski a0b277ba67 configure.ac: Compile baylibre-acme driver for Linux only.
The driver for BayLibre ACME depends on Linux-specific sysfs
interfaces to ina226 and tmp435 devices. Exclude it for different
targets.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-02-16 01:20:07 +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
Bartosz Golaszewski 3cdff6cd2d configure.ac: Add AC_CANONICAL_SYSTEM macro.
In order to determine the target OS when cross-compiling libsigrok
we need autotools to set the 'target_os' variable. This macro
determines the system type and sets output variables to the names
of the canonical system types.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2015-02-11 16:22:56 +01:00
Daniel Elstner 1f501d72ef configure: Avoid bashism breaking the C++ bindings 2015-01-31 21:09:01 +01:00
Uwe Hermann 5801d558e7 Lower dependency to glib 2.32.
By avoiding g_slist_copy_deep() for now, we can easily allow libsigrok
to build against glib 2.32 (less hassle for users of stable/older
distros or OSes).
2015-01-29 13:55:55 +01:00
Uffe Jakobsen d5062672dd Check for librevisa >= 0.0.20130412 - the latest official release 2015-01-24 19:57:33 +01:00
Uwe Hermann 161dc24d84 cxx: Rename include/libsigrok/ to include/libsigrokcxx/. 2015-01-17 20:26:14 +01:00
Uwe Hermann 52ff4f6a04 Rename libsigrokxx to the more common libsigrokcxx. 2015-01-17 18:52:43 +01:00
Jiří Pinkava 84b448ee06 Do not check for JDK headers if Java bindings are disabled.
This removes an unnecessary build dependency on JDK and fixes
build troubles on systems where javac is present but JDK is not
installed and Java bindings are disabled by ./configure --disable-java.
2014-11-23 17:58:21 +01:00
Uwe Hermann b71356d631 bindings: Re-enable Java, but ignore create_analog_packet().
This will need some fixing.
2014-11-14 16:58:38 +01:00
Uwe Hermann 57621c6d60 configure.ac: Temporarily disable Java bindings.
Those need a bugfix to make them build again:

  bindings/java/org/sigrok/core/classes/Context.java:92: error: method Context_create_analog_packet in class classesJNI cannot be applied to given types;
        long cPtr = classesJNI.Context_create_analog_packet(swigCPtr, this, ChannelVector.getCPtr(tempchannels), SWIGTYPE_p_float.getCPtr(data_pointer), num_samples, Quantity.getCPtr(mq), mq, Unit.getCPtr(unit), unit, QuantityFlagVector.getCPtr(mqflags), mqflags);
                              ^
    required: long,Context,Vector<Channel>,long,long,long,Quantity,long,Unit,long,QuantityFlagVector
    found: long,Context,long,long,long,long,Quantity,long,Unit,long,QuantityFlagVector
    reason: actual argument long cannot be converted to Vector<Channel> by method invocation conversion
  1 error
  Makefile:3352: recipe for target 'bindings/java/sigrok-core.jar' failed
2014-11-13 18:51:33 +01:00
Uwe Hermann 3982b93840 configure.ac: Drop ols Windows exception, should be obsolete.
(see #205)
2014-10-13 16:23:48 +02:00
Janne Huttunen b50891952d Add driver for DER EE DE-5000 LCR meter.
Add a driver for the DER EE DE-5000 LCR meter. This meter is based on
the Cyrustek ES51919/ES51920 chipset and communicates with the host
computer via an optional connectivity kit.

The kit uses an optoisolated unidirectional link to connect to the
meter and an USB cable on the host side. Internally the connection is
using the FTDI FT232R USB UART chip i.e. from the host computer point
of view the meter is connected into an RS-232 serial port.

This driver implements just a thin shim layer for registering the
driver and uses the es51919 module for all the actual work.
2014-10-13 00:56:11 +02:00
Bert Vermeulen 818df9f8ec build: Require glib 2.34. 2014-10-08 23:14:01 +02:00
Martin Ling da89e23a28 Use AM_PATH_PYTHON macro to find Python binary.
A specific interpreter can now be passed to configure e.g:

./configure PYTHON=python3
2014-09-14 02:32:49 +01:00
Uwe Hermann 0d14e30ba0 configure.ac: Add and use DRIVER2() to shorten file. 2014-09-08 23:53:42 +02:00
Uwe Hermann d3619a9b63 configure.ac: Shorten per-driver lines a bit. 2014-09-08 23:53:42 +02:00
Uwe Hermann 416de3ba05 configure.ac: Don't duplicate driver name.
The AC_DEFINEs don't need any driver names really, those only end up
as code comments in config.h and are otherwise useless. Thus, don't
duplicate them, we already have the driver names in DRIVER().
2014-09-08 23:53:42 +02:00
Uwe Hermann a0ca437de3 configure.ac: Show SCPI backends that'll be compiled. 2014-09-08 22:58:14 +02:00
Uwe Hermann 62ea3ef552 configure.ac: Whitespace, cosmetics, sorting, etc. 2014-09-08 22:42:26 +02:00
Bert Vermeulen ca1a7cb56f scpi-pps: Initial driver skeleton. 2014-09-08 12:45:21 +02:00
Bert Vermeulen d6e63a2c68 build: Use pkgconfig for libgpib. 2014-09-05 18:26:12 +02:00
Martin Ling bb2a4ed407 Add GPIB SCPI backend using linux-gpib and libgpib. 2014-09-05 10:34:04 +01:00
Marcus Comstedt d92de05ad1 C++: Provide fallbacks for missing stoi/stod functions
Notably, Android does not provide these functions.  The fallback
implementation is based on the one in the GNU ISO C++ Library.
2014-08-31 13:31:35 +02:00
Soeren Apel 107639373d yokogawa-dlm: Integrate driver skeleton 2014-08-31 00:42:10 +02:00
magnuskarlsson 4bd80e1228 added pipistrello-ols
Conflicts:
	configure.ac
	src/hwdriver.c
2014-08-25 01:00:55 +02:00
Bert Vermeulen 81a69107de build: Require libserialport version 0.2.0. 2014-08-20 23:39:27 +02:00
Marcus Comstedt 3e27b177c4 configure.ac: Fix jni.h check when cross compiling
Since AX_JNI_INCLUDE_DIR does not work for cross compilation, don't
invoke it when cross compiling.  Also, add a configure option to
set the jni.h include path manually if needed.
2014-08-20 14:42:02 +02:00
Marcus Comstedt 2ba308ecc6 configure.ac: Look for python-2.7.pc as well when making bindings 2014-08-17 12:58:39 +02:00
Marcus Comstedt 33c84e8197 Makefile.am: Fix out-of-tree build for C++ and Java bindings 2014-08-17 12:58:39 +02:00
Marcus Comstedt 55e55a3f92 Fix include paths for out-of-tree builds 2014-08-17 12:58:38 +02:00
Martin Ling 3532ed0125 C++ bindings: Reimplement enums.py using doxygen XML output instead of gccxml. 2014-08-10 15:47:13 +02:00
Uwe Hermann 375340a724 configure.ac: Don't build BeagleLogic where a build would fail.
The BeagleLogic driver needs sys/mman.h and sys/ioctl.h in order to
build, so disable the driver if those headers aren't available.

This is the case (for example) on MinGW.
2014-08-05 17:32:28 +02:00
Bert Vermeulen de44e114fc build: More dependency fixes. 2014-07-23 16:33:42 +02:00
Bert Vermeulen 1029d384d1 build: If language binding dependency checks fail, summarize the reason. 2014-07-23 14:36:11 +02:00
Bert Vermeulen 0afa91b765 build: Add more dependency checks for building bindings. 2014-07-23 13:05:10 +02:00
Bert Vermeulen 57d62c4c71 build: We only need python 2.x for generating the bindings. 2014-07-23 12:45:41 +02:00
Uwe Hermann 271cdfd267 configure: Show glibmm and gobject versions in the summary. 2014-07-22 23:18:38 +02:00
Uwe Hermann 022a7fe09f configure.ac: Add versioned dependency on pygobject.
Roughly around 3.0.0 usage changed from "import gobject" to the new
"from gi.repository import GObject" etc. (which we use).
2014-07-22 23:18:38 +02:00
Bert Vermeulen 43cd463728 build: Portability fixes.
This also defers reporting on enabled drivers until it's really decided.
2014-07-22 18:17:34 +02:00
Kumar Abhishek bb99379761 beaglelogic: Initial driver skeleton. 2014-07-22 01:47:02 +02:00
Bert Vermeulen 6223feeb8e configure: Add --enable-bindings switch. 2014-07-19 20:20:47 +02:00
Martin Ling abc7146d03 Fix building Python bindings with pygobject >= 3.7.91. 2014-07-19 16:12:34 +02:00
Bert Vermeulen 762aee1e91 configure: Fix java --enable check. 2014-07-18 21:40:27 +01:00
Bert Vermeulen bcacb8633e configure: Add C++ bindings dependency checks. 2014-07-18 21:40:20 +01:00
Bert Vermeulen f8158d5655 configure: Deal with missing macro a bit better.
The AX_CXX_COMPILE_STDCXX_11 macro is found in the autoconf-archive
package. If this is not installed, invoking the macro spits out an
error message that makes it look like a syntax error. This wraps it
in a check.
2014-07-18 21:40:14 +01:00
Martin Ling 9fcf4d0b5b Add Java bindings. 2014-07-18 21:34:57 +01:00
Martin Ling f774095496 Reimplement high-level Python bindings on top of SWIG/C++ bindings. 2014-07-18 20:47:10 +01:00
Martin Ling c23c8659b8 Add C++ bindings. 2014-07-18 20:47:10 +01:00
Martin Ling 63d0fb7528 Move public headers into include/libsigrok.
This is needed so that the C++ bindings, the header for which
references "libsigrok/libsigrok.h", can have a valid include
directory passed to build them before the headers are installed.
2014-07-17 18:30:49 +01:00
Bert Vermeulen d4b3874828 autoconf: Use DRIVER macro to declare drivers. 2014-07-10 20:44:32 +02:00
Bert Vermeulen 0acdd79357 testo: Initial driver skeleton. 2014-07-05 21:56:46 +02:00
Matthias Heidbrink adeae78f90 manson-hcs-3xxx: Fixed build without libserialport. 2014-06-28 01:26:21 +02:00
Uwe Hermann 8f4e922f43 manson-hcs-3xxx: Initial driver skeleton. 2014-06-23 00:59:17 +02:00
Uwe Hermann c78bcc6f5d Lower libftdi1 requirement to 1.0 (builds fine too). 2014-06-16 13:19:34 +02:00
Dan Horák 92506359d3 detect version 1.x of libftdi library
The FDTI library changed version, module name and also soname, so add an option to detect it
when the 0.x version is not found. The 1.x API is compatible enough for libsigrok to build.
2014-06-15 11:46:57 +02:00
Mike Frysinger 82bfb646ae do not add check to common cflags/libs
Only the unittests use these flags, so don't go linking them in for
the main library too.
2014-06-15 10:46:10 +02:00
Mike Frysinger a4737997a2 add explicit configure flags for ftdi/serial/usb libraries
This makes it a lot easier for distros to control this functionality.
2014-06-15 10:38:06 +02:00
Matthias Heidbrink d0a92abd54 Whitespace and comment improvements, no semantical changes. 2014-05-19 19:44:04 +02:00
Matthias Heidbrink 41b7bd01c1 motech-lps-30x: Initial driver framework. 2014-05-19 19:23:30 +02:00