-AC_ARG_ENABLE(chronovu-la8, AC_HELP_STRING([--enable-chronovu-la8],
- [enable ChronoVu LA8 support [default=yes]]),
- [HW_CHRONOVU_LA8="$enableval"],
- [HW_CHRONOVU_LA8=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(colead-slm, AC_HELP_STRING([--enable-colead-slm],
- [enable Colead SLM support [default=yes]]),
- [HW_COLEAD_SLM="$enableval"],
- [HW_COLEAD_SLM=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(demo, AC_HELP_STRING([--enable-demo],
- [enable demo driver support [default=yes]]),
- [HW_DEMO="$enableval"],
- [HW_DEMO=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(fluke-dmm, AC_HELP_STRING([--enable-fluke-dmm],
- [enable Fluke DMM support [default=yes]]),
- [HW_FLUKE_DMM="$enableval"],
- [HW_FLUKE_DMM=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(fx2lafw, AC_HELP_STRING([--enable-fx2lafw],
- [enable fx2lafw support (for FX2 LAs). [default=yes]]),
- [HW_FX2LAFW="$enableval"],
- [HW_FX2LAFW=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(hantek-dso, AC_HELP_STRING([--enable-hantek-dso],
- [enable Hantek DSO support [default=yes]]),
- [HW_HANTEK_DSO="$enableval"],
- [HW_HANTEK_DSO=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(ikalogic-scanalogic2, AC_HELP_STRING([--enable-ikalogic-scanalogic2],
- [enable IKALOGIC Scanalogic2 support [default=yes]]),
- [HW_IKALOGIC_SCANALOGIC2="$enableval"],
- [HW_IKALOGIC_SCANALOGIC2=yes])
-AM_CONDITIONAL(HW_IKALOGIC_SCANALOGIC2, test x$HW_IKALOGIC_SCANALOGIC2 = xyes)
-if test "x$HW_IKALOGIC_SCANALOGIC2" = "xyes"; then
- AC_DEFINE(HAVE_HW_IKALOGIC_SCANALOGIC2, 1, [IKALOGIC Scanalogic2 support])
-fi
-
-AC_ARG_ENABLE(lascar-el-usb, AC_HELP_STRING([--enable-lascar-el-usb],
- [enable Lascar EL-USB support [default=yes]]),
- [HW_LASCAR_EL_USB="$enableval"],
- [HW_LASCAR_EL_USB=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(link-mso19, AC_HELP_STRING([--enable-link-mso19],
- [enable Link Instruments MSO-19 support [default=yes]]),
- [HW_LINK_MSO19="$enableval"],
- [HW_LINK_MSO19=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(mic-985xx, AC_HELP_STRING([--enable-mic-985xx],
- [enable MIC 985xx support [default=yes]]),
- [HW_MIC_985XX="$enableval"],
- [HW_MIC_985XX=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(nexus-osciprime, AC_HELP_STRING([--enable-nexus-osciprime],
- [enable Nexus Osciprime support [default=yes]]),
- [HW_NEXUS_OSCIPRIME="$enableval"],
- [HW_NEXUS_OSCIPRIME=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(ols, AC_HELP_STRING([--enable-ols],
- [enable OpenBench Logic Sniffer (OLS) support [default=yes]]),
- [HW_OLS="$enableval"],
- [HW_OLS=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(rigol-ds1xx2, AC_HELP_STRING([--enable-rigol-ds1xx2],
- [enable Rigol DS1xx2 support [default=yes]]),
- [HW_RIGOL_DS1XX2="$enableval"],
- [HW_RIGOL_DS1XX2=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(serial-dmm, AC_HELP_STRING([--enable-serial-dmm],
- [enable serial DMM support [default=yes]]),
- [HW_SERIAL_DMM="$enableval"],
- [HW_SERIAL_DMM=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(tondaj-sl-814, AC_HELP_STRING([--enable-tondaj-sl-814],
- [enable Tondaj SL-814 support [default=yes]]),
- [HW_TONDAJ_SL_814="$enableval"],
- [HW_TONDAJ_SL_814=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(uni-t-dmm, AC_HELP_STRING([--enable-uni-t-dmm],
- [enable UNI-T DMM support [default=yes]]),
- [HW_UNI_T_DMM="$enableval"],
- [HW_UNI_T_DMM=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(victor-dmm, AC_HELP_STRING([--enable-victor-dmm],
- [enable victor-dmm support [default=yes]]),
- [HW_VICTOR_DMM="$enableval"],
- [HW_VICTOR_DMM=$HW_ENABLED_DEFAULT])
-
-AC_ARG_ENABLE(zeroplus-logic-cube,
- AC_HELP_STRING([--enable-zeroplus-logic-cube],
- [enable ZEROPLUS Logic Cube support [default=yes]]),
- [HW_ZEROPLUS_LOGIC_CUBE="$enableval"],
- [HW_ZEROPLUS_LOGIC_CUBE=$HW_ENABLED_DEFAULT])
+# The C++ bindings use gccxml to parse libsigrok symbols.
+AC_CHECK_PROG([HAVE_GCCXML], [gccxml], [yes])
+if test "x$HAVE_GCCXML" != "xyes"; then
+ BINDINGS_CXX="no"
+fi
+
+# Python is needed for the C++ (and Python) bindings.
+PKG_CHECK_MODULES([python], [python3 >= 2.7],
+ [CXXFLAGS="$CXXFLAGS $python_CFLAGS";
+ CXXLIBS="$CXXLIBS $python_LIBS"],
+ [BINDINGS_CXX="no"])
+
+# The C++ bindings need the pygccxml Python module.
+m4_ifdef([AX_PYTHON_MODULE], [AX_PYTHON_MODULE([pygccxml])],
+ # We'll let it go through even if the macro wasn't found, the python
+ # module may still be there.
+ [HAVE_PYTHON_PYGCCXML="yes";
+ AC_MSG_NOTICE([Missing macro m4_toupper(aX_PYTHON_MODULE), no pygccxml check])]
+)
+if test "x$HAVE_PYMOD_PYGCCXML" != "xyes"; then
+ BINDINGS_CXX="no"
+fi
+
+# Python and Java bindings depend on C++ bindings.
+
+if test "x$BINDINGS_CXX" != "xyes"; then
+ BINDINGS_PYTHON="no"
+ BINDINGS_JAVA="no"
+fi