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` * -------------------------------------------------------------------- * * Copyright 2005 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ _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 ' >> $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 'struct usb_device_descriptor;' >> $tmpfile echo 'typedef usb_device libusb_device;' >> $tmpfile echo 'typedef usb_dev_handle libusb_device_handle;' >> $tmpfile echo 'typedef usb_device_descriptor libusb_device_descriptor;' >> $tmpfile echo >> $tmpfile fi if test x$have_libusb1 = xyes; then echo 'struct libusb_device;' >> $tmpfile echo 'struct libusb_device_handle;' >> $tmpfile echo 'struct libusb_device_descriptor;' >> $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([$2], , :, [$2]) else ifelse([$3], , :, [$3]) fi ])