howto: update m4 files to match latest master
authorJohnathan Corgan <jcorgan@corganenterprises.com>
Tue, 3 Nov 2009 16:29:52 +0000 (08:29 -0800)
committerJohnathan Corgan <jcorgan@corganenterprises.com>
Tue, 3 Nov 2009 16:29:52 +0000 (08:29 -0800)
gr-howto-write-a-block/config/gr_fortran.m4
gr-howto-write-a-block/config/gr_pwin32.m4
gr-howto-write-a-block/config/gr_python.m4
gr-howto-write-a-block/config/gr_set_md_cpu.m4
gr-howto-write-a-block/config/lf_warnings.m4
gr-howto-write-a-block/config/usrp_fusb_tech.m4

index b5b0470f45c2ce78cb525490bf56d32b0548f140..033ef0307820e4987a2be810a9acc54e4f5a45bc 100644 (file)
@@ -29,4 +29,5 @@ AC_DEFUN([GR_FORTRAN],[
         AC_PROG_F77
         AC_F77_LIBRARY_LDFLAGS
     fi
+    AC_PROG_CC dnl bug fix to restore $ac_ext
 ])
index 7b99cba6b7301de4f0c2720ab8d096cfd6e85b91..495e9dd4d39dba2246bbe9a48ef9fbd6715c2ec6 100644 (file)
@@ -99,6 +99,9 @@ struct timespec {
        long    tv_nsec;
 };
 #endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 static inline int nanosleep(const struct timespec *req, struct timespec *rem) { return usleep(req->tv_sec*1000000+req->tv_nsec/1000); }
 #endif
 
index 6c862bba397b2516ef92f92c5f8a403ab8a7d2c7..43ccfc01575f5e0c53cab03a12f603e92c10c64b 100644 (file)
@@ -123,6 +123,50 @@ print path
              ;;
            esac
 
+           case $host_os in
+                *mingw* )
+             # Python 2.5 requires ".pyd" instead of ".dll" for extensions
+             PYTHON_LDFLAGS="-shrext .pyd ${PYTHON_LDFLAGS}"
+           esac
+
            AC_SUBST(PYTHON_LDFLAGS)
        fi
 ])
+
+# PYTHON_CHECK_MODULE
+#
+# Determines if a particular Python module can be imported
+#
+# $1 - module name
+# $2 - module description
+# $3 - action if found
+# $4 - action if not found
+# $5 - test command
+
+AC_DEFUN([PYTHON_CHECK_MODULE],[
+    AC_MSG_CHECKING([for $2])
+    dnl ########################################
+    dnl # import and test checking
+    dnl ########################################
+    if test "$5"; then
+        python_cmd='
+try:
+    import $1
+    assert $5
+except: exit(1)'
+    dnl ########################################
+    dnl # import checking only
+    dnl ########################################
+    else
+        python_cmd='
+try: import $1
+except: exit(1)'
+    fi
+    if ! $PYTHON -c "$python_cmd" 2> /dev/null; then
+        AC_MSG_RESULT([no])
+        $4
+    else
+        AC_MSG_RESULT([yes])
+        $3
+    fi
+])
index b9c570eded395c28cbe3a36638cb6088df37776d..7ebf88a66428d73309c626e6467686d43bed9457 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl Copyright 2003,2008 Free Software Foundation, Inc.
+dnl Copyright 2003,2008,2009 Free Software Foundation, Inc.
 dnl 
 dnl This file is part of GNU Radio
 dnl 
@@ -19,20 +19,89 @@ dnl the Free Software Foundation, Inc., 51 Franklin Street,
 dnl Boston, MA 02110-1301, USA.
 dnl 
 
+AC_DEFUN([_TRY_ADD_ALTIVEC],
+[
+  LF_CHECK_CC_FLAG([-mabi=altivec -maltivec])
+  LF_CHECK_CXX_FLAG([-mabi=altivec -maltivec])
+])
+
+AC_DEFUN([_FIND_ARM_ISA],
+[
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+  [[#ifndef __ARM_ARCH_5__
+    #error "Not armv5"
+    #endif
+  ]])],
+    [is_armv5=yes],
+    [is_armv5=no])
+
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+  [[#ifndef __ARM_ARCH_7A__
+    #error "Not armv7-a"
+    #endif
+  ]])],
+    [is_armv7_a=yes],
+    [is_armv7_a=no])
+
+])
+
 AC_DEFUN([GR_SET_MD_CPU],[
   AC_REQUIRE([AC_CANONICAL_HOST])
   AC_ARG_WITH(md-cpu,
-       [  --with-md-cpu=ARCH      set machine dependent speedups (auto)],
+       AC_HELP_STRING([--with-md-cpu=ARCH],[set machine dependent speedups (auto)]),
                [cf_with_md_cpu="$withval"],
-               [cf_with_md_cpu="$host_cpu"])
-
-  AC_MSG_CHECKING([for machine dependent speedups])
+               [
+  dnl see if the user has specified --host or --build, via 'cross_compiling'
+  if test "$cross_compiling" != no; then
+    dnl when cross-compiling, because the user specified it either via
+    dnl --target or --build, just keep the user's specs & hope for the best.
+    cf_with_md_cpu="$host_cpu"
+  else
+    dnl when the user didn't specify --target or --build, on Darwin 10
+    dnl (OSX 10.6.0 and .1) and GNU libtoool 2.2.6, 'configure' doesn't
+    dnl figure out the CPU type correctly, so do it by hand here using
+    dnl the sizeof (void*): if 4 then use i386, and otherwise use x86_64.
+    case "$host_os" in
+     *darwin*10*)
+      AC_CHECK_SIZEOF(void*)
+      if test "$ac_cv_sizeof_voidp" = 4; then
+       cf_with_md_cpu="i386"
+      else
+       cf_with_md_cpu="x86_64"
+      fi
+      ;;
+     *)
+      cf_with_md_cpu="$host_cpu"
+      ;;
+    esac
+  fi
+  ])
   case "$cf_with_md_cpu" in
    x86 | i[[3-7]]86)   MD_CPU=x86      MD_SUBCPU=x86 ;;
    x86_64)             MD_CPU=x86      MD_SUBCPU=x86_64 ;;
    powerpc*)            MD_CPU=powerpc ;;
+   arm)
+       _FIND_ARM_ISA
+       if test $is_armv5 = yes; then MD_CPU=armv5;
+       elif test $is_armv7_a = yes; then MD_CPU=armv7_a;
+       else MD_CPU=generic; fi
+       ;;
    *)                  MD_CPU=generic ;;
   esac
+
+  AC_ARG_ENABLE(altivec,
+    AC_HELP_STRING([--enable-altivec],[enable altivec on PowerPC (yes)]),
+    [ if test $MD_CPU = powerpc; then
+        case "$enableval" in
+          (no)  MD_CPU=generic ;;
+          (yes) _TRY_ADD_ALTIVEC ;;
+          (*) AC_MSG_ERROR([Invalid argument ($enableval) to --enable-altivec]) ;;
+        esac
+      fi],
+    [ if test $MD_CPU = powerpc; then _TRY_ADD_ALTIVEC fi])
+
+
+  AC_MSG_CHECKING([for machine dependent speedups])
   AC_MSG_RESULT($MD_CPU)
   AC_SUBST(MD_CPU)
   AC_SUBST(MD_SUBCPU) 
@@ -40,5 +109,7 @@ AC_DEFUN([GR_SET_MD_CPU],[
   AM_CONDITIONAL(MD_CPU_x86,     test "$MD_CPU" = "x86")
   AM_CONDITIONAL(MD_SUBCPU_x86_64,  test "$MD_SUBCPU" = "x86_64")
   AM_CONDITIONAL(MD_CPU_powerpc, test "$MD_CPU" = "powerpc")
+  AM_CONDITIONAL(MD_CPU_armv5, test "$MD_CPU" = "armv5")
+  AM_CONDITIONAL(MD_CPU_armv7_a, test "$MD_CPU" = "armv7_a")
   AM_CONDITIONAL(MD_CPU_generic, test "$MD_CPU" = "generic")
 ])
index 4e2ca9111736a862f029f9e21d3117f16325f945..d40c77f14d56206e56334727bc35d438a03cbece 100644 (file)
@@ -1,4 +1,5 @@
 dnl Copyright (C) 1988 Eleftherios Gkioulekas <lf@amath.washington.edu>
+dnl Copyright (C) 2009 Free Software Foundation, Inc.
 dnl  
 dnl This program is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -21,7 +22,7 @@ dnl distribution terms that you use for the rest of that program.
 
 # --------------------------------------------------------------------------
 # Check whether the C++ compiler accepts a certain flag
-# If it does it adds the flag to CXXFLAGS
+# If it does it adds the flag to lf_CXXFLAGS
 # If it does not then it returns an error to lf_ok
 # Usage:
 #   LF_CHECK_CXX_FLAG(-flag1 -flag2 -flag3 ...)
@@ -34,18 +35,19 @@ AC_DEFUN([LF_CHECK_CXX_FLAG],[
     AC_MSG_CHECKING([whether $CXX accepts $i])
     if test -z "`${CXX} $i -c conftest.cc 2>&1`"
     then
-      CXXFLAGS="${CXXFLAGS} $i"
+      lf_CXXFLAGS="${lf_CXXFLAGS} $i"
       AC_MSG_RESULT(yes)
     else
       AC_MSG_RESULT(no)
     fi
   done
   rm -f conftest.cc conftest.o
+  AC_SUBST(lf_CXXFLAGS)
 ])
 
 # --------------------------------------------------------------------------
 # Check whether the C compiler accepts a certain flag
-# If it does it adds the flag to CFLAGS
+# If it does it adds the flag to lf_CFLAGS
 # If it does not then it returns an error to lf_ok
 # Usage:
 #  LF_CHECK_CC_FLAG(-flag1 -flag2 -flag3 ...)
@@ -58,18 +60,19 @@ AC_DEFUN([LF_CHECK_CC_FLAG],[
     AC_MSG_CHECKING([whether $CC accepts $i])
     if test -z "`${CC} $i -c conftest.c 2>&1`"
     then
-      CFLAGS="${CFLAGS} $i"
+      lf_CFLAGS="${lf_CFLAGS} $i"
       AC_MSG_RESULT(yes)
     else
       AC_MSG_RESULT(no)
     fi
   done
   rm -f conftest.c conftest.o
+  AC_SUBST(lf_CFLAGS)
 ])
 
 # --------------------------------------------------------------------------
 # Check whether the Fortran compiler accepts a certain flag
-# If it does it adds the flag to FFLAGS
+# If it does it adds the flag to lf_FFLAGS
 # If it does not then it returns an error to lf_ok
 # Usage:
 #  LF_CHECK_F77_FLAG(-flag1 -flag2 -flag3 ...)
@@ -87,42 +90,32 @@ EOF
     AC_MSG_CHECKING([whether $F77 accepts $i])
     if test -z "`${F77} $i -c conftest.f 2>&1`"
     then
-      FFLAGS="${FFLAGS} $i"
+      lf_FFLAGS="${lf_FFLAGS} $i"
       AC_MSG_RESULT(yes)  
     else
       AC_MSG_RESULT(no)
     fi
   done
   rm -f conftest.f conftest.o
+  AC_SUBST(lf_FFLAGS)
 ])
 
 # ----------------------------------------------------------------------
-# Provide the configure script with an --with-warnings option that
-# turns on warnings. Call this command AFTER you have configured ALL your
-# compilers. 
+# Enable compiler warnings. 
+# Call this command AFTER you have configured ALL your compilers. 
 # ----------------------------------------------------------------------
 
 AC_DEFUN([LF_SET_WARNINGS],[
-  dnl Check for --with-warnings
-  AC_MSG_CHECKING([whether user wants warnings])
-  AC_ARG_WITH(warnings,
-              [  --with-warnings         Turn on warnings],
-              [ lf_warnings=yes ], [ lf_warnings=no ])
-  lf_warnings=yes # hard code for now -eb
-  AC_MSG_RESULT($lf_warnings)
-  
   dnl Warnings for the two main compilers
-  cc_warning_flags="-Wall"
+  dnl add -Wextra when you're got time to fix a bunch of them ;-)
+  cc_warning_flags="-Wall -Werror-implicit-function-declaration"
   cxx_warning_flags="-Wall -Woverloaded-virtual"
-  if test $lf_warnings = yes
+  if test -n "${CC}"
   then
-    if test -n "${CC}"
-    then
-      LF_CHECK_CC_FLAG($cc_warning_flags)
-    fi
-    if test -n "${CXX}" 
-    then
-      LF_CHECK_CXX_FLAG($cxx_warning_flags)
-    fi
+    LF_CHECK_CC_FLAG($cc_warning_flags)
+  fi
+  if test -n "${CXX}" 
+  then
+    LF_CHECK_CXX_FLAG($cxx_warning_flags)
   fi
 ])
index db857249b0d0f126b74f367afb795551bd0631e5..b99cf243207c43ba9210732e7346172d0c994a93 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl Copyright 2003,2008 Free Software Foundation, Inc.
+dnl Copyright 2003,2008,2009 Free Software Foundation, Inc.
 dnl 
 dnl This file is part of GNU Radio
 dnl 
@@ -25,6 +25,8 @@ dnl
 #   ""  : do these tests
 
 AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[
+  req_libusb1=no
+  USE_LIBUSB1=0
   AC_ARG_WITH([fusb-tech],
               AC_HELP_STRING([--with-fusb-tech=OS],
                             [Set fast USB technique (default=auto)]),
@@ -32,6 +34,11 @@ AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[
              [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
+         USE_LIBUSB1=1
+          ;;
         linux*)
           AC_CHECK_HEADER([linux/usbdevice_fs.h],
                          [x_have_usbdevice_fs_h=yes],
@@ -70,5 +77,11 @@ AC_DEFUN([USRP_SET_FUSB_TECHNIQUE],[
   AM_CONDITIONAL(FUSB_TECH_win32,    test x$FUSB_TECH = xwin32)
   AM_CONDITIONAL(FUSB_TECH_generic,  test x$FUSB_TECH = xgeneric)
   AM_CONDITIONAL(FUSB_TECH_linux,    test x$FUSB_TECH = xlinux)
+  AM_CONDITIONAL(FUSB_TECH_libusb1,  test x$FUSB_TECH = xlibusb1)
   AM_CONDITIONAL(FUSB_TECH_ra_wb,    test x$FUSB_TECH = xra_wb)
+
+  AC_SUBST(USE_LIBUSB1)
+  AC_CONFIG_FILES([\
+       usrp/host/include/usrp/libusb_types.h \
+  ])
 ])