summaryrefslogtreecommitdiff
path: root/recipes/gnuradio
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gnuradio')
-rw-r--r--recipes/gnuradio/gnuradio-3.1.2/gcc43.patch900
-rw-r--r--recipes/gnuradio/gnuradio-3.1.2/no-trellis-doc.patch20
-rw-r--r--recipes/gnuradio/gnuradio.inc81
-rw-r--r--recipes/gnuradio/gnuradio/acinclude.m490
-rw-r--r--recipes/gnuradio/gnuradio/gnuradio-libusb.patch25
-rw-r--r--recipes/gnuradio/gnuradio/gnuradio-neon.patch943
-rw-r--r--recipes/gnuradio/gnuradio/no-trellis-doc.patch20
-rw-r--r--recipes/gnuradio/gnuradio/no-usrp2.patch12
-rw-r--r--recipes/gnuradio/gnuradio_3.0.4.bb8
-rw-r--r--recipes/gnuradio/gnuradio_3.1.2.bb10
-rw-r--r--recipes/gnuradio/gnuradio_3.1.3.bb8
-rw-r--r--recipes/gnuradio/gnuradio_svn.bb29
12 files changed, 2146 insertions, 0 deletions
diff --git a/recipes/gnuradio/gnuradio-3.1.2/gcc43.patch b/recipes/gnuradio/gnuradio-3.1.2/gcc43.patch
new file mode 100644
index 0000000000..e9e3aa4a80
--- /dev/null
+++ b/recipes/gnuradio/gnuradio-3.1.2/gcc43.patch
@@ -0,0 +1,900 @@
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_ccc.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_ccc.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_ccc.cc (revision 8292)
+@@ -39,4 +39,5 @@
+
+ #include <iostream>
++#include <string.h>
+
+ gr_fft_filter_ccc_sptr gr_make_fft_filter_ccc (int decimation, const std::vector<gr_complex> &taps)
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_fff.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_fff.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/gr_fft_filter_fff.cc (revision 8292)
+@@ -34,4 +34,5 @@
+
+ #include <iostream>
++#include <string.h>
+
+ gr_fft_filter_fff_sptr gr_make_fft_filter_fff (int decimation, const std::vector<float> &taps)
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccc.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccc.cc (revision 6574)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccc.cc (revision 8292)
+@@ -48,4 +48,5 @@
+ #include <random.h>
+ #include <malloc16.h>
++#include <string.h>
+
+ using std::vector;
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccf.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccf.cc (revision 6574)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_ccf.cc (revision 8292)
+@@ -48,4 +48,5 @@
+ #include <random.h>
+ #include <malloc16.h>
++#include <string.h>
+
+ using std::vector;
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fcc.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fcc.cc (revision 6574)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fcc.cc (revision 8292)
+@@ -47,4 +47,5 @@
+ #include <cppunit/TestAssert.h>
+ #include <random.h>
++#include <string.h>
+
+ using std::vector;
+Index: gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fff.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fff.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/filter/qa_gr_fir_fff.cc (revision 8292)
+@@ -33,4 +33,5 @@
+ #include <cppunit/TestAssert.h>
+ #include <random.h>
++#include <string.h>
+
+ using std::vector;
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_align_on_samplenumbers_ss.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <assert.h>
+ #include <stdexcept>
++#include <string.h>
+
+ //define ALIGN_ADVANCED_IMPLEMENTATION to have an alternative implementation of the align algoritm which exactly follows the align_interval spec.
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_bin_statistics_f.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_bin_statistics_f.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_bin_statistics_f.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_bin_statistics_f.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_bin_statistics_f_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_circular_file.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_circular_file.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_circular_file.cc (revision 8292)
+@@ -40,4 +40,6 @@
+
+ #include <algorithm>
++#include <stdio.h>
++#include <string.h>
+
+ static const int HEADER_SIZE = 4096;
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_delay.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_delay.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_delay.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_delay.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_delay_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_fake_channel_coder_pp.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <string.h>
+ #include <stdexcept>
++#include <string.h>
+
+ static const int PAD_VAL = 0xAA;
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vcc.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vcc.cc (revision 8244)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vcc.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <gri_fft.h>
+ #include <math.h>
++#include <string.h>
+
+ gr_fft_vcc_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vfc.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vfc.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_fft_vfc.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <math.h>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_framer_sink_1.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_framer_sink_1.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_framer_sink_1.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <cstdio>
+ #include <stdexcept>
++#include <string.h>
+
+ #define VERBOSE 0
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_head.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_head.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_head.cc (revision 8292)
+@@ -26,4 +26,5 @@
+ #include <gr_head.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_head::gr_head (size_t sizeof_stream_item, int nitems)
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_keep_one_in_n.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_keep_one_in_n.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_keep_one_in_n.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_keep_one_in_n.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_keep_one_in_n_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_log2_const.h
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_log2_const.h (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_log2_const.h (revision 8292)
+@@ -32,15 +32,15 @@
+ template<unsigned int k> static inline int gr_log2_const() { assert(0); return 0; }
+
+-template<> static inline int gr_log2_const<1>() { return 0; }
+-template<> static inline int gr_log2_const<2>() { return 1; }
+-template<> static inline int gr_log2_const<4>() { return 2; }
+-template<> static inline int gr_log2_const<8>() { return 3; }
+-template<> static inline int gr_log2_const<16>() { return 4; }
+-template<> static inline int gr_log2_const<32>() { return 5; }
+-template<> static inline int gr_log2_const<64>() { return 6; }
+-template<> static inline int gr_log2_const<128>() { return 7; }
+-template<> static inline int gr_log2_const<256>() { return 8; }
+-template<> static inline int gr_log2_const<512>() { return 9; }
+-template<> static inline int gr_log2_const<1024>(){ return 10; }
++template<> inline int gr_log2_const<1>() { return 0; }
++template<> inline int gr_log2_const<2>() { return 1; }
++template<> inline int gr_log2_const<4>() { return 2; }
++template<> inline int gr_log2_const<8>() { return 3; }
++template<> inline int gr_log2_const<16>() { return 4; }
++template<> inline int gr_log2_const<32>() { return 5; }
++template<> inline int gr_log2_const<64>() { return 6; }
++template<> inline int gr_log2_const<128>() { return 7; }
++template<> inline int gr_log2_const<256>() { return 8; }
++template<> inline int gr_log2_const<512>() { return 9; }
++template<> inline int gr_log2_const<1024>(){ return 10; }
+
+ #endif /* INCLUDED_GR_LOG2_CONST_H */
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_null_source.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_null_source.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_null_source.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_null_source.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_null_source::gr_null_source (size_t sizeof_stream_item)
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_packet_sink.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_packet_sink.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_packet_sink.cc (revision 8292)
+@@ -34,4 +34,5 @@
+ #include <stdexcept>
+ #include <gr_count_bits.h>
++#include <string.h>
+
+ #define VERBOSE 0
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_peak_detector2_fb.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_peak_detector2_fb.cc (revision 7324)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_peak_detector2_fb.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_peak_detector2_fb.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_peak_detector2_fb_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_correlator.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_correlator.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_correlator.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <stdexcept>
+ #include <gr_count_bits.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_framer.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_framer.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_simple_framer.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <assert.h>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_skiphead.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_skiphead.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_skiphead.cc (revision 8292)
+@@ -26,4 +26,5 @@
+ #include <gr_skiphead.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_skiphead::gr_skiphead (size_t itemsize, size_t nitems_to_skip)
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_mux.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_mux.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_mux.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_stream_mux.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ #define VERBOSE 0
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_streams.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_streams.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_streams.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_stream_to_streams.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_stream_to_streams_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_vector.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_vector.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_stream_to_vector.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_stream_to_vector.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_stream_to_vector_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_stream.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_stream.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_stream.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_streams_to_stream.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_streams_to_stream_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_vector.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_vector.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_streams_to_vector.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_streams_to_vector.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_streams_to_vector_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_test.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_test.cc (revision 7847)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_test.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <stdexcept>
+ #include <iostream>
++#include <string.h>
+
+ gr_test_sptr gr_make_test (const std::string &name,
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_throttle.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_throttle.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_throttle.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <stdio.h>
+ #include <math.h>
++#include <string.h>
+ #ifdef HAVE_TIME_H
+ #include <time.h>
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_stream.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_stream.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_stream.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_vector_to_stream.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_vector_to_stream_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_streams.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_streams.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/gr_vector_to_streams.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_vector_to_streams.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ gr_vector_to_streams_sptr
+Index: gnuradio/trunk/gnuradio-core/src/lib/general/malloc16.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gnuradio-core/src/lib/general/malloc16.c (revision 1313)
++++ gnuradio/trunk/gnuradio-core/src/lib/general/malloc16.c (revision 8292)
+@@ -8,4 +8,5 @@
+ #include "malloc16.h"
+ #include <string.h>
++#include <strings.h>
+
+ void *malloc16Align(int size){
+Index: gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.cc.t
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.cc.t (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_chunks_to_symbols_XX.cc.t (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <assert.h>
+ #include <iostream>
++#include <string.h>
+
+ @SPTR_NAME@
+Index: gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.cc.t
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.cc.t (revision 7587)
++++ gnuradio/trunk/gnuradio-core/src/lib/gengen/gr_peak_detector_XX.cc.t (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <@NAME@.h>
+ #include <gr_io_signature.h>
++#include <string.h>
+
+ @SPTR_NAME@
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_sink.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_sink.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_sink.cc (revision 8292)
+@@ -33,4 +33,5 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <stdio.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_source.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_source.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_descriptor_source.cc (revision 8292)
+@@ -33,4 +33,6 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <stdio.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_sink_base.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_sink_base.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_sink_base.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <stdio.h>
+
+ // win32 (mingw/msvc) specific
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_source.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_source.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_file_source.cc (revision 8292)
+@@ -32,4 +32,5 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <stdio.h>
+
+ // win32 (mingw/msvc) specific
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_sink.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_sink.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_sink.cc (revision 8292)
+@@ -33,4 +33,5 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_source.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_source.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_message_source.cc (revision 8292)
+@@ -33,4 +33,5 @@
+ #include <fcntl.h>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_sink.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_sink.cc (revision 8097)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_sink.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #if defined(HAVE_SOCKET)
+ #include <netdb.h>
++#include <stdio.h>
+ typedef void* optval_t;
+ #else
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_source.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_source.cc (revision 8097)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gr_udp_source.cc (revision 8292)
+@@ -28,4 +28,6 @@
+ #include <stdexcept>
+ #include <errno.h>
++#include <stdio.h>
++#include <string.h>
+ #if defined(HAVE_SOCKET)
+ #include <netdb.h>
+Index: gnuradio/trunk/gnuradio-core/src/lib/io/gri_logger.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/io/gri_logger.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/io/gri_logger.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <stdexcept>
+ #include <boost/weak_ptr.hpp>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/decode_rs.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gnuradio-core/src/lib/reed-solomon/decode_rs.c (revision 605)
++++ gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/decode_rs.c (revision 8292)
+@@ -9,4 +9,5 @@
+
+ #include <string.h>
++#include <strings.h>
+
+ #define NULL ((void *)0)
+Index: gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/encode_rs.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gnuradio-core/src/lib/reed-solomon/encode_rs.c (revision 605)
++++ gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/encode_rs.c (revision 8292)
+@@ -4,4 +4,5 @@
+ */
+ #include <string.h>
++#include <strings.h>
+
+ #ifdef FIXED
+Index: gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/exercise.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gnuradio-core/src/lib/reed-solomon/exercise.c (revision 605)
++++ gnuradio/trunk/gnuradio-core/src/lib/reed-solomon/exercise.c (revision 8292)
+@@ -14,4 +14,5 @@
+ #include <stdlib.h>
+ #include <string.h>
++#include <strings.h>
+
+ #ifdef FIXED
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_dispatcher.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_dispatcher.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_dispatcher.cc (revision 8292)
+@@ -28,4 +28,5 @@
+ #include <math.h>
+ #include <errno.h>
++#include <stdio.h>
+
+ #ifdef HAVE_SELECT
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_error_handler.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_error_handler.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_error_handler.cc (revision 8292)
+@@ -49,4 +49,5 @@
+ #include <stdexcept>
+ #include <unistd.h>
++#include <stdio.h>
+
+ #ifdef HAVE_IO_H
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_local_sighandler.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_local_sighandler.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_local_sighandler.cc (revision 8292)
+@@ -28,4 +28,5 @@
+ #include <stdexcept>
+ #include <stdio.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_message.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_message.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_message.cc (revision 8292)
+@@ -26,4 +26,5 @@
+ #include <gr_message.h>
+ #include <assert.h>
++#include <string.h>
+
+ static long s_ncurrently_allocated = 0;
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_preferences.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_preferences.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_preferences.cc (revision 8292)
+@@ -32,4 +32,5 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_realtime.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_realtime.cc (revision 6427)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_realtime.cc (revision 8292)
+@@ -62,4 +62,5 @@
+
+ #include <pthread.h>
++#include <stdio.h>
+
+ gr_rt_status_t
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_scheduler_thread.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_scheduler_thread.cc (revision 6201)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_scheduler_thread.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <gr_scheduler_thread.h>
+ #include <iostream>
++#include <stdio.h>
+
+ #ifdef HAVE_SIGNAL_H
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <gr_preferences.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <gr_local_sighandler.h>
+
+Index: gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_mmap_tmpfile.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_mmap_tmpfile.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/lib/runtime/gr_vmcircbuf_mmap_tmpfile.cc (revision 8292)
+@@ -41,5 +41,4 @@
+ #include <gr_pagesize.h>
+ #include <gr_tmp_path.h>
+-
+
+ gr_vmcircbuf_mmap_tmpfile::gr_vmcircbuf_mmap_tmpfile (int size)
+Index: gnuradio/trunk/gnuradio-core/src/tests/benchmark_nco.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/tests/benchmark_nco.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/tests/benchmark_nco.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <gr_nco.h>
+ #include <gr_fxpt_nco.h>
++#include <string.h>
+
+ #define ITERATIONS 20000000
+Index: gnuradio/trunk/gnuradio-core/src/tests/benchmark_vco.cc
+===================================================================
+--- gnuradio/trunk/gnuradio-core/src/tests/benchmark_vco.cc (revision 6044)
++++ gnuradio/trunk/gnuradio-core/src/tests/benchmark_vco.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <gr_vco.h>
+ #include <gr_fxpt_vco.h>
++#include <string.h>
+
+ #define ITERATIONS 5000000
+Index: gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc (revision 8292)
+@@ -28,4 +28,5 @@
+ #include <gr_io_signature.h>
+ #include <atsc_consts.h>
++#include <string.h>
+
+ // Input rate changed from 20MHz to 19.2 to support usrp at 3 * 6.4MHz
+Index: gnuradio/trunk/gr-atsc/src/lib/atsci_reed_solomon.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsci_reed_solomon.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsci_reed_solomon.cc (revision 8292)
+@@ -23,4 +23,5 @@
+ #include <atsci_reed_solomon.h>
+ #include <assert.h>
++#include <string.h>
+
+ extern "C" {
+Index: gnuradio/trunk/gr-atsc/src/lib/atsci_sliding_correlator.h
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsci_sliding_correlator.h (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsci_sliding_correlator.h (revision 8292)
+@@ -20,8 +20,9 @@
+ * Boston, MA 02110-1301, USA.
+ */
++#include <string>
++#include <string.h>
++
+ #ifndef _ATSC_SLIDING_CORRELATOR_H_
+ #define _ATSC_SLIDING_CORRELATOR_H_
+-
+-#include <string>
+
+ extern const unsigned char atsc_pn511[511];
+Index: gnuradio/trunk/gr-atsc/src/lib/atsci_sssr.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsci_sssr.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsci_sssr.cc (revision 8292)
+@@ -28,4 +28,5 @@
+ #include <atsci_diag_output.h>
+ #include <gr_math.h>
++#include <stdio.h>
+
+ /*
+Index: gnuradio/trunk/gr-atsc/src/lib/atsci_trellis_encoder.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsci_trellis_encoder.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsci_trellis_encoder.cc (revision 8292)
+@@ -24,4 +24,5 @@
+ #include <assert.h>
+ #include <stdio.h>
++#include <string.h>
+
+ static const int DIBITS_PER_BYTE = 4;
+Index: gnuradio/trunk/gr-atsc/src/lib/atsci_viterbi_decoder.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/atsci_viterbi_decoder.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/atsci_viterbi_decoder.cc (revision 8292)
+@@ -26,4 +26,5 @@
+ #include <cmath>
+ #include "atsci_viterbi_mux.cc"
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-atsc/src/lib/interleaver_fifo.h
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/interleaver_fifo.h (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/interleaver_fifo.h (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <interleaver_fifo.h>
+ #include <string.h>
++#include <strings.h>
+
+ /*!
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_data_interleaver.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_data_interleaver.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_data_interleaver.cc (revision 8292)
+@@ -23,4 +23,5 @@
+ #include <cppunit/TestAssert.h>
+ #include <qa_atsci_data_interleaver.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_equalizer_nop.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_equalizer_nop.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_equalizer_nop.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <assert.h>
+ #include <iostream>
++#include <string.h>
+
+ using std::cerr;
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_fake_single_viterbi.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_fake_single_viterbi.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_fake_single_viterbi.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <qa_atsci_fake_single_viterbi.h>
+ #include <random.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_randomizer.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_randomizer.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_randomizer.cc (revision 8292)
+@@ -24,4 +24,5 @@
+
+ #include <cppunit/TestAssert.h>
++#include <string.h>
+
+ static unsigned int expected_initial_states[] = {
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_reed_solomon.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_reed_solomon.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_reed_solomon.cc (revision 8292)
+@@ -30,4 +30,5 @@
+ #include <atsci_reed_solomon.h>
+ #include <qa_atsci_reed_solomon.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_single_viterbi.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_single_viterbi.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_single_viterbi.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <qa_atsci_single_viterbi.h>
+ #include <random.h>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-atsc/src/lib/qa_atsci_trellis_encoder.cc
+===================================================================
+--- gnuradio/trunk/gr-atsc/src/lib/qa_atsci_trellis_encoder.cc (revision 6044)
++++ gnuradio/trunk/gr-atsc/src/lib/qa_atsci_trellis_encoder.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include <stdlib.h>
+ #include <time.h>
++#include <string.h>
+
+ #define NELEM(x) (sizeof (x) / sizeof (x[0]))
+Index: gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_sink.cc
+===================================================================
+--- gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_sink.cc (revision 6044)
++++ gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_sink.cc (revision 8292)
+@@ -34,4 +34,5 @@
+ #include <gri_portaudio.h>
+ #include <omnithread.h>
++#include <string.h>
+
+ #define LOGGING 0 // define to 0 or 1
+Index: gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_source.cc
+===================================================================
+--- gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_source.cc (revision 6044)
++++ gnuradio/trunk/gr-audio-portaudio/src/audio_portaudio_source.cc (revision 8292)
+@@ -34,4 +34,5 @@
+ #include <gri_portaudio.h>
+ #include <omnithread.h>
++#include <string.h>
+
+ #define LOGGING 0 // define to 0 or 1
+Index: gnuradio/trunk/gr-gsm-fr-vocoder/src/lib/gsm/code.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gr-gsm-fr-vocoder/src/lib/gsm/code.c (revision 968)
++++ gnuradio/trunk/gr-gsm-fr-vocoder/src/lib/gsm/code.c (revision 8292)
+@@ -20,4 +20,5 @@
+ #include "gsm.h"
+ #include "proto.h"
++#include <string.h>
+
+ /*
+Index: gnuradio/trunk/gr-gsm-fr-vocoder/src/lib/gsm/gsm_create.c
+===================================================================
+--- import/gnuradio-savannah-20060726/trunk/gr-gsm-fr-vocoder/src/lib/gsm/gsm_create.c (revision 968)
++++ gnuradio/trunk/gr-gsm-fr-vocoder/src/lib/gsm/gsm_create.c (revision 8292)
+@@ -31,4 +31,5 @@
+ #include "private.h"
+ #include "proto.h"
++#include <strings.h>
+
+ gsm gsm_create P0()
+Index: gnuradio/trunk/gr-trellis/src/lib/fsm.cc
+===================================================================
+--- gnuradio/trunk/gr-trellis/src/lib/fsm.cc (revision 6044)
++++ gnuradio/trunk/gr-trellis/src/lib/fsm.cc (revision 8292)
+@@ -27,4 +27,5 @@
+ #include <stdexcept>
+ #include <cmath>
++#include <stdlib.h>
+ #include "base.h"
+ #include "fsm.h"
+Index: gnuradio/trunk/gr-trellis/src/lib/fsm.h
+===================================================================
+--- gnuradio/trunk/gr-trellis/src/lib/fsm.h (revision 6044)
++++ gnuradio/trunk/gr-trellis/src/lib/fsm.h (revision 8292)
+@@ -25,4 +25,5 @@
+
+ #include <vector>
++#include <iosfwd>
+
+ /*!
+Index: gnuradio/trunk/gr-trellis/src/lib/trellis_permutation.cc
+===================================================================
+--- gnuradio/trunk/gr-trellis/src/lib/trellis_permutation.cc (revision 6044)
++++ gnuradio/trunk/gr-trellis/src/lib/trellis_permutation.cc (revision 8292)
+@@ -28,4 +28,5 @@
+ #include <gr_io_signature.h>
+ #include <iostream>
++#include <string.h>
+
+ trellis_permutation_sptr
+Index: gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_s.cc
+===================================================================
+--- gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_s.cc (revision 6044)
++++ gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_s.cc (revision 8292)
+@@ -36,4 +36,5 @@
+ #include <iostream>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_uc.cc
+===================================================================
+--- gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_uc.cc (revision 6044)
++++ gnuradio/trunk/gr-video-sdl/src/video_sdl_sink_uc.cc (revision 8292)
+@@ -36,4 +36,5 @@
+ #include <iostream>
+ #include <stdexcept>
++#include <string.h>
+
+
+Index: gnuradio/trunk/usrp/host/apps/usrper.cc
+===================================================================
+--- gnuradio/trunk/usrp/host/apps/usrper.cc (revision 6044)
++++ gnuradio/trunk/usrp/host/apps/usrper.cc (revision 8292)
+@@ -31,4 +31,5 @@
+ #include "usrp_prims.h"
+ #include "usrp_spi_defs.h"
++#include <string.h>
+
+ char *prog_name;
+Index: gnuradio/trunk/usrp/host/lib/legacy/fusb_win32.cc
+===================================================================
+--- gnuradio/trunk/usrp/host/lib/legacy/fusb_win32.cc (revision 6044)
++++ gnuradio/trunk/usrp/host/lib/legacy/fusb_win32.cc (revision 8292)
+@@ -29,4 +29,5 @@
+ #include <assert.h>
+ #include <stdexcept>
++#include <string.h>
+
+ static const int MAX_BLOCK_SIZE = fusb_sysconfig::max_block_size();
+Index: gnuradio/trunk/usrp/host/lib/legacy/usrp_basic.cc
+===================================================================
+--- gnuradio/trunk/usrp/host/lib/legacy/usrp_basic.cc (revision 6044)
++++ gnuradio/trunk/usrp/host/lib/legacy/usrp_basic.cc (revision 8292)
+@@ -35,4 +35,5 @@
+ #include <math.h>
+ #include <ad9862.h>
++#include <string.h>
+
+ using namespace ad9862;
+Index: gnuradio/trunk/usrp/host/lib/legacy/usrp_local_sighandler.cc
+===================================================================
+--- gnuradio/trunk/usrp/host/lib/legacy/usrp_local_sighandler.cc (revision 6044)
++++ gnuradio/trunk/usrp/host/lib/legacy/usrp_local_sighandler.cc (revision 8292)
+@@ -33,4 +33,5 @@
+ #include <stdexcept>
+ #include <stdio.h>
++#include <string.h>
+
+ usrp_local_sighandler::usrp_local_sighandler (int signum,
+Index: gnuradio/trunk/usrp/host/lib/legacy/usrp_prims.cc
+===================================================================
+--- gnuradio/trunk/usrp/host/lib/legacy/usrp_prims.cc (revision 6044)
++++ gnuradio/trunk/usrp/host/lib/legacy/usrp_prims.cc (revision 8292)
+@@ -63,4 +63,5 @@
+
+ #include "std_paths.h"
++#include <stdio.h>
+
+ static char *
+Index: gnuradio/trunk/usrp/host/misc/getopt.c
+===================================================================
+--- gnuradio/trunk/usrp/host/misc/getopt.c (revision 6044)
++++ gnuradio/trunk/usrp/host/misc/getopt.c (revision 8292)
+@@ -53,4 +53,5 @@
+
+ #include <stdio.h>
++#include <string.h>
+
+ /* Comment out all this code if we are using the GNU C Library, and are not
diff --git a/recipes/gnuradio/gnuradio-3.1.2/no-trellis-doc.patch b/recipes/gnuradio/gnuradio-3.1.2/no-trellis-doc.patch
new file mode 100644
index 0000000000..a5c1b90bd2
--- /dev/null
+++ b/recipes/gnuradio/gnuradio-3.1.2/no-trellis-doc.patch
@@ -0,0 +1,20 @@
+--- /tmp/Makefile.am 2008-04-01 10:50:58.848945668 +0200
++++ gnuradio-3.1.2/usrp/Makefile.am 2008-04-01 10:51:06.095612812 +0200
+@@ -24,7 +24,7 @@
+ usrp.iss.in \
+ usrp.inf
+
+-SUBDIRS = host firmware fpga doc
++SUBDIRS = host firmware fpga
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = \
+--- /tmp/Makefile.am 2008-04-01 10:52:10.615605452 +0200
++++ gnuradio-3.1.2/gr-trellis/Makefile.am 2008-04-01 10:52:19.807923018 +0200
+@@ -21,5 +21,5 @@
+
+ include $(top_srcdir)/Makefile.common
+
+-SUBDIRS = src doc
++SUBDIRS = src
+
diff --git a/recipes/gnuradio/gnuradio.inc b/recipes/gnuradio/gnuradio.inc
new file mode 100644
index 0000000000..d406b504ad
--- /dev/null
+++ b/recipes/gnuradio/gnuradio.inc
@@ -0,0 +1,81 @@
+DESCRIPTION = "GNU Radio"
+SECTION = "apps"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "guile-native fftwf python virtual/libsdl alsa-lib jack boost cppunit sdcc-native swig-native python-numpy"
+
+inherit distutils-base autotools pkgconfig
+
+export BUILD_SYS
+export HOST_SYS=${MULTIMACH_TARGET_SYS}
+
+CXXFLAGS_powerpc += "-lstdc++"
+
+EXTRA_OECONF = " \
+ ${GR_CPU_SELECTION} \
+ --disable-gr-atsc \
+ --enable-gr-video-sdl \
+ --enable-gr-audio-alsa \
+ --enable-gr-audio-jack \
+ --enable-gr-audio-oss \
+ --enable-mblock \
+ --disable-html-docs \
+ --with-pythondir=/usr/lib/${PYTHON_DIR}/site-packages \
+ PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR} \
+"
+
+GR_CPU_SELECTION_armv7a = " --with-md-cpu=arm "
+
+do_configure_prepend() {
+ if [ -e ${WORKDIR}/acinclude.m4 ] ; then
+ cp ${WORKDIR}/acinclude.m4 ${S}
+ fi
+}
+
+do_configure_append() {
+ find ${S} -name Makefile | xargs sed -i s:'-I/usr/include':'-I${STAGING_INCDIR}':g
+}
+
+RDEPENDS_${PN} = "python-core python-audio python-threading python-codecs python-lang python-textutils \
+ python-shell python-pickle python-compiler python-pkgutil python-pydoc python-mmap \
+ python-netclient python-unittest python-difflib python-pprint python-numpy \
+"
+
+RDEPENDS_gnuradio-usrp = "python-core"
+
+PACKAGES =+ "\
+ libpmt libpmt-qa \
+ libmblock libmblock-qa \
+ libgr-audio-alsa libgr-audio-oss libgr-audio-jack\
+ libusrp libusrp-inband libusrp-inband-qa \
+ libgromnithread \
+ libgnuradio-core libgnuradio-core-qa \
+ gnuradio-usrp-dbg gnuradio-usrp gnuradio-examples \
+"
+
+FILES_gnuradio-examples = "${datadir}/gnuradio/examples"
+
+FILES_libpmt = "${libdir}/libpmt.so"
+FILES_libpmt-qa = "${libdir}/libpmt-qa.so"
+FILES_libmblock = "${libdir}/libmblock.so"
+FILES_libmblock-qa = "${libdir}/libmblock-qa.so"
+FILES_libgr-audio-alsa = "${libdir}/libgr_audio_alsa.so ${sysconfdir}/gnuradio/conf.d/gr-audio-alsa.conf"
+FILES_libgr-audio-oss = "${libdir}/libgr_audio_oss.so ${sysconfdir}/gnuradio/conf.d/gr-audio-oss.conf"
+FILES_libgr-audio-jack = "${libdir}/libgr_audio_jack.so ${sysconfdir}/gnuradio/conf.d/gr-audio-jack.conf"
+
+
+FILES_libusrp = "${libdir}/libusrp.so.*"
+FILES_libusrp-inband = "${libdir}/libusrp_inband.so.*"
+FILES_libusrp-inband-qa = "${libdir}/libusrp_inband-qa.so"
+FILES_libgnuradio-core = "${libdir}/libgnuradio-core.so.* ${sysconfdir}/gnuradio/conf.d/*core*"
+FILES_libgnuradio-core-qa = "${libdir}/libgnuradio-core-qa.so.*"
+FILES_libgromnithread = "${libdir}/libgromnithread.so*"
+
+FILES_${PN} += "${libdir}/python*/site-packages/gnuradio/*"
+FILES_${PN}-dbg += "${libdir}/python*/site-packages/gnuradio/.debug \
+ ${libdir}/python*/site-packages/gnuradio/*/.debug \
+ "
+
+FILES_gnuradio-usrp = "${libdir}/python*/site-packages/usrpm/* \
+ ${datadir}/usrp/*/*"
+FILES_gnuradio-usrp-dbg = "${libdir}/python*/site-packages/usrpm/.debug"
diff --git a/recipes/gnuradio/gnuradio/acinclude.m4 b/recipes/gnuradio/gnuradio/acinclude.m4
new file mode 100644
index 0000000000..53518fb2eb
--- /dev/null
+++ b/recipes/gnuradio/gnuradio/acinclude.m4
@@ -0,0 +1,90 @@
+## this one is commonly used with AM_PATH_PYTHONDIR ...
+dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
+dnl Check if a module containing a given symbol is visible to python.
+AC_DEFUN(AM_CHECK_PYMOD,
+[AC_REQUIRE([AM_PATH_PYTHON])
+py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
+AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
+AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
+ifelse([$2],[], [prog="
+import sys
+try:
+ import $1
+except ImportError:
+ sys.exit(1)
+except:
+ sys.exit(0)
+sys.exit(0)"], [prog="
+import $1
+$1.$2"])
+if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
+ then
+ eval "py_cv_mod_$py_mod_var=yes"
+ else
+ eval "py_cv_mod_$py_mod_var=no"
+ fi
+])
+py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
+if test "x$py_val" != xno; then
+ AC_MSG_RESULT(yes)
+ ifelse([$3], [],, [$3
+])dnl
+else
+ AC_MSG_RESULT(no)
+ ifelse([$4], [],, [$4
+])dnl
+fi
+])
+
+dnl a macro to check for ability to create python extensions
+dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
+dnl function also defines PYTHON_INCLUDES
+AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_MSG_CHECKING(for headers required to compile python extensions)
+dnl deduce PYTHON_INCLUDES
+AC_ARG_WITH(python-includes,
+ [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval)
+if test x$py_exec_prefix != x; then
+PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+else
+py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
+py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
+PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
+if test "$py_prefix" != "$py_exec_prefix"; then
+ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+fi
+fi
+AC_SUBST(PYTHON_INCLUDES)
+dnl check if the headers exist:
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
+AC_TRY_CPP([#include <Python.h>],dnl
+[AC_MSG_RESULT(found)
+$1],dnl
+[AC_MSG_RESULT(not found)
+$2])
+CPPFLAGS="$save_CPPFLAGS"
+])
+
+dnl
+dnl JH_ADD_CFLAG(FLAG)
+dnl checks whether the C compiler supports the given flag, and if so, adds
+dnl it to $CFLAGS. If the flag is already present in the list, then the
+dnl check is not performed.
+AC_DEFUN([JH_ADD_CFLAG],
+[
+case " $CFLAGS " in
+*@<:@\ \ @:>@$1@<:@\ \ @:>@*)
+ ;;
+*)
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+ AC_MSG_CHECKING([whether [$]CC understands $1])
+ AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
+ AC_MSG_RESULT($jh_has_option)
+ if test $jh_has_option = no; then
+ CFLAGS="$save_CFLAGS"
+ fi
+ ;;
+esac])
diff --git a/recipes/gnuradio/gnuradio/gnuradio-libusb.patch b/recipes/gnuradio/gnuradio/gnuradio-libusb.patch
new file mode 100644
index 0000000000..d3be6294b4
--- /dev/null
+++ b/recipes/gnuradio/gnuradio/gnuradio-libusb.patch
@@ -0,0 +1,25 @@
+diff -Nurd gnuradio-3.1.2.orig/usrp/host/lib/legacy/usrp_prims.cc gnuradio-3.1.2/usrp/host/lib/legacy/usrp_prims.cc
+--- gnuradio-3.1.2.orig/usrp/host/lib/legacy/usrp_prims.cc 2008-03-05 16:12:38.000000000 -0500
++++ gnuradio-3.1.2/usrp/host/lib/legacy/usrp_prims.cc 2008-07-12 08:04:09.000000000 -0400
+@@ -131,10 +131,18 @@
+ static struct usb_device *
+ dev_handle_to_dev (usb_dev_handle *udh)
+ {
++ struct list_head {
++ struct list_head *prev, *next;
++ };
++
+ struct usb_dev_handle_kludge {
+- int fd;
+- struct usb_bus *bus;
+- struct usb_device *device;
++ /* lock protects claimed_interfaces */
++ pthread_mutex_t lock;
++ unsigned long claimed_interfaces;
++
++ struct list_head list;
++ struct usb_device *device;
++ unsigned char os_priv[0];
+ };
+
+ return ((struct usb_dev_handle_kludge *) udh)->device;
diff --git a/recipes/gnuradio/gnuradio/gnuradio-neon.patch b/recipes/gnuradio/gnuradio/gnuradio-neon.patch
new file mode 100644
index 0000000000..3affda547f
--- /dev/null
+++ b/recipes/gnuradio/gnuradio/gnuradio-neon.patch
@@ -0,0 +1,943 @@
+Index: gnuradio-core/src/lib/runtime/gr_dispatcher.cc
+===================================================================
+--- gnuradio-core/src/lib/runtime/gr_dispatcher.cc (revision 9831)
++++ gnuradio-core/src/lib/runtime/gr_dispatcher.cc (working copy)
+@@ -28,6 +28,7 @@
+ #include <math.h>
+ #include <errno.h>
+ #include <stdio.h>
++#include <string.h>
+
+ #ifdef HAVE_SELECT
+ # ifdef HAVE_SYS_SELECT_H
+Index: gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.c
+===================================================================
+--- gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.c (revision 0)
++++ gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.c (revision 0)
+@@ -0,0 +1,85 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2008 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 this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#include <dotprod_fff_cortex_a8.h>
++
++/*!
++ * \param x any value
++ * \param pow2 must be a power of 2
++ * \returns \p x rounded down to a multiple of \p pow2.
++ */
++static inline size_t
++gr_p2_round_down(size_t x, size_t pow2)
++{
++ return x & -pow2;
++}
++
++
++#if 0
++
++float
++dotprod_fff_cortex_a8(const float *a, const float *b, size_t n)
++{
++ float sum = 0;
++ size_t i;
++ for (i = 0; i < n; i++){
++ sum += a[i] * b[i];
++ }
++ return sum;
++}
++
++#else
++
++/*
++ * preconditions:
++ *
++ * n > 0 and a multiple of 4
++ * a 4-byte aligned
++ * b 16-byte aligned
++ */
++float
++dotprod_fff_cortex_a8(const float *a, const float *b, size_t n)
++{
++ float s = 0;
++
++ asm ("vmov.f32 q8, #0.0 \n\t"
++ "vmov.f32 q9, #0.0 \n\t"
++ "1: \n\t"
++ "subs %3, %3, #8 \n\t"
++ "vld1.32 {d0,d1,d2,d3}, [%1]! \n\t"
++ "vld1.32 {d4,d5,d6,d7}, [%2]! \n\t"
++ "vmla.f32 q8, q0, q2 \n\t"
++ "vmla.f32 q9, q1, q3 \n\t"
++ "bgt 1b \n\t"
++ "vadd.f32 q8, q8, q9 \n\t"
++ "vpadd.f32 d0, d16, d17 \n\t"
++ "vadd.f32 %0, s0, s1 \n\t"
++ : "=w"(s), "+r"(a), "+r"(b), "+r"(n)
++ :: "q0", "q1", "q2", "q3", "q8", "q9");
++
++ return s;
++
++}
++
++#endif
+Index: gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.h
+===================================================================
+--- gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.h (revision 0)
++++ gnuradio-core/src/lib/filter/dotprod_fff_cortex_a8.h (revision 0)
+@@ -0,0 +1,49 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2008 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 this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++#ifndef INCLUDED_DOTPROD_FFF_CORTEX_A8_H
++#define INCLUDED_DOTPROD_FFF_CORTEX_A8_H
++
++#include <stddef.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*!
++ * <pre>
++ *
++ * preconditions:
++ *
++ * n > 0 and a multiple of 4
++ * a 4-byte aligned
++ * b 16-byte aligned
++ *
++ * </pre>
++ */
++float
++dotprod_fff_cortex_a8(const float *a, const float *b, size_t n);
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif /* INCLUDED_DOTPROD_FFF_CORTEX_A8_H */
+Index: gnuradio-core/src/lib/filter/Makefile.am
+===================================================================
+--- gnuradio-core/src/lib/filter/Makefile.am (revision 9831)
++++ gnuradio-core/src/lib/filter/Makefile.am (working copy)
+@@ -177,7 +177,16 @@
+ powerpc_qa_CODE = \
+ qa_dotprod_powerpc.cc
+
++cortex_a8_CODE = \
++ sysconfig_cortex_a8.cc \
++ gr_fir_sysconfig_cortex_a8.cc \
++ gr_cpu_cortex_a8.cc \
++ gr_fir_fff_cortex_a8.cc \
++ dotprod_fff_cortex_a8.c
+
++cortex_a8_qa_CODE = \
++ qa_dotprod_cortex_a8.cc
++
+ #
+ # include each <foo>_CODE entry here...
+ #
+@@ -189,7 +198,9 @@
+ $(x86_64_SUBCODE) \
+ $(x86_qa_CODE) \
+ $(powerpc_CODE) \
+- $(powerpc_qa_CODE)
++ $(powerpc_qa_CODE) \
++ $(cortex_a8_CODE) \
++ $(cortex_a8_qa_CODE)
+
+
+ EXTRA_DIST = \
+@@ -254,7 +265,12 @@
+ libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(powerpc_qa_CODE)
+ endif
+
++if MD_CPU_cortex_a8
++libfilter_la_SOURCES = $(libfilter_la_common_SOURCES) $(cortex_a8_CODE)
++libfilter_qa_la_SOURCES = $(libfilter_qa_la_common_SOURCES) $(cortex_a8_qa_CODE)
++endif
+
++
+ grinclude_HEADERS = \
+ $(GENERATED_H) \
+ complex_dotprod_generic.h \
+@@ -296,6 +312,7 @@
+ noinst_HEADERS = \
+ assembly.h \
+ dotprod_fff_altivec.h \
++ dotprod_fff_cortex_a8.h \
+ gr_fir_scc_simd.h \
+ gr_fir_scc_x86.h \
+ gr_fir_fcc_simd.h \
+@@ -305,6 +322,7 @@
+ gr_fir_ccc_simd.h \
+ gr_fir_ccc_x86.h \
+ gr_fir_fff_altivec.h \
++ gr_fir_fff_cortex_a8.h \
+ gr_fir_fff_simd.h \
+ gr_fir_fff_x86.h \
+ gr_fir_fsf_simd.h \
+Index: gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.cc (revision 0)
++++ gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.cc (revision 0)
+@@ -0,0 +1,340 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2002,2008 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.
++ */
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#include <gr_fir_sysconfig_cortex_a8.h>
++#include <gr_cpu.h>
++
++#include <gr_fir_ccf.h>
++#include <gr_fir_ccf_generic.h>
++//#include <gr_fir_ccf_altivec.h>
++#include <gr_fir_fcc.h>
++#include <gr_fir_fcc_generic.h>
++//#include <gr_fir_fcc_altivec.h>
++#include <gr_fir_fff.h>
++#include <gr_fir_fff_generic.h>
++#include <gr_fir_fff_cortex_a8.h>
++#include <gr_fir_fsf.h>
++#include <gr_fir_fsf_generic.h>
++//#include <gr_fir_fsf_powerpc.h>
++#include <gr_fir_ccc.h>
++#include <gr_fir_ccc_generic.h>
++//#include <gr_fir_ccc_altivec.h>
++#include <gr_fir_scc.h>
++#include <gr_fir_scc_generic.h>
++//#include <gr_fir_scc_altivec.h>
++
++#include <iostream>
++using std::cerr;
++
++/*
++ * ----------------------------------------------------------------
++ * static functions that serve as constructors...
++ * ----------------------------------------------------------------
++ */
++
++#if 0
++static gr_fir_ccf *
++make_gr_fir_ccf_altivec(const std::vector<float> &taps)
++{
++ return new gr_fir_ccf_altivec(taps);
++}
++
++static gr_fir_fcc *
++make_gr_fir_fcc_altivec(const std::vector<gr_complex> &taps)
++{
++ return new gr_fir_fcc_altivec(taps);
++}
++
++static gr_fir_ccc *
++make_gr_fir_ccc_altivec (const std::vector<gr_complex> &taps)
++{
++ return new gr_fir_ccc_altivec (taps);
++}
++#endif
++
++static gr_fir_fff *
++make_gr_fir_fff_cortex_a8 (const std::vector<float> &taps)
++{
++ return new gr_fir_fff_cortex_a8 (taps);
++}
++
++#if 0
++static gr_fir_fsf *
++make_gr_fir_fsf_altivec (const std::vector<float> &taps)
++{
++ return new gr_fir_fsf_altivec (taps);
++}
++
++static gr_fir_scc *
++make_gr_fir_scc_altivec(const std::vector<gr_complex> &taps)
++{
++ return new gr_fir_scc_altivec(taps);
++}
++#endif
++
++/*
++ * ----------------------------------------------------------------
++ * Return instances of the fastest powerpc versions of these classes.
++ *
++ * check CPUID, if has altivec, return altivec version,
++ * else return generic version.
++ * ----------------------------------------------------------------
++ */
++
++gr_fir_ccf *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_ccf (const std::vector<float> &taps)
++{
++ static bool first = true;
++
++#if 0
++ if (gr_cpu::has_altivec ()){
++ if (first){
++ cerr << ">>> gr_fir_ccf: using altivec\n";
++ first = false;
++ }
++ return make_gr_fir_ccf_altivec (taps);
++ }
++#endif
++
++ if (0 && first){
++ cerr << ">>> gr_fir_ccf: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_ccf (taps);
++}
++
++gr_fir_fcc *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_fcc (const std::vector<gr_complex> &taps)
++{
++ static bool first = true;
++
++#if 0
++ if (gr_cpu::has_altivec ()){
++ if (first){
++ cerr << ">>> gr_fir_fcc: using altivec\n";
++ first = false;
++ }
++ return make_gr_fir_fcc_altivec (taps);
++ }
++#endif
++
++ if (0 && first){
++ cerr << ">>> gr_fir_fcc: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_fcc (taps);
++}
++
++gr_fir_ccc *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_ccc (const std::vector<gr_complex> &taps)
++{
++ static bool first = true;
++
++#if 0
++ if (gr_cpu::has_altivec ()){
++ if (first){
++ cerr << ">>> gr_fir_ccc: using altivec\n";
++ first = false;
++ }
++ return make_gr_fir_ccc_altivec (taps);
++ }
++#endif
++
++ if (0 && first){
++ cerr << ">>> gr_fir_ccc: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_ccc (taps);
++}
++
++gr_fir_fff *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_fff (const std::vector<float> &taps)
++{
++ static bool first = true;
++
++ if (gr_cpu::has_cortex_a8 ()){
++ if (first){
++ cerr << ">>> gr_fir_fff: using cortex_a8\n";
++ first = false;
++ }
++ return make_gr_fir_fff_cortex_a8 (taps);
++ }
++
++ if (0 && first){
++ cerr << ">>> gr_fir_fff: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_fff (taps);
++}
++
++gr_fir_fsf *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_fsf (const std::vector<float> &taps)
++{
++ static bool first = true;
++
++#if 0
++ if (gr_cpu::has_altivec ()){
++ if (first){
++ cerr << ">>> gr_fir_fsf: using altivec\n";
++ first = false;
++ }
++ return make_gr_fir_fsf_altivec (taps);
++ }
++#endif
++
++ if (0 && first){
++ cerr << ">>> gr_fir_fsf: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_fsf (taps);
++}
++
++
++gr_fir_scc *
++gr_fir_sysconfig_cortex_a8::create_gr_fir_scc (const std::vector<gr_complex> &taps)
++{
++ static bool first = true;
++
++#if 0
++ if (gr_cpu::has_altivec ()){
++ if (first){
++ cerr << ">>> gr_fir_scc: using altivec\n";
++ first = false;
++ }
++ return make_gr_fir_scc_altivec (taps);
++ }
++#endif
++
++ if (0 && first){
++ cerr << ">>> gr_fir_scc: handing off to parent class\n";
++ first = false;
++ }
++ return gr_fir_sysconfig_generic::create_gr_fir_scc (taps);
++}
++
++/*
++ * ----------------------------------------------------------------
++ * Return info about available implementations
++ * ----------------------------------------------------------------
++ */
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_ccf_info (std::vector<gr_fir_ccf_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_ccf_info (info);
++
++#if 0
++ // add our stuff...
++ gr_fir_ccf_info t;
++ if (gr_cpu::has_altivec ()){
++ t.name = "altivec";
++ t.create = make_gr_fir_ccf_altivec;
++ (*info).push_back (t);
++ }
++#endif
++}
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_fcc_info (std::vector<gr_fir_fcc_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_fcc_info (info);
++
++#if 0
++ // add our stuff...
++ gr_fir_fcc_info t;
++ if (gr_cpu::has_altivec ()){
++ t.name = "altivec";
++ t.create = make_gr_fir_fcc_altivec;
++ (*info).push_back (t);
++ }
++#endif
++}
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_ccc_info (std::vector<gr_fir_ccc_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_ccc_info (info);
++
++#if 0
++ // add our stuff...
++ gr_fir_ccc_info t;
++ if (gr_cpu::has_altivec ()){
++ t.name = "altivec";
++ t.create = make_gr_fir_ccc_altivec;
++ (*info).push_back (t);
++ }
++#endif
++}
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_fff_info (std::vector<gr_fir_fff_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_fff_info (info);
++
++ // add our stuff...
++ gr_fir_fff_info t;
++ if (gr_cpu::has_cortex_a8 ()){
++ t.name = "cortex_a8";
++ t.create = make_gr_fir_fff_cortex_a8;
++ (*info).push_back (t);
++ }
++}
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_fsf_info (std::vector<gr_fir_fsf_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_fsf_info (info);
++
++#if 0
++ // add our stuff...
++ gr_fir_fsf_info t;
++ if (gr_cpu::has_altivec ()){
++ t.name = "altivec";
++ t.create = make_gr_fir_fsf_altivec;
++ (*info).push_back (t);
++ }
++#endif
++}
++
++void
++gr_fir_sysconfig_cortex_a8::get_gr_fir_scc_info (std::vector<gr_fir_scc_info> *info)
++{
++ // invoke parent..
++ gr_fir_sysconfig_generic::get_gr_fir_scc_info (info);
++
++#if 0
++ // add our stuff...
++ gr_fir_scc_info t;
++ if (gr_cpu::has_altivec ()){
++ t.name = "altivec";
++ t.create = make_gr_fir_scc_altivec;
++ (*info).push_back (t);
++ }
++#endif
++}
+Index: gnuradio-core/src/lib/filter/gr_cpu.h
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_cpu.h (revision 9831)
++++ gnuradio-core/src/lib/filter/gr_cpu.h (working copy)
+@@ -34,6 +34,7 @@
+ static bool has_3dnow ();
+ static bool has_3dnowext ();
+ static bool has_altivec ();
++ static bool has_cortex_a8 ();
+ };
+
+ #endif /* _GR_CPU_H_ */
+Index: gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.h
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.h (revision 0)
++++ gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.h (revision 0)
+@@ -0,0 +1,45 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2008 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 this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++#ifndef INCLUDED_GR_FIR_FFF_CORTEX_A8_H
++#define INCLUDED_GR_FIR_FFF_CORTEX_A8_H
++
++#include <gr_fir_fff_generic.h>
++
++/*!
++ * \brief altivec version of gr_fir_fff
++ */
++class gr_fir_fff_cortex_a8 : public gr_fir_fff_generic
++{
++protected:
++
++ size_t d_naligned_taps; // number of taps (multiple of 4)
++ float *d_aligned_taps; // 16-byte aligned, and zero padded to multiple of 4
++
++public:
++ gr_fir_fff_cortex_a8();
++ gr_fir_fff_cortex_a8(const std::vector<float> &taps);
++ ~gr_fir_fff_cortex_a8();
++
++ virtual void set_taps (const std::vector<float> &taps);
++ virtual float filter (const float input[]);
++};
++
++#endif /* INCLUDED_GR_FIR_FFF_CORTEX_A*_H */
+Index: gnuradio-core/src/lib/filter/gr_cpu_x86.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_cpu_x86.cc (revision 9831)
++++ gnuradio-core/src/lib/filter/gr_cpu_x86.cc (working copy)
+@@ -111,3 +111,10 @@
+ {
+ return false;
+ }
++
++bool
++gr_cpu::has_cortex_a8 ()
++{
++ return false;
++}
++
+Index: gnuradio-core/src/lib/filter/gr_cpu_cortex_a8.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_cpu_cortex_a8.cc (revision 0)
++++ gnuradio-core/src/lib/filter/gr_cpu_cortex_a8.cc (revision 0)
+@@ -0,0 +1,59 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2002, 2008 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.
++ */
++
++#include <gr_cpu.h>
++
++bool
++gr_cpu::has_mmx ()
++{
++ return false;
++}
++
++bool
++gr_cpu::has_sse ()
++{
++ return false;
++}
++
++bool
++gr_cpu::has_sse2 ()
++{
++ return false;
++}
++
++bool
++gr_cpu::has_3dnow ()
++{
++ return false;
++}
++
++bool
++gr_cpu::has_3dnowext ()
++{
++ return false;
++}
++
++bool
++gr_cpu::has_cortex_a8 ()
++{
++ return true;
++}
+Index: gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.cc (revision 0)
++++ gnuradio-core/src/lib/filter/gr_fir_fff_cortex_a8.cc (revision 0)
+@@ -0,0 +1,85 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2008 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 this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#include <gr_fir_fff_cortex_a8.h>
++#include <stdlib.h>
++#include <string.h>
++#include <stdexcept>
++#include <assert.h>
++#include <gr_math.h>
++#include <dotprod_fff_cortex_a8.h>
++
++#define FLOATS_PER_VEC 8
++
++gr_fir_fff_cortex_a8::gr_fir_fff_cortex_a8()
++ : gr_fir_fff_generic(),
++ d_naligned_taps(0), d_aligned_taps(0)
++{
++}
++
++gr_fir_fff_cortex_a8::gr_fir_fff_cortex_a8 (const std::vector<float> &new_taps)
++ : gr_fir_fff_generic(new_taps),
++ d_naligned_taps(0), d_aligned_taps(0)
++{
++ set_taps(new_taps);
++}
++
++gr_fir_fff_cortex_a8::~gr_fir_fff_cortex_a8()
++{
++ if (d_aligned_taps){
++ free(d_aligned_taps);
++ d_aligned_taps = 0;
++ }
++}
++
++void
++gr_fir_fff_cortex_a8::set_taps(const std::vector<float> &inew_taps)
++{
++ gr_fir_fff_generic::set_taps(inew_taps); // call superclass
++ d_naligned_taps = gr_p2_round_up(ntaps(), FLOATS_PER_VEC);
++
++ if (d_aligned_taps){
++ free(d_aligned_taps);
++ d_aligned_taps = 0;
++ }
++ void *p;
++ int r = posix_memalign(&p, sizeof(float), d_naligned_taps * sizeof(d_aligned_taps[0]));
++ if (r != 0){
++ throw std::bad_alloc();
++ }
++ d_aligned_taps = (float *) p;
++ memcpy(d_aligned_taps, &d_taps[0], ntaps() * sizeof(d_aligned_taps[0]));
++ for (size_t i = ntaps(); i < d_naligned_taps; i++)
++ d_aligned_taps[i] = 0.0;
++}
++
++
++float
++gr_fir_fff_cortex_a8::filter (const float input[])
++{
++ if (d_naligned_taps == 0)
++ return 0.0;
++
++ return dotprod_fff_cortex_a8(input, d_aligned_taps, d_naligned_taps);
++}
+Index: gnuradio-core/src/lib/filter/qa_dotprod_cortex_a8.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/qa_dotprod_cortex_a8.cc (revision 0)
++++ gnuradio-core/src/lib/filter/qa_dotprod_cortex_a8.cc (revision 0)
+@@ -0,0 +1,32 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2003 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.
++ */
++#include "qa_dotprod.h"
++
++CppUnit::TestSuite *
++qa_dotprod_suite ()
++{
++ CppUnit::TestSuite *s = new CppUnit::TestSuite ("dotprod");
++
++ // empty test suite
++
++ return s;
++}
+Index: gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.h
+===================================================================
+--- gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.h (revision 0)
++++ gnuradio-core/src/lib/filter/gr_fir_sysconfig_cortex_a8.h (revision 0)
+@@ -0,0 +1,46 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2002,2008 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.
++ */
++#ifndef INCLUDED_GR_FIR_SYSCONFIG_CORTEX_A8_H
++#define INCLUDED_GR_FIR_SYSCONFIG_CORTEX_A8_H
++
++#include <gr_fir_sysconfig_generic.h>
++
++class gr_fir_sysconfig_cortex_a8 : public gr_fir_sysconfig_generic {
++public:
++ virtual gr_fir_ccf *create_gr_fir_ccf (const std::vector<float> &taps);
++ virtual gr_fir_fcc *create_gr_fir_fcc (const std::vector<gr_complex> &taps);
++ virtual gr_fir_fff *create_gr_fir_fff (const std::vector<float> &taps);
++ virtual gr_fir_fsf *create_gr_fir_fsf (const std::vector<float> &taps);
++ virtual gr_fir_scc *create_gr_fir_scc (const std::vector<gr_complex> &taps);
++ virtual gr_fir_ccc *create_gr_fir_ccc (const std::vector<gr_complex> &taps);
++//virtual gr_fir_sss *create_gr_fir_sss (const std::vector<short> &taps);
++
++ virtual void get_gr_fir_ccf_info (std::vector<gr_fir_ccf_info> *info);
++ virtual void get_gr_fir_fcc_info (std::vector<gr_fir_fcc_info> *info);
++ virtual void get_gr_fir_fff_info (std::vector<gr_fir_fff_info> *info);
++ virtual void get_gr_fir_fsf_info (std::vector<gr_fir_fsf_info> *info);
++ virtual void get_gr_fir_scc_info (std::vector<gr_fir_scc_info> *info);
++ virtual void get_gr_fir_ccc_info (std::vector<gr_fir_ccc_info> *info);
++//virtual void get_gr_fir_sss_info (std::vector<gr_fir_sss_info> *info);
++};
++
++#endif
+Index: gnuradio-core/src/lib/filter/sysconfig_cortex_a8.cc
+===================================================================
+--- gnuradio-core/src/lib/filter/sysconfig_cortex_a8.cc (revision 0)
++++ gnuradio-core/src/lib/filter/sysconfig_cortex_a8.cc (revision 0)
+@@ -0,0 +1,38 @@
++/* -*- c++ -*- */
++/*
++ * Copyright 2002,2008 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.
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#include <gr_fir_sysconfig_cortex_a8.h>
++
++gr_fir_sysconfig *
++gr_fir_sysconfig_singleton ()
++{
++ static gr_fir_sysconfig *singleton = 0;
++
++ if (singleton)
++ return singleton;
++
++ singleton = new gr_fir_sysconfig_cortex_a8 ();
++ return singleton;
++}
+Index: config/gr_set_md_cpu.m4
+===================================================================
+--- config/gr_set_md_cpu.m4 (revision 9831)
++++ config/gr_set_md_cpu.m4 (working copy)
+@@ -35,6 +35,7 @@
+ 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 ;;
++ arm) MD_CPU=cortex_a8 ;;
+ powerpc*) MD_CPU=powerpc ;;
+ *) MD_CPU=generic ;;
+ esac
+@@ -59,5 +60,6 @@
+ 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_cortex_a8, test "$MD_CPU" = "cortex_a8")
+ AM_CONDITIONAL(MD_CPU_generic, test "$MD_CPU" = "generic")
+ ])
diff --git a/recipes/gnuradio/gnuradio/no-trellis-doc.patch b/recipes/gnuradio/gnuradio/no-trellis-doc.patch
new file mode 100644
index 0000000000..039aed9c8e
--- /dev/null
+++ b/recipes/gnuradio/gnuradio/no-trellis-doc.patch
@@ -0,0 +1,20 @@
+--- /tmp/Makefile.am 2007-07-27 13:44:31.000000000 +0200
++++ trunk/gr-trellis/Makefile.am 2007-07-27 13:50:06.795215000 +0200
+@@ -21,5 +21,5 @@
+
+ include $(top_srcdir)/Makefile.common
+
+-SUBDIRS = src doc
++SUBDIRS = src
+
+--- /tmp/Makefile.am 2007-07-27 19:18:00.000000000 +0200
++++ trunk/usrp/Makefile.am 2007-07-27 19:18:20.995215000 +0200
+@@ -20,7 +20,7 @@
+ #
+
+ EXTRA_DIST = usrp.pc.in usrp.iss.in usrp.inf
+-SUBDIRS = host firmware fpga doc
++SUBDIRS = host firmware fpga
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = usrp.pc
diff --git a/recipes/gnuradio/gnuradio/no-usrp2.patch b/recipes/gnuradio/gnuradio/no-usrp2.patch
new file mode 100644
index 0000000000..fc9e2a736f
--- /dev/null
+++ b/recipes/gnuradio/gnuradio/no-usrp2.patch
@@ -0,0 +1,12 @@
+--- gnuradio-trunk-work/configure.ac.orig 2008-10-06 13:38:45.000000000 -0400
++++ gnuradio-trunk-work/configure.ac 2008-10-06 13:39:02.000000000 -0400
+@@ -272,9 +272,7 @@
+ GRC_PMT
+ GRC_MBLOCK dnl this must come after GRC_PMT
+ GRC_USRP
+-GRC_USRP2
+ GRC_GR_USRP dnl this must come after GRC_USRP
+-GRC_GR_USRP2
+ GRC_GR_GCELL dnl this must come after GRC_GCELL and GRC_GNURADIO_CORE
+ GRC_GR_MSDD6000
+ GRC_GR_AUDIO_ALSA
diff --git a/recipes/gnuradio/gnuradio_3.0.4.bb b/recipes/gnuradio/gnuradio_3.0.4.bb
new file mode 100644
index 0000000000..8a3e25bedb
--- /dev/null
+++ b/recipes/gnuradio/gnuradio_3.0.4.bb
@@ -0,0 +1,8 @@
+require gnuradio.inc
+
+PR = "r4"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gnuradio/gnuradio-${PV}.tar.gz \
+ file://no-trellis-doc.patch;patch=1 \
+ "
+
diff --git a/recipes/gnuradio/gnuradio_3.1.2.bb b/recipes/gnuradio/gnuradio_3.1.2.bb
new file mode 100644
index 0000000000..3a6b977288
--- /dev/null
+++ b/recipes/gnuradio/gnuradio_3.1.2.bb
@@ -0,0 +1,10 @@
+require gnuradio.inc
+
+PR = "r7"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gnuradio/gnuradio-${PV}.tar.gz \
+ file://no-trellis-doc.patch;patch=1 \
+ file://gcc43.patch;patch=1;pnum=2 \
+ file://gnuradio-libusb.patch;patch=1 \
+ "
+
diff --git a/recipes/gnuradio/gnuradio_3.1.3.bb b/recipes/gnuradio/gnuradio_3.1.3.bb
new file mode 100644
index 0000000000..17089dd487
--- /dev/null
+++ b/recipes/gnuradio/gnuradio_3.1.3.bb
@@ -0,0 +1,8 @@
+require gnuradio.inc
+
+PR = "r3"
+
+SRC_URI = "ftp://ftp.gnu.org/gnu/gnuradio/gnuradio-${PV}.tar.gz \
+# file://gnuradio-libusb.patch;patch=1 \
+ file://acinclude.m4"
+
diff --git a/recipes/gnuradio/gnuradio_svn.bb b/recipes/gnuradio/gnuradio_svn.bb
new file mode 100644
index 0000000000..56db9187c4
--- /dev/null
+++ b/recipes/gnuradio/gnuradio_svn.bb
@@ -0,0 +1,29 @@
+require gnuradio.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+DEPENDS += " gsl "
+
+PV = "3.1.3+svnr${SRCREV}"
+PR = "r6"
+
+EXTRA_OECONF += "--with-boost=${STAGING_DIR_TARGET}/usr CXXFLAGS=-DBOOST_SP_USE_PTHREADS --disable-usrp1 --disable--usrp2"
+
+SRC_URI = "svn://gnuradio.org/svn/gnuradio/;module=trunk;proto=http \
+ file://no-usrp2.patch;patch=1 \
+ file://gnuradio-neon.patch;patch=1;pnum=0 \
+ "
+
+S="${WORKDIR}/trunk"
+
+#do_configure() {
+# ./bootstrap
+# oe_runconf
+#}
+
+do_compile_append() {
+ sed -i -e s:${STAGING_DIR_TARGET}::g \
+ -e s:/${TARGET_SYS}::g \
+ gnuradio-core/gnuradio-core.pc
+}
+