- ;;
- *)
- PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.5],
- [CFLAGS="$CFLAGS $libusb_CFLAGS";
- LIBS="$LIBS $libusb_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS libusb-1.0"])
- AC_CHECK_LIB(usb-1.0, libusb_init)
- ;;
- esac
-fi
-
-# libzip is always needed.
-PKG_CHECK_MODULES([libzip], [libzip >= 0.8],
- [CFLAGS="$CFLAGS $libzip_CFLAGS"; LIBS="$LIBS $libzip_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS libzip"])
-
-# zlib is only needed for some hardware drivers.
-if test "x$LA_ASIX_SIGMA" != xno; then
- case "$build" in
- *freebsd*)
- # FreeBSD has zlib, but no pkg-config file for it.
- # Check manually, and do NOT add it to LIBSIGROK_PKGLIBS.
- AC_CHECK_LIB(z, uncompress)
- ;;
- *)
- PKG_CHECK_MODULES([zlib], [zlib >= 1.2.3.1],
- [CFLAGS="$CFLAGS $zlib_CFLAGS"; LIBS="$LIBS $zlib_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS zlib"])
- ;;
- esac
-fi
-
-# libftdi is only needed for some hardware drivers.
-if test "x$LA_ASIX_SIGMA" != xno \
- -o "x$LA_CHRONOVU_LA8" != xno; then
- PKG_CHECK_MODULES([libftdi], [libftdi >= 0.16],
- [CFLAGS="$CFLAGS $libftdi_CFLAGS";
- LIBS="$LIBS $libftdi_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS libftdi"])
-fi
-
-# libudev is only needed for some hardware drivers.
-if test "x$LA_LINK_MSO19" != xno; then
- PKG_CHECK_MODULES([libudev], [libudev >= 151],
- [CFLAGS="$CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS libudev"])
-fi
-
-# ALSA is only needed for some hardware drivers.
-if test "x$LA_ALSA" != xno; then
- PKG_CHECK_MODULES([alsa], [alsa >= 1.0],
- [CFLAGS="$CFLAGS $alsa_CFLAGS"; LIBS="$LIBS $alsa_LIBS";
- LIBSIGROK_PKGLIBS="$LIBSIGROK_PKGLIBS alsa"])
-fi
-
-AC_SUBST(LIBSIGROK_PKGLIBS)
+ fi
+ ;;
+esac
+
+# USB + FX2 firmware helper code is only compiled in if libusb-1.0 was found.
+AM_CONDITIONAL(NEED_USB, test "x$have_libusb1_0" != xno)
+
+# libftdi is only needed for some hardware drivers. Disable them if not found.
+PKG_CHECK_MODULES([libftdi], [libftdi >= 0.16],
+ [LIB_CFLAGS="$LIB_CFLAGS $libftdi_CFLAGS";
+ LIBS="$LIBS $libftdi_LIBS";
+ SR_PKGLIBS="$SR_PKGLIBS libftdi"],
+ [HW_ASIX_SIGMA="no"; HW_CHRONOVU_LA="no"; HW_IKALOGIC_SCANAPLUS="no"])
+
+# libudev is only needed for some hardware drivers. Disable them if not found.
+PKG_CHECK_MODULES([libudev], [libudev >= 151],
+ [LIB_CFLAGS="$LIB_CFLAGS $libudev_CFLAGS"; LIBS="$LIBS $libudev_LIBS";
+ SR_PKGLIBS="$SR_PKGLIBS libudev"],
+ [HW_LINK_MSO19="no"])
+
+# The Check unit testing framework is optional. Disable if not found.
+PKG_CHECK_MODULES([check], [check >= 0.9.4],
+ [have_check="yes"; LIB_CFLAGS="$LIB_CFLAGS $check_CFLAGS";
+ LIBS="$LIBS $check_LIBS"], [have_check="no"])
+AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes")
+
+# The OLS driver uses serial port file descriptors directly, and therefore
+# will not currently work on Windows.
+case "$host" in
+*mingw*)
+ HW_OLS="no"
+ ;;
+esac
+
+AC_SUBST(SR_PKGLIBS)
+
+CFLAGS="$CFLAGS $LIB_CFLAGS"
+
+# Now set AM_CONDITIONALs and AC_DEFINEs for the enabled/disabled drivers.
+
+AM_CONDITIONAL(HW_AGILENT_DMM, test x$HW_AGILENT_DMM = xyes)
+if test "x$HW_AGILENT_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_AGILENT_DMM, 1, [Agilent DMM support])
+fi
+
+AM_CONDITIONAL(HW_APPA_55II, test x$HW_APPA_55II = xyes)
+if test "x$HW_APPA_55II" = "xyes"; then
+ AC_DEFINE(HAVE_HW_APPA_55II, 1, [APPA 55II support])
+fi
+
+AM_CONDITIONAL(HW_ASIX_SIGMA, test x$HW_ASIX_SIGMA = xyes)
+if test "x$HW_ASIX_SIGMA" = "xyes"; then
+ AC_DEFINE(HAVE_HW_ASIX_SIGMA, 1, [ASIX SIGMA/SIGMA2 support])
+fi
+
+AM_CONDITIONAL(HW_ATTEN_PPS3XXX, test x$HW_ATTEN_PPS3XXX = xyes)
+if test "x$HW_ATTEN_PPS3XXX" = "xyes"; then
+ AC_DEFINE(HAVE_HW_ATTEN_PPS3XXX, 1, [Atten PPS3xxx support])
+fi
+
+AM_CONDITIONAL(HW_BRYMEN_BM86X, test x$HW_BRYMEN_BM86X = xyes)
+if test "x$HW_BRYMEN_BM86X" = "xyes"; then
+ AC_DEFINE(HAVE_HW_BRYMEN_BM86X, 1, [Brymen BM86X support])
+fi
+
+AM_CONDITIONAL(HW_BRYMEN_DMM, test x$HW_BRYMEN_DMM = xyes)
+if test "x$HW_BRYMEN_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_BRYMEN_DMM, 1, [Brymen DMM support])
+fi
+
+AM_CONDITIONAL(HW_CEM_DT_885X, test x$HW_CEM_DT_885X = xyes)
+if test "x$HW_CEM_DT_885X" = "xyes"; then
+ AC_DEFINE(HAVE_HW_CEM_DT_885X, 1, [CEM DT-885x support])
+fi
+
+AM_CONDITIONAL(HW_CENTER_3XX, test x$HW_CENTER_3XX = xyes)
+if test "x$HW_CENTER_3XX" = "xyes"; then
+ AC_DEFINE(HAVE_HW_CENTER_3XX, 1, [Center 3xx support])
+fi
+
+AM_CONDITIONAL(HW_CHRONOVU_LA, test x$HW_CHRONOVU_LA = xyes)
+if test "x$HW_CHRONOVU_LA" = "xyes"; then
+ AC_DEFINE(HAVE_HW_CHRONOVU_LA, 1, [ChronoVu LA support])
+fi
+
+AM_CONDITIONAL(HW_COLEAD_SLM, test x$HW_COLEAD_SLM = xyes)
+if test "x$HW_COLEAD_SLM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_COLEAD_SLM, 1, [Colead SLM support])
+fi
+
+AM_CONDITIONAL(HW_CONRAD_DIGI_35_CPU, test x$HW_CONRAD_DIGI_35_CPU = xyes)
+if test "x$HW_CONRAD_DIGI_35_CPU" = "xyes"; then
+ AC_DEFINE(HAVE_HW_CONRAD_DIGI_35_CPU, 1, [Conrad DIGI 35 CPU support])
+fi
+
+AM_CONDITIONAL(HW_DEMO, test x$HW_DEMO = xyes)
+if test "x$HW_DEMO" = "xyes"; then
+ AC_DEFINE(HAVE_HW_DEMO, 1, [Demo driver support])
+fi
+
+AM_CONDITIONAL(HW_FLUKE_DMM, test x$HW_FLUKE_DMM = xyes)
+if test "x$HW_FLUKE_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_FLUKE_DMM, 1, [Fluke DMM support])
+fi
+
+AM_CONDITIONAL(HW_FX2LAFW, test x$HW_FX2LAFW = xyes)
+if test "x$HW_FX2LAFW" = "xyes"; then
+ AC_DEFINE(HAVE_HW_FX2LAFW, 1, [fx2lafw support])
+fi
+
+AM_CONDITIONAL(HW_GMC_MH_1X_2X, test x$HW_GMC_MH_1X_2X = xyes)
+if test "x$HW_GMC_MH_1X_2X" = "xyes"; then
+ AC_DEFINE(HAVE_HW_GMC_MH_1X_2X, 1, [gmc-mh-1x-2x support])
+fi
+
+AM_CONDITIONAL(HW_HANTEK_DSO, test x$HW_HANTEK_DSO = xyes)
+if test "x$HW_HANTEK_DSO" = "xyes"; then
+ AC_DEFINE(HAVE_HW_HANTEK_DSO, 1, [Hantek DSO support])
+fi
+
+AM_CONDITIONAL(HW_HAMEG_HMO, test x$HW_HAMEG_HMO = xyes)
+if test "x$HW_HAMEG_HMO" = "xyes"; then
+ AC_DEFINE(HAVE_HW_HAMEG_HMO, 1, [Hameg HMO support])
+fi
+
+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 Scanalogic-2 support])
+fi
+
+AM_CONDITIONAL(HW_IKALOGIC_SCANAPLUS, test x$HW_IKALOGIC_SCANAPLUS = xyes)
+if test "x$HW_IKALOGIC_SCANAPLUS" = "xyes"; then
+ AC_DEFINE(HAVE_HW_IKALOGIC_SCANAPLUS, 1, [IKALOGIC ScanaPLUS support])
+fi
+
+AM_CONDITIONAL(HW_KECHENG_KC_330B, test x$HW_KECHENG_KC_330B = xyes)
+if test "x$HW_KECHENG_KC_330B" = "xyes"; then
+ AC_DEFINE(HAVE_HW_KECHENG_KC_330B, 1, [Kecheng KC-330B support])
+fi
+
+AM_CONDITIONAL(HW_LASCAR_EL_USB, test x$HW_LASCAR_EL_USB = xyes)
+if test "x$HW_LASCAR_EL_USB" = "xyes"; then
+ AC_DEFINE(HAVE_HW_LASCAR_EL_USB, 1, [Lascar EL-USB support])
+fi
+
+AM_CONDITIONAL(HW_LINK_MSO19, test x$HW_LINK_MSO19 = xyes)
+if test "x$HW_LINK_MSO19" = "xyes"; then
+ AC_DEFINE(HAVE_HW_LINK_MSO19, 1, [Link Instruments MSO-19 support])
+fi
+
+AM_CONDITIONAL(HW_MIC_985XX, test x$HW_MIC_985XX = xyes)
+if test "x$HW_MIC_985XX" = "xyes"; then
+ AC_DEFINE(HAVE_HW_MIC_985XX, 1, [MIC 985xx support])
+fi
+
+AM_CONDITIONAL(HW_NORMA_DMM, test x$HW_NORMA_DMM = xyes)
+if test "x$HW_NORMA_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_NORMA_DMM, 1, [Norma DMM support])
+fi
+
+AM_CONDITIONAL(HW_OLS, test x$HW_OLS = xyes)
+if test "x$HW_OLS" = "xyes"; then
+ AC_DEFINE(HAVE_HW_OLS, 1, [OpenBench Logic Sniffer (OLS) support])
+fi
+
+AM_CONDITIONAL(HW_RIGOL_DS, test x$HW_RIGOL_DS = xyes)
+if test "x$HW_RIGOL_DS" = "xyes"; then
+ AC_DEFINE(HAVE_HW_RIGOL_DS, 1, [Rigol DS support])
+fi
+
+AM_CONDITIONAL(HW_SALEAE_LOGIC16, test x$HW_SALEAE_LOGIC16 = xyes)
+if test "x$HW_SALEAE_LOGIC16" = "xyes"; then
+ AC_DEFINE(HAVE_HW_SALEAE_LOGIC16, 1, [Saleae Logic16 support])
+fi
+
+AM_CONDITIONAL(HW_SERIAL_DMM, test x$HW_SERIAL_DMM = xyes)
+if test "x$HW_SERIAL_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_SERIAL_DMM, 1, [Serial DMM support])
+fi
+
+AM_CONDITIONAL(HW_SYSCLK_LWLA, test x$HW_SYSCLK_LWLA = xyes)
+if test "x$HW_SYSCLK_LWLA" = "xyes"; then
+ AC_DEFINE(HAVE_HW_SYSCLK_LWLA, 1, [Sysclk LWLA support])
+fi
+
+AM_CONDITIONAL(HW_TELEINFO, test x$HW_TELEINFO = xyes)
+if test "x$HW_TELEINFO" = "xyes"; then
+ AC_DEFINE(HAVE_HW_TELEINFO, 1, [Teleinfo support])
+fi
+
+AM_CONDITIONAL(HW_TONDAJ_SL_814, test x$HW_TONDAJ_SL_814 = xyes)
+if test "x$HW_TONDAJ_SL_814" = "xyes"; then
+ AC_DEFINE(HAVE_HW_TONDAJ_SL_814, 1, [Tondaj SL-814 support])
+fi
+
+AM_CONDITIONAL(HW_UNI_T_DMM, test x$HW_UNI_T_DMM = xyes)
+if test "x$HW_UNI_T_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_UNI_T_DMM, 1, [UNI-T DMM support])
+fi
+
+AM_CONDITIONAL(HW_UNI_T_UT32X, test x$HW_UNI_T_UT32X = xyes)
+if test "x$HW_UNI_T_UT32X" = "xyes"; then
+ AC_DEFINE(HAVE_HW_UNI_T_UT32X, 1, [UNI-T UT32x support])
+fi
+
+AM_CONDITIONAL(HW_VICTOR_DMM, test x$HW_VICTOR_DMM = xyes)
+if test "x$HW_VICTOR_DMM" = "xyes"; then
+ AC_DEFINE(HAVE_HW_VICTOR_DMM, 1, [Victor DMM support])
+fi
+
+AM_CONDITIONAL(HW_ZEROPLUS_LOGIC_CUBE, test x$HW_ZEROPLUS_LOGIC_CUBE = xyes)
+if test "x$HW_ZEROPLUS_LOGIC_CUBE" = "xyes"; then
+ AC_DEFINE(HAVE_HW_ZEROPLUS_LOGIC_CUBE, 1, [ZEROPLUS Logic Cube support])
+fi