diff options
Diffstat (limited to 'config/usrp_libusb.m4')
-rw-r--r-- | config/usrp_libusb.m4 | 79 |
1 files changed, 65 insertions, 14 deletions
diff --git a/config/usrp_libusb.m4 b/config/usrp_libusb.m4 index cb3130c873..1d9cf0cbc4 100644 --- a/config/usrp_libusb.m4 +++ b/config/usrp_libusb.m4 @@ -19,27 +19,78 @@ dnl Boston, MA 02110-1301, USA. AC_DEFUN([USRP_LIBUSB], [ libusbok=yes - PKG_CHECK_MODULES(USB, libusb, [], [ - AC_LANG_PUSH(C) + PKG_CHECK_MODULES(USB, libusb-1.0, [have_libusb1=yes; libusbok=yes], [ + PKG_CHECK_MODULES(USB, libusb, [have_libusb1=no; libusbok=yes], [libusbok=no]) + ]) - AC_CHECK_HEADERS([usb.h], [], [libusbok=no; AC_MSG_RESULT([USRP requires libusb. usb.h not found. See http://libusb.sf.net])]) + if test x$libusbok = xyes; then + if test x$have_libusb1 = xyes; then + AC_DEFINE(HAVE_LIBUSB_1, [1], [Define if libusb-1.0 found]) + fi + AC_OUTPUT_COMMANDS([ + case "$CONFIG_OTHER" in + usrp*) + outfile=usrp/host/include/usrp/$CONFIG_OTHER + tmpfile=${outfile}T + dirname="sed s,^.*/,,g" + + echo creating $outfile + cat > $tmpfile << _EOF_ +/* -*- Mode: C++ -*- +* -------------------------------------------------------------------- +* DO NOT EDIT THIS FILE! It has been automatically generated +* from: configure.in and `echo $outfile|$dirname`.in +* on host: `(hostname || uname -n) 2>/dev/null | sed 1q` +* -------------------------------------------------------------------- +*/ - save_LIBS="$LIBS" - case "$host_os" in - darwin*) - LIBS="$LIBS -lIOKit" +_EOF_ + echo "#ifndef _`echo $outfile | $dirname | tr a-z. A-Z_`_" >> $tmpfile + echo "#define _`echo $outfile | $dirname | tr a-z. A-Z_`_" >> $tmpfile + echo >> $tmpfile + + case "$CONFIG_OTHER" in + usrp_prims*) + echo '#include <usrp/usrp_slots.h>' >> $tmpfile + echo '#include <string>' >> $tmpfile + echo >> $tmpfile ;; - *) ;; - esac + usrp_basic*) + echo '#include <usrp/db_base.h>' >> $tmpfile + echo '#include <usrp/usrp_slots.h>' >> $tmpfile + echo '#include <string>' >> $tmpfile + echo '#include <vector>' >> $tmpfile + echo '#include <boost/utility.hpp>' >> $tmpfile + echo '#include <usrp/usrp_subdev_spec.h>' >> $tmpfile + echo >> $tmpfile + ;; + esac + + if test x$have_libusb1 = xno; then + echo 'struct usb_device;'>> $tmpfile + echo 'struct usb_dev_handle;'>> $tmpfile + echo 'typedef struct usb_device libusb_device;' >> $tmpfile + echo 'typedef struct usb_dev_handle libusb_device_handle;' >> $tmpfile + echo >> $tmpfile + fi - AC_SEARCH_LIBS(usb_bulk_write, [usb], [USB_LIBS="$LIBS"], [libusbok=no; AC_MSG_RESULT([USRP requires libusb. usb_bulk_write not found. See http://libusb.sf.net])]) + if test x$have_libusb1 = xyes; then + echo 'struct libusb_device;' >> $tmpfile + echo 'struct libusb_device_handle;' >> $tmpfile + echo >> $tmpfile + fi - LIBS="$save_LIBS" + # The ugly but portable cpp stuff comes from here + infile=usrp/host/include/usrp/`echo $outfile | sed 's,.*/,,g;s,\..*$,,g'`.h.in + sed '/^##.*$/d' $infile >> $tmpfile + mv ${tmpfile} ${outfile} + ;; + esac - AC_LANG_POP - ]) + ],[ + have_libusb1=$have_libusb1 + ]) - if test x$libusbok = xyes; then AC_SUBST(USB_LIBS) ifelse([$1], , :, [$1]) else |