SR_DRIVER([HP 3478A], [hp-3478a], [libgpib])
SR_DRIVER([hp-59306a], [hp-59306a])
SR_DRIVER([Hung-Chang DSO-2100], [hung-chang-dso-2100], [libieee1284])
+SR_DRIVER([ICStation USBRelay], [icstation-usbrelay], [serial_comm])
SR_DRIVER([Ikalogic Scanalogic-2], [ikalogic-scanalogic2], [libusb])
SR_DRIVER([Ikalogic Scanaplus], [ikalogic-scanaplus], [libftdi])
SR_DRIVER([IPDBG LA], [ipdbg-la])
[SR_APPEND([sr_cxx_missing], [', '], ['C++11'])])
# The C++ bindings need glibmm.
-SR_PKG_CHECK([glibmm], [SR_PKGLIBS_CXX], [glibmm-2.4 >= 2.32.0])
+# Prefer glibmm-2.4 for backwards compatibility.
+# Accept glibmm-2.68 when glibmm-2.4 is not available.
+sr_have_glibmm=no
AS_IF([test "x$sr_have_glibmm" != xyes],
+ [SR_PKG_CHECK([glibmm24], [SR_PKGLIBS_CXX], [glibmm-2.4 >= 2.32.0])])
+AS_IF([test "x$sr_have_glibmm24" = xyes],
+ [SR_APPEND([SR_GLIBMM_REQUIRES], [glibmm-2.4>=2.32.0])
+ sr_have_glibmm=yes])
+AS_IF([test "x$sr_have_glibmm" != xyes],
+ [SR_PKG_CHECK([glibmm268], [SR_PKGLIBS_CXX], [glibmm-2.68 >= 2.68.0])])
+AS_IF([test "x$sr_have_glibmm268" = xyes],
+ [SR_APPEND([SR_GLIBMM_REQUIRES], [glibmm-2.68>=2.68.0])
+ sr_have_glibmm=yes])
+AS_IF([test "x$sr_have_glibmm" = xyes],
+ [AC_SUBST(SR_GLIBMM_REQUIRES)],
[SR_APPEND([sr_cxx_missing], [', '], [glibmm])])
# The C++ bindings use Doxygen to parse libsigrok symbols.
AS_IF([test "x$sr_cv_have_stoi_stod" = xyes],
[AC_DEFINE([HAVE_STOI_STOD], [1],
[Specifies whether we have the stoi and stod functions.])])
+ # In theory std::stoul() should have identical availability
+ # as std::stoi() and std::stod() have. All of them are C++11.
+ # But we play it safe here, and check support individually.
+ AC_CACHE_CHECK([for stoul], [sr_cv_have_stoul],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string>]],
+ [[(void) std::stoul("1");]])],
+ [sr_cv_have_stoul=yes], [sr_cv_have_stoul=no])])
+ AS_IF([test "x$sr_cv_have_stoul" = xyes],
+ [AC_DEFINE([HAVE_STOUL], [1],
+ [Specifies whether we have the std::stoul function.])])
])
#######################