## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
-ACLOCAL_AMFLAGS = -I autostuff
+ACLOCAL_AMFLAGS = -I m4
+AM_LIBTOOLFLAGS = --silent
+GNUMAKEFLAGS = --no-print-directory
+
+FIRMWARE_DIR = $(datadir)/sigrok-firmware
local_includes = -Iinclude -I$(srcdir)/include -I$(srcdir)/src -I.
if BINDINGS_CXX
-local_includes += -Ibindings/cxx/include -I${srcdir}/bindings/cxx/include -Ibindings/cxx
+local_includes += -Ibindings/cxx/include -I$(srcdir)/bindings/cxx/include -Ibindings/cxx
+endif
+# Do not hard-code the firmware location on Windows.
+if WIN32
+global_defs =
+else
+global_defs = -DFIRMWARE_DIR='"$(FIRMWARE_DIR)"'
endif
# Ensure that local include directories are always searched first.
-AM_CPPFLAGS = $(local_includes) -DFIRMWARE_DIR='"$(FIRMWARE_DIR)"'
+AM_CPPFLAGS = $(local_includes) $(global_defs)
-# The check CFLAGS are a superset of the libsigrok CFLAGS, and the
+# The tests CFLAGS are a superset of the libsigrok CFLAGS, and the
# python bindings CFLAGS are a superset of the C++ bindings CFLAGS.
-AM_CFLAGS = $(CHECK_CFLAGS)
-AM_CXXFLAGS = $(PYSIGROK_CFLAGS)
+AM_CFLAGS = $(SR_EXTRA_CFLAGS) $(SR_WFLAGS) $(TESTS_CFLAGS)
+AM_CXXFLAGS = $(SR_WXXFLAGS) $(PYSIGROK_CFLAGS)
lib_LTLIBRARIES = libsigrok.la
src/soft-trigger.c \
src/analog.c \
src/fallback.c \
+ src/resource.c \
src/strutil.c \
src/log.c \
src/version.c \
# SCPI support
libsigrok_la_SOURCES += \
src/scpi/scpi.c \
+ src/scpi/helpers.c \
src/scpi/scpi_tcp.c
if NEED_RPC
libsigrok_la_SOURCES += \
src/lcr/es51919.c
endif
+# Hardware (Scale protocol parsers)
+libsigrok_la_SOURCES += \
+ src/scale/kern.c
+
# Hardware drivers
if HW_AGILENT_DMM
libsigrok_la_SOURCES += \
src/hardware/gmc-mh-1x-2x/protocol.c \
src/hardware/gmc-mh-1x-2x/api.c
endif
+if HW_GWINSTEK_GDS_800
+libsigrok_la_SOURCES += \
+ src/hardware/gwinstek-gds-800/protocol.h \
+ src/hardware/gwinstek-gds-800/protocol.c \
+ src/hardware/gwinstek-gds-800/api.c
+endif
if HW_HAMEG_HMO
libsigrok_la_SOURCES += \
src/hardware/hameg-hmo/protocol.h \
src/hardware/hantek-dso/dso.c \
src/hardware/hantek-dso/api.c
endif
+if HW_HUNG_CHANG_DSO_2100
+libsigrok_la_SOURCES += \
+ src/hardware/hung-chang-dso-2100/protocol.h \
+ src/hardware/hung-chang-dso-2100/protocol.c \
+ src/hardware/hung-chang-dso-2100/api.c
+endif
if HW_IKALOGIC_SCANALOGIC2
libsigrok_la_SOURCES += \
src/hardware/ikalogic-scanalogic2/protocol.h \
src/hardware/kecheng-kc-330b/protocol.c \
src/hardware/kecheng-kc-330b/api.c
endif
+if HW_KERN_SCALE
+libsigrok_la_SOURCES += \
+ src/hardware/kern-scale/protocol.h \
+ src/hardware/kern-scale/protocol.c \
+ src/hardware/kern-scale/api.c
+endif
+if HW_KORAD_KDXXXXP
+libsigrok_la_SOURCES += \
+ src/hardware/korad-kdxxxxp/protocol.h \
+ src/hardware/korad-kdxxxxp/protocol.c \
+ src/hardware/korad-kdxxxxp/api.c
+endif
if HW_LASCAR_EL_USB
libsigrok_la_SOURCES += \
src/hardware/lascar-el-usb/protocol.h \
src/hardware/zeroplus-logic-cube/api.c
endif
-libsigrok_la_LIBADD = $(LIBSIGROK_LIBS)
+libsigrok_la_LIBADD = $(SR_EXTRA_LIBS) $(LIBSIGROK_LIBS)
libsigrok_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined
library_includedir = $(includedir)/libsigrok
contrib/z60_libsigrok.rules
if HAVE_CHECK
-
TESTS = tests/main
-
check_PROGRAMS = ${TESTS}
+endif
tests_main_SOURCES = \
include/libsigrok/libsigrok.h \
tests/version.c \
tests/driver_all.c \
tests/device.c \
- tests/trigger.c
+ tests/trigger.c \
+ tests/analog.c
-tests_main_LDADD = libsigrok.la $(CHECK_LIBS)
-
-endif
+tests_main_LDADD = libsigrok.la $(SR_EXTRA_LIBS) $(TESTS_LIBS)
BUILD_EXTRA =
INSTALL_EXTRA =
bindings_cxx_libsigrokcxx_la_SOURCES = bindings/cxx/classes.cpp
-bindings_cxx_libsigrokcxx_la_LIBADD = libsigrok.la $(LIBSIGROKCXX_LIBS)
+bindings_cxx_libsigrokcxx_la_LIBADD = libsigrok.la $(SR_EXTRA_LIBS) $(LIBSIGROKCXX_LIBS)
bindings_cxx_libsigrokcxx_la_LDFLAGS = -version-info $(SR_LIB_VERSION) -no-undefined
bindings_cxx_libsigrokcxx_la_includedir = $(includedir)/libsigrokcxx
PDIR = bindings/python
PDOC = bindings/python/sigrok/core/doc.i
-$(PDOC): bindings/swig/doc.py $(CPPXMLDOC)
+setup_vars = VERSION='$(PACKAGE_VERSION)' CC='$(CXX)' CFLAGS='$(AM_CXXFLAGS) $(CXXFLAGS)' LDADD='$(PYSIGROK_LIBS)'
+setup_quiet = --quiet
+setup_py = $(PYTHON) $(srcdir)/$(PDIR)/setup.py $(setup_vars) $(setup_quiet)
+
+$(PDOC): $(srcdir)/bindings/swig/doc.py $(CPPXMLDOC)
$(AM_V_at)test -d $(PDIR)/sigrok/core || $(MKDIR_P) $(PDIR)/sigrok/core
- $(AM_V_GEN)$(PYTHON) $< python $(CPPXMLDOC) > $@
+ $(AM_V_GEN)$(PYTHON) $(srcdir)/bindings/swig/doc.py python $(CPPXMLDOC) > $@
python-build: $(PDIR)/timestamp
-python-quietclean:
- $(AM_V_at)cd $(PDIR) && $(PYTHON) $(abs_srcdir)/$(PDIR)/setup.py --quiet clean --all 3>&1 1>&2 2>&3 \
- | grep -v "can.t clean it"; true
-
-$(PDIR)/timestamp: bindings/cxx/libsigrokcxx.la $(PDIR)/sigrok/core/classes.i \
+$(PDIR)/timestamp: $(PDIR)/sigrok/core/classes.i \
bindings/swig/classes.i bindings/swig/enums.i $(PDOC) \
- $(library_include_HEADERS) $(nodist_library_include_HEADERS)
- $(AM_V_at)$(MAKE) python-quietclean
- $(AM_V_GEN)cd $(PDIR) && $(PYTHON) $(abs_srcdir)/$(PDIR)/setup.py --quiet build 3>&1 1>&2 2>&3 \
- | grep -v "command line option.*Wstrict-prototypes"; true
- $(AM_V_at)touch $(PDIR)/timestamp
-
-$(DESTDIR)$(prefix):
- $(MKDIR_P) $@
-
-python-install: $(DESTDIR)$(prefix)
- cd $(PDIR) && $(PYTHON) $(abs_srcdir)/$(PDIR)/setup.py --quiet install --prefix $(prefix) `test "$(DESTDIR)" && echo --root=$(DESTDIR)`
+ $(library_include_HEADERS) $(nodist_library_include_HEADERS) \
+ $(bindings_cxx_libsigrokcxx_la_include_HEADERS) \
+ $(nodist_bindings_cxx_libsigrokcxx_la_include_HEADERS) \
+ @ORDER@ bindings/cxx/libsigrokcxx.la
+ $(AM_V_at)$(setup_py) clean --all 2>/dev/null
+ $(AM_V_GEN)$(setup_py) build_ext --swig "$(SWIG)" build_py
+ $(AM_V_at): >$@
+
+python-install:
+ $(AM_V_at)$(MKDIR_P) "$(DESTDIR)$(prefix)" "$(DESTDIR)$(exec_prefix)"
+ destdir='$(DESTDIR)'; $(setup_py) install $${destdir:+"--root=$$destdir"} \
+ --prefix "$(prefix)" --exec-prefix "$(exec_prefix)"
python-clean:
- $(AM_V_at)$(MAKE) python-quietclean
- $(AM_V_at)rm -f $(PDIR)/timestamp
- $(AM_V_at)rm -rf $(PDIR)/doxy/
+ -$(AM_V_at)rm -f $(PDIR)/timestamp
+ -$(AM_V_at)rm -fr $(PDIR)/doxy
+ -$(AM_V_at)$(setup_py) clean --all 2>/dev/null
python-doc:
- $(AM_V_at)cd $(srcdir)/$(PDIR) && BUILDDIR=$(abs_builddir)/$(PDIR)/ doxygen Doxyfile 2>/dev/null
+ $(AM_V_at)cd $(srcdir)/$(PDIR) && BUILDDIR="$(abs_builddir)/$(PDIR)/" doxygen Doxyfile 2>/dev/null
BUILD_EXTRA += python-build
INSTALL_EXTRA += python-install
JLIB = $(JDIR)/libsigrok_java_core_classes.so
JJAR = $(JDIR)/sigrok-core.jar
+java_cleanfiles = $(JCXX) $(JCLS)/*.java $(JCLS)/*.class $(JINT)/*.class $(JJAR) $(JLIB)
+
java-build: $(JJAR) $(JLIB)
-$(JDOC): bindings/swig/doc.py $(CPPXMLDOC)
+$(JDOC): $(srcdir)/bindings/swig/doc.py $(CPPXMLDOC)
$(AM_V_at)test -d $(JCLS) || $(MKDIR_P) $(JCLS)
- $(AM_V_GEN)python $< java $(CPPXMLDOC) > $@
+ $(AM_V_GEN)$(PYTHON) $(srcdir)/bindings/swig/doc.py java $(CPPXMLDOC) > $@
-$(JCXX): $(JSWG) $(JDOC) bindings/swig/classes.i bindings/swig/enums.i \
- $(library_include_HEADERS) $(nodist_library_include_HEADERS)
- $(AM_V_at)make java-clean
- $(AM_V_GEN)swig -c++ -java -package org.sigrok.core.classes \
- -Ibindings -I$(JCLS) $(local_includes) -I$(srcdir) $(JNI_CPPFLAGS) -outdir $(JCLS) -o $@ $<
+$(JCXX): $(srcdir)/$(JSWG) $(JDOC) bindings/swig/classes.i bindings/swig/enums.i \
+ $(bindings_cxx_libsigrokcxx_la_include_HEADERS) \
+ $(nodist_bindings_cxx_libsigrokcxx_la_include_HEADERS)
+ -$(AM_V_at)rm -f $(java_cleanfiles)
+ $(AM_V_GEN)$(SWIG) -c++ -java -package org.sigrok.core.classes \
+ -Ibindings -I$(JCLS) $(local_includes) -I$(srcdir) $(JNI_CPPFLAGS) \
+ -outdir $(JCLS) -o $@ $(srcdir)/$(JSWG)
$(JJAR): $(JCXX)
$(AM_V_GEN)$(JAVAC) -d $(JDIR) $(JSRC)
$(AM_V_at)jar cf $(JJAR) -C $(JDIR) $(JPKG)
-$(JLIB): $(JCXX) bindings/cxx/libsigrokcxx.la $(library_include_HEADERS) $(nodist_library_include_HEADERS)
+$(JLIB): $(JCXX) \
+ $(library_include_HEADERS) $(nodist_library_include_HEADERS) \
+ $(bindings_cxx_libsigrokcxx_la_include_HEADERS) \
+ $(nodist_bindings_cxx_libsigrokcxx_la_include_HEADERS) \
+ @ORDER@ bindings/cxx/libsigrokcxx.la
$(AM_V_GEN)$(CXXCOMPILE) $(JNI_CPPFLAGS) -L.libs -Lbindings/cxx/.libs \
-fno-strict-aliasing -fPIC -shared $(JCLS)/classes_wrap.cxx \
-lsigrokcxx $(LIBSIGROKCXX_LIBS) -o $(JLIB)
$(INSTALL) $(JJAR) -t $(DESTDIR)$(datadir)/java
java-clean:
- $(AM_V_at)rm -f $(JCXX)
- $(AM_V_at)rm -f $(JCLS)/*.java
- $(AM_V_at)rm -f $(JCLS)/*.class
- $(AM_V_at)rm -f $(JINT)/*.class
- $(AM_V_at)rm -f $(JJAR)
- $(AM_V_at)rm -f $(JLIB)
- $(AM_V_at)rm -rf $(JDIR)/doxy/
+ -$(AM_V_at)rm -f $(java_cleanfiles)
+ -$(AM_V_at)rm -fr $(JDIR)/doxy
java-doc:
- $(AM_V_at)cd $(srcdir)/$(JDIR) && BUILDDIR=$(abs_builddir)/$(JDIR)/ doxygen Doxyfile 2>/dev/null
+ $(AM_V_at)cd $(srcdir)/$(JDIR) && BUILDDIR="$(abs_builddir)/$(JDIR)/" doxygen Doxyfile
BUILD_EXTRA += java-build
INSTALL_EXTRA += java-install
.PHONY: ChangeLog
ChangeLog:
- git --git-dir $(top_srcdir)/.git log > ChangeLog || touch ChangeLog
+ git --git-dir '$(top_srcdir)/.git' log >$@ || touch $@
dist-hook: ChangeLog