X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=0df658807a570f6600a11587982828cb57d5824c;hb=refs%2Fheads%2Flibsigrok-0.4.x;hp=af7db0dbbec2aa95e8d406cc1c385f88e3b13725;hpb=3d8691326666a32925aa555f3088185ccd5d846b;p=libsigrok.git diff --git a/configure.ac b/configure.ac index af7db0db..0df65880 100644 --- a/configure.ac +++ b/configure.ac @@ -67,7 +67,8 @@ SR_PKG_VERSION_SET([SR_PACKAGE_VERSION], [AC_PACKAGE_VERSION]) # Carefully read the libtool docs before updating these numbers! # The algorithm for determining which number to change (and how) is nontrivial! # http://www.gnu.org/software/libtool/manual/libtool.html#Updating-version-info -SR_LIB_VERSION_SET([SR_LIB_VERSION], [2:0:0]) +# Format: current:revision:age. +SR_LIB_VERSION_SET([SR_LIB_VERSION], [3:0:0]) AM_CONDITIONAL([WIN32], [test -z "${host_os##mingw*}" || test -z "${host_os##cygwin*}"]) @@ -91,6 +92,7 @@ SR_VAR_OPT_PKG([SR_PKGLIBS], [sr_deps_avail]) SR_PKGLIBS_TESTS= SR_PKGLIBS_CXX= SR_PKGLIBS_PYTHON= +SR_PKGLIBS_RUBY= SR_EXTRA_LIBS= SR_ARG_OPT_PKG([libserialport], [LIBSERIALPORT], [NEED_SERIAL], @@ -223,7 +225,7 @@ SR_DRIVER([Brymen BM86x], [brymen-bm86x], [libusb]) SR_DRIVER([Brymen DMM], [brymen-dmm], [libserialport]) SR_DRIVER([CEM DT-885x], [cem-dt-885x], [libserialport]) SR_DRIVER([Center 3xx], [center-3xx], [libserialport]) -SR_DRIVER([ChronoVu LA], [chronovu-la], [libftdi]) +SR_DRIVER([ChronoVu LA], [chronovu-la], [libusb libftdi]) SR_DRIVER([Colead SLM], [colead-slm], [libserialport]) SR_DRIVER([Conrad DIGI 35 CPU], [conrad-digi-35-cpu], [libserialport]) SR_DRIVER([DER EE DE-5000], [deree-de5000], [libserialport]) @@ -239,8 +241,9 @@ SR_DRIVER([Ikalogic Scanalogic-2], [ikalogic-scanalogic2], [libusb]) SR_DRIVER([Ikalogic Scanaplus], [ikalogic-scanaplus], [libftdi]) SR_DRIVER([Kecheng KC-330B], [kecheng-kc-330b], [libusb]) SR_DRIVER([KERN scale], [kern-scale], [libserialport]) -SR_DRIVER([Korad KDxxxxP], [korad-kdxxxxp], [libserialport]) +SR_DRIVER([Korad KAxxxxP], [korad-kaxxxxp], [libserialport]) SR_DRIVER([Lascar EL-USB], [lascar-el-usb], [libusb]) +SR_DRIVER([LeCroy LogicStudio], [lecroy-logicstudio], [libusb]) SR_DRIVER([Manson HCS-3xxx], [manson-hcs-3xxx], [libserialport]) SR_DRIVER([maynuo-m97], [maynuo-m97]) SR_DRIVER([MIC 985xx], [mic-985xx], [libserialport]) @@ -281,6 +284,10 @@ AC_ARG_ENABLE([python], [AS_HELP_STRING([--enable-python], [build Python bindings [default=yes]])], [], [enable_python=$enable_bindings]) +AC_ARG_ENABLE([ruby], + [AS_HELP_STRING([--enable-ruby], [build Ruby bindings [default=yes]])], + [], [enable_ruby=$enable_bindings]) + AC_ARG_ENABLE([java], [AS_HELP_STRING([--enable-java], [build Java bindings [default=yes]])], [], [enable_java=$enable_bindings]) @@ -378,6 +385,10 @@ AS_IF([test "x$HAVE_PYMOD_NUMPY" != xyes], # The Python bindings use SWIG to generate code. AC_CHECK_PROGS([SWIG], [swig swig3.0 swig2.0]) +AS_IF([test "x$SWIG" != x], + AC_MSG_CHECKING([for $SWIG version]) + [SWIG_VERSION=`$SWIG -version 2>&1 | sed -n 's/SWIG Version\s*//p'`] + AC_MSG_RESULT([$SWIG_VERSION])) AS_IF([test "x$SWIG" = x], [SR_APPEND([sr_python_missing], [', '], [SWIG])]) @@ -385,6 +396,48 @@ AS_IF([test -z "$sr_python_missing"], [BINDINGS_PYTHON=$enable_python], [BINDINGS_PYTHON=no]) AM_CONDITIONAL([BINDINGS_PYTHON], [test "x$BINDINGS_PYTHON" = xyes]) +##################### +## Ruby bindings ## +##################### + +AS_IF([test "x$BINDINGS_CXX" = xyes], + [sr_ruby_missing=], + [sr_ruby_missing='C++ bindings']) + +AC_PATH_PROGS(RUBY, ["${RUBY-ruby}"], []) +AS_IF([test "x$RUBY" != x], + AC_MSG_CHECKING([for Ruby version]) + [RUBY_VERSION=`$RUBY -e 'puts RUBY_VERSION'`] + AC_MSG_RESULT([$RUBY_VERSION]) + [RUBY_DLEXT=`$RUBY -rrbconfig -e 'puts RbConfig::CONFIG[["DLEXT"]]'`] + AC_SUBST(RUBY_DLEXT)) + +AS_IF([test "x$RUBY" = x], + [SR_APPEND([sr_ruby_missing], [', '], [Ruby])]) + +# Extract major and minor version number of the Ruby interpreter. +sr_rbmajor=${RUBY_VERSION%%.*} +sr_rbminor=${RUBY_VERSION#*.} +sr_rbminor=${sr_rbminor%%.*} + +# The Ruby bindings need Ruby development files. +SR_PKG_CHECK([ruby_dev], [SR_PKGLIBS_RUBY], + [ruby], + [ruby-$sr_rbmajor.$sr_rbminor]) + +AS_IF([test "x$sr_have_ruby_dev" != xyes], + [SR_APPEND([sr_ruby_missing], [', '], [Headers])]) + +# The Ruby bindings use SWIG >= 3.0.8 to generate code. +AS_IF([test "x$SWIG" = x], + [SR_APPEND([sr_ruby_missing], [', '], [SWIG])], + [AS_VERSION_COMPARE($SWIG_VERSION, "3.0.8", + [SR_APPEND([sr_ruby_missing], [', '], ['SWIG >= 3.0.8'])])]) + +AS_IF([test -z "$sr_ruby_missing"], + [BINDINGS_RUBY=$enable_ruby], [BINDINGS_RUBY=no]) +AM_CONDITIONAL([BINDINGS_RUBY], [test "x$BINDINGS_RUBY" = xyes]) + #################### ## Java bindings ## #################### @@ -453,6 +506,7 @@ PKG_CHECK_MODULES([TESTS], [$SR_PKGLIBS_TESTS glib-2.0 $SR_PKGLIBS]) AM_COND_IF([BINDINGS_CXX], [ PKG_CHECK_MODULES([LIBSIGROKCXX], [$SR_PKGLIBS_CXX]) PKG_CHECK_MODULES([PYSIGROK], [$SR_PKGLIBS_PYTHON $SR_PKGLIBS_CXX]) + PKG_CHECK_MODULES([RBSIGROK], [$SR_PKGLIBS_RUBY $SR_PKGLIBS_CXX], [AC_SUBST(RBSIGROK_EXTDIR, "lib/$($PKG_CONFIG --variable=sitearch $SR_PKGLIBS_RUBY)/$($PKG_CONFIG --variable=RUBY_BASE_NAME $SR_PKGLIBS_RUBY)/vendor_ruby/$($PKG_CONFIG --variable=ruby_version $SR_PKGLIBS_RUBY)")]) ]) # Check for specific libusb features, now that we know the CFLAGS. @@ -489,7 +543,7 @@ m4_define([SR_PREPARE_BINDING_REPORT], [ test -z "$sr_$1_missing" || sr_report_$1=" (missing: $sr_$1_missing)" test "x$enable_$1" = xyes || sr_report_$1=' (disabled)' ]) -m4_map_args([SR_PREPARE_BINDING_REPORT], [cxx], [python], [java]) +m4_map_args([SR_PREPARE_BINDING_REPORT], [cxx], [python], [ruby], [java]) cat >&AS_MESSAGE_FD <<_EOF @@ -530,6 +584,7 @@ Enabled SCPI backends: Enabled language bindings: - C++............................. $BINDINGS_CXX$sr_report_cxx - Python.......................... $BINDINGS_PYTHON$sr_report_python + - Ruby............................ $BINDINGS_RUBY$sr_report_ruby - Java............................ $BINDINGS_JAVA$sr_report_java _EOF