From 265484bfaaaab4f83c43a53c9e0fd307e205e5c4 Mon Sep 17 00:00:00 2001 From: ttsou Date: Thu, 10 Sep 2009 16:33:49 -0400 Subject: [PATCH] Autoconf support for checking the required version of libusb based on fusb-tech --- config/grc_usrp.m4 | 4 +- config/usrp_fusb_tech.m4 | 4 +- config/usrp_libusb.m4 | 131 +++++++++++++++++++++------------------ 3 files changed, 75 insertions(+), 64 deletions(-) diff --git a/config/grc_usrp.m4 b/config/grc_usrp.m4 index 14c64608..b9740aea 100644 --- a/config/grc_usrp.m4 +++ b/config/grc_usrp.m4 @@ -44,8 +44,8 @@ AC_DEFUN([GRC_USRP],[ AC_CHECK_FUNCS([getrusage sched_setscheduler pthread_setschedparam]) AC_CHECK_FUNCS([sigaction snprintf]) - dnl Make sure libusb is installed; required for legacy USB - USRP_LIBUSB([],[passed=no;AC_MSG_RESULT([Unable to find dependency libusb.])]) + dnl Make sure libusb version is installed; required for legacy USB + USRP_LIBUSB([$req_libusb1],[passed=no;AC_MSG_RESULT([Unable to find dependency libusb.])]) dnl Make sure SDCC >= 2.4.0 is available. USRP_SDCC([2.4.0],[],[passed=no;AC_MSG_RESULT([Unable to find firmware compiler SDCC.])]) diff --git a/config/usrp_fusb_tech.m4 b/config/usrp_fusb_tech.m4 index 0be6a0ec..200cb36a 100644 --- a/config/usrp_fusb_tech.m4 +++ b/config/usrp_fusb_tech.m4 @@ -25,15 +25,17 @@ dnl # "" : do these tests AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[ + req_libusb1=no AC_ARG_WITH([fusb-tech], AC_HELP_STRING([--with-fusb-tech=OS], [Set fast USB technique (default=auto)]), [cf_with_fusb_tech="$withval"], - [cf_with_fusb_tech="libusb1"]) + [cf_with_fusb_tech="$host_os"]) if test [x]$1 != xno; then case "$cf_with_fusb_tech" in libusb1*) FUSB_TECH=libusb1 + req_libusb1=yes ;; linux*) AC_CHECK_HEADER([linux/usbdevice_fs.h], diff --git a/config/usrp_libusb.m4 b/config/usrp_libusb.m4 index 1d9cf0cb..e00e1e6c 100644 --- a/config/usrp_libusb.m4 +++ b/config/usrp_libusb.m4 @@ -17,25 +17,34 @@ dnl along with GNU Radio; see the file COPYING. If not, write to dnl the Free Software Foundation, Inc., 51 Franklin Street, dnl Boston, MA 02110-1301, USA. +# $1 is $req_libusb1: +# yes : check libusb-1.0 +# no : check libusb-0.12 +# "" : check libusb-0.12 + + AC_DEFUN([USRP_LIBUSB], [ - libusbok=yes - PKG_CHECK_MODULES(USB, libusb-1.0, [have_libusb1=yes; libusbok=yes], [ - PKG_CHECK_MODULES(USB, libusb, [have_libusb1=no; libusbok=yes], [libusbok=no]) - ]) + libusbok=yes - 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" + if test [x]$1 = xyes; then + PKG_CHECK_MODULES(USB, libusb-1.0, [have_libusb1=yes], [libusbok=no]) + else + PKG_CHECK_MODULES(USB, libusb, [have_libusb1=no], [libusbok=no]) + fi + + 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_ + echo creating $outfile + cat > $tmpfile << _EOF_ /* -*- Mode: C++ -*- * -------------------------------------------------------------------- * DO NOT EDIT THIS FILE! It has been automatically generated @@ -45,55 +54,55 @@ AC_DEFUN([USRP_LIBUSB], [ */ _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 + 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 ' >> $tmpfile - echo '#include ' >> $tmpfile - echo >> $tmpfile - ;; - usrp_basic*) - echo '#include ' >> $tmpfile - echo '#include ' >> $tmpfile - echo '#include ' >> $tmpfile - echo '#include ' >> $tmpfile - echo '#include ' >> $tmpfile - echo '#include ' >> $tmpfile - echo >> $tmpfile - ;; - esac + case "$CONFIG_OTHER" in + usrp_prims*) + echo '#include ' >> $tmpfile + echo '#include ' >> $tmpfile + echo >> $tmpfile + ;; + usrp_basic*) + echo '#include ' >> $tmpfile + echo '#include ' >> $tmpfile + echo '#include ' >> $tmpfile + echo '#include ' >> $tmpfile + echo '#include ' >> $tmpfile + echo '#include ' >> $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 + 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 - if test x$have_libusb1 = xyes; then - echo 'struct libusb_device;' >> $tmpfile - echo 'struct libusb_device_handle;' >> $tmpfile - echo >> $tmpfile - fi + if test x$have_libusb1 = xyes; then + echo 'struct libusb_device;' >> $tmpfile + echo 'struct libusb_device_handle;' >> $tmpfile + echo >> $tmpfile + fi - # 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 + # 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 - ],[ - have_libusb1=$have_libusb1 - ]) + ],[ + have_libusb1=$have_libusb1 + ]) - AC_SUBST(USB_LIBS) - ifelse([$1], , :, [$1]) - else - ifelse([$2], , :, [$2]) - fi + AC_SUBST(USB_LIBS) + ifelse([$1], , :, [$1]) + else + ifelse([$2], , :, [$2]) + fi ]) -- 2.30.2