Imported Upstream version 3.0
[debian/gnuradio] / config / usrp_fusb_tech.m4
1 dnl
2 dnl Copyright 2003 Free Software Foundation, Inc.
3 dnl 
4 dnl This file is part of GNU Radio
5 dnl 
6 dnl GNU Radio is free software; you can redistribute it and/or modify
7 dnl it under the terms of the GNU General Public License as published by
8 dnl the Free Software Foundation; either version 2, or (at your option)
9 dnl any later version.
10 dnl 
11 dnl GNU Radio is distributed in the hope that it will be useful,
12 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
13 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 dnl GNU General Public License for more details.
15 dnl 
16 dnl You should have received a copy of the GNU General Public License
17 dnl along with GNU Radio; see the file COPYING.  If not, write to
18 dnl the Free Software Foundation, Inc., 51 Franklin Street,
19 dnl Boston, MA 02110-1301, USA.
20 dnl 
21
22 AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[
23   AC_ARG_WITH(fusb-tech,
24         [  --with-fusb-tech=OS     set fast usb technique (auto)],
25                 [cf_with_fusb_tech="$withval"],
26                 [cf_with_fusb_tech="$host_os"])
27         
28
29   AC_CHECK_HEADER([linux/usbdevice_fs.h],
30         [x_have_usbdevice_fs_h=yes],
31         [x_have_usbdevice_fs_h=no])
32
33   AC_MSG_CHECKING([for fast usb technique to use])
34   case "$cf_with_fusb_tech" in
35     linux*)     if test x${x_have_usbdevice_fs_h} = xyes;
36                 then
37                   FUSB_TECH=linux
38                 else
39                   FUSB_TECH=generic
40                 fi                      ;;
41
42     darwin*)    FUSB_TECH=darwin        ;;
43     cygwin*|win*|mingw*)        FUSB_TECH=win32         ;;
44     *bsd*)
45                 AC_MSG_CHECKING([for RA/WB])
46                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dev/usb/usb.h>]],
47                                                    [[struct usb_bulk_ra_wb_opt o;
48                                                      ioctl(0, USB_SET_BULK_RA, &o);]])],
49                                   [FUSB_TECH=ra_wb],
50                                   [FUSB_TECH=generic])          ;;
51     *)          FUSB_TECH=generic       ;;
52   esac  
53
54   AC_MSG_RESULT($FUSB_TECH)
55   AC_SUBST(FUSB_TECH)
56
57   AM_CONDITIONAL(FUSB_TECH_darwin,   test $FUSB_TECH = darwin)
58   AM_CONDITIONAL(FUSB_TECH_win32,    test $FUSB_TECH = win32)
59   AM_CONDITIONAL(FUSB_TECH_generic,  test $FUSB_TECH = generic)
60   AM_CONDITIONAL(FUSB_TECH_linux,    test $FUSB_TECH = linux)
61   AM_CONDITIONAL(FUSB_TECH_ra_wb,    test $FUSB_TECH = ra_wb)
62 ])
63