Tweak LIBUSB m4 script to not check for 'usb_debug' symbol on Windows, because the...
[debian/gnuradio] / config / grc_usrp.m4
index 34acee818f7ee142887b835ea6df4af3505f5037..999b9c5c331b7db74b87e217bc6d5859685b0aba 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
+dnl Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
 dnl 
 dnl This file is part of GNU Radio
 dnl 
@@ -18,123 +18,73 @@ dnl the Free Software Foundation, Inc., 51 Franklin Street,
 dnl Boston, MA 02110-1301, USA.
 
 AC_DEFUN([GRC_USRP],[
-    GRC_ENABLE([usrp])
-    GRC_WITH([usrp])
-    passed=no
-    if test x$with_usrp = xyes; then
-        if test x$enable_usrp = xyes; then
-           AC_MSG_ERROR([Component usrp: Cannot use both --enable and --with])
-        else
-           # the following is required, for whatever reason; ignore the output
-           USRP_SET_FUSB_TECHNIQUE([],[passed=no;AC_MSG_RESULT([Unable to set fast USB technique.])])
-           passed=no
-           # on to the regular routine
-           PKG_CHECK_MODULES(USRP, usrp, passed=with,
-                   AC_MSG_RESULT([Component usrp: PKGCONFIG cannot find info]))
-            if test x$passed = xwith; then
-                usrp_INCLUDES=`$PKG_CONFIG --cflags-only-I usrp`
-               usrp_LA=$USRP_LIBS
-               passed=no
-               PKG_CHECK_MODULES(USRP_INBAND, usrp-inband, passed=with,
-                   AC_MSG_RESULT([Component usrp-inband: PKGCONFIG cannot find info]))
-                if test x$passed = xwith; then
-                    usrp_inband_INCLUDES=`$PKG_CONFIG --cflags-only-I usrp-inband`
-                   usrp_inband_LA=$USRP_INBAND_LIBS
-               fi
-            fi
-       fi
-    fi
-    dnl if $passed = with, then "--with" worked; ignore the "--enable" stuff
-    dnl otherwise, $passed = no; check the "--enable" stuff
-    if test x$passed = xno; then
-        AC_CONFIG_FILES([ \
-           usrp/Makefile \
-           usrp/usrp.pc \
-           usrp/usrp-inband.pc \
-            usrp/usrp.iss \
-            usrp/doc/Doxyfile \
-            usrp/doc/Makefile \
-            usrp/doc/other/Makefile \
-            usrp/host/Makefile \
-            usrp/host/misc/Makefile \
-            usrp/host/lib/Makefile \
-            usrp/host/lib/inband/Makefile \
-            usrp/host/lib/legacy/Makefile \
-            usrp/host/lib/legacy/std_paths.h \
-            usrp/host/swig/Makefile \
-            usrp/host/apps/Makefile \
-            usrp/host/apps-inband/Makefile \
-            usrp/firmware/Makefile \
-            usrp/firmware/include/Makefile \
-            usrp/firmware/lib/Makefile \
-            usrp/firmware/src/Makefile \
-            usrp/firmware/src/common/Makefile \
-            usrp/firmware/src/usrp2/Makefile \
-            usrp/fpga/Makefile \
-            usrp/fpga/rbf/Makefile \
-        ])
+    GRC_ENABLE(usrp)
+
+    GRC_WITH(usrp)
+
+    dnl Don't do usrp if gruel is skipped
+    GRC_CHECK_DEPENDENCY(usrp, gruel)
 
-        # gnulib.
-        # FIXME: this needs to fail gracefully and continue, not implemented yet
+    dnl Make sure the fast usb technique is set, OS dependent.
+    dnl This is always performed, since it puts out CLI flags.
+    USRP_SET_FUSB_TECHNIQUE(${enable_usrp})
+
+    dnl If execution gets to here, $passed will be:
+    dnl   with : if the --with code didn't error out
+    dnl   yes  : if the --enable code passed muster and all dependencies are met
+    dnl   no   : otherwise
+    if test $passed = yes; then
+        dnl gnulib.
+        dnl FIXME: this needs to fail gracefully and continue, not implemented yet
         UTILS_FUNC_MKSTEMP
 
-        # These checks don't fail
+        dnl These checks don't fail
         AC_C_BIGENDIAN
         AC_CHECK_HEADERS([byteswap.h linux/compiler.h])
         AC_CHECK_FUNCS([getrusage sched_setscheduler pthread_setschedparam])
         AC_CHECK_FUNCS([sigaction snprintf])
 
-       # There are 2 pkg-config files; the one for usrp requires omnithread
-       # for Darwin only.
-       case "$host_os" in
-           darwin*)
-               # for usrp.pc.in
-               usrp_darwin_omnithread_pc_requires="gnuradio-omnithread"
-               usrp_darwin_omnithread_pc_la="-lgromnithread"
-               ;;
-           *)
-               # for usrp.pc.in (blanks)
-               usrp_darwin_omnithread_pc_requires=""
-               usrp_darwin_omnithread_pc_la=""
-               ;;
-        esac
-        passed=yes
-       # Don't do usrp if omnithread, mblock, or pmt skipped
-       if test x$omnithread_skipped = xyes; then
-            AC_MSG_RESULT([Component usrp requires omnithread, which is not being built or specified via pre-installed files.])
-           passed=no
-       fi
-        if test x$mblock_skipped = xyes; then
-            AC_MSG_RESULT([Component usrp requires mblock, which is not being built or specified via pre-installed files.])
-            passed=no
-        fi
-        if test x$pmt_skipped = xyes; then
-            AC_MSG_RESULT([Component usrp requires pmt, which is not being built or specified via pre-installed files.])
-            passed=no
-        fi
-       # Don't do mblock if guile not available (inband requires it)
-       AC_PATH_PROG(GUILE,guile)
-       if test "$GUILE" = "" ; then
-           AC_MSG_RESULT([Component mblock requires guile, which was not found.])
-           passed=no
-       fi
-        USRP_LIBUSB([],[passed=no;AC_MSG_RESULT([Unable to configure USB dependency.])])
-        USRP_SET_FUSB_TECHNIQUE([],[passed=no;AC_MSG_RESULT([Unable to set fast USB technique.])])
-        USRP_SDCC([2.4.0],[],[passed=no;AC_MSG_RESULT([Unable to find firmware compiler.])])
+       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.])])
 
-       usrp_INCLUDES="-I\${abs_top_srcdir}/usrp/host/lib/legacy \
+       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.])])
+    fi
+    if test $passed != with; then
+       dnl how and where to find INCLUDES and LA
+       usrp_INCLUDES=" \
+               -I\${abs_top_srcdir}/usrp/host/include \
+               -I\${abs_top_builddir}/usrp/host/include \
                -I\${abs_top_srcdir}/usrp/firmware/include"
-        usrp_LA="\${abs_top_builddir}/usrp/host/lib/legacy/libusrp.la"
-       usrp_inband_INCLUDES="-I\${abs_top_srcdir}/usrp/host/lib/inband"
-       usrp_inband_LA="\${abs_top_builddir}/usrp/host/lib/inband/libusrp_inband.la"
+        usrp_LA="\${abs_top_builddir}/usrp/host/lib/libusrp.la"
     fi
 
-    GRC_BUILD_CONDITIONAL([usrp])
+    AC_CONFIG_FILES([ \
+       usrp/Makefile \
+       usrp/usrp.pc \
+        usrp/usrp.iss \
+        usrp/doc/Doxyfile \
+        usrp/doc/Makefile \
+        usrp/doc/other/Makefile \
+        usrp/host/Makefile \
+       usrp/host/include/Makefile \
+       usrp/host/include/usrp/Makefile \
+        usrp/host/misc/Makefile \
+        usrp/host/lib/Makefile \
+        usrp/host/lib/std_paths.h \
+        usrp/host/swig/Makefile \
+        usrp/host/apps/Makefile \
+        usrp/firmware/Makefile \
+        usrp/firmware/include/Makefile \
+        usrp/firmware/lib/Makefile \
+        usrp/firmware/src/Makefile \
+        usrp/firmware/src/common/Makefile \
+        usrp/firmware/src/usrp2/Makefile \
+        usrp/fpga/Makefile \
+        usrp/fpga/rbf/Makefile \
+        usrp/fpga/rbf/rev2/Makefile \
+        usrp/fpga/rbf/rev4/Makefile \
+    ])
 
-    AC_SUBST(usrp_INCLUDES)
-    AC_SUBST(usrp_LA)
-    AC_SUBST(usrp_inband_INCLUDES)
-    AC_SUBST(usrp_inband_LA)
-    AC_SUBST(usrp_darwin_omnithread_pc_requires)
-    AC_SUBST(usrp_darwin_omnithread_pc_la)
+    GRC_BUILD_CONDITIONAL(usrp)
 ])