1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
dnl Copyright 2003,2008 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Radio
dnl
dnl GNU Radio is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3, or (at your option)
dnl any later version.
dnl
dnl GNU Radio is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
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
have_libusb1=no
if test [x]$1 = xyes; then
PKG_CHECK_MODULES(USB, libusb-1.0, [have_libusb1=yes], [
AC_LANG_PUSH(C)
AC_CHECK_HEADERS([libusb-1.0/libusb.h], [have_libusb1=yes],
[libusbok=no; AC_MSG_RESULT([USRP requires libusb-1.0. libusb.h not found. See http://www.libusb.org])])
AC_SEARCH_LIBS(libusb_bulk_transfer, [usb], [USB_LIBS="$LIBS"],
[libusbok=no; AC_MSG_RESULT([USRP requires libusb-1.0. libusb_bulk_transfer not found. See http://www.libusb.org])])
AC_LANG_POP
])
else
PKG_CHECK_MODULES(USB, libusb, [], [
AC_LANG_PUSH(C)
AC_CHECK_HEADERS([usb.h], [],
[libusbok=no; AC_MSG_RESULT([USRP requires libusb. usb.h not found. See http://www.libusb.org])])
save_LIBS="$LIBS"
case "$host_os" in
darwin*)
LIBS="$LIBS -lIOKit"
;;
*) ;;
esac
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://www.libusb.org])])
LIBS="$save_LIBS"
AC_LANG_POP
])
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_
/* -*- 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`
* --------------------------------------------------------------------
*/
_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
;;
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
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
],[
have_libusb1=$have_libusb1
])
AC_SUBST(USB_LIBS)
ifelse([$1], , :, [$1])
else
ifelse([$2], , :, [$2])
fi
])
|