X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=configure.ac;h=0df658807a570f6600a11587982828cb57d5824c;hb=refs%2Fheads%2Flibsigrok-0.4.x;hp=37172f28dc1b69ec0b5329db24f413cffde3896b;hpb=c7b17bcba3751c7849229089cce8773bb4355be7;p=libsigrok.git diff --git a/configure.ac b/configure.ac index 37172f28..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], @@ -282,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]) @@ -379,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])]) @@ -386,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 ## #################### @@ -454,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. @@ -490,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 @@ -531,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