Commit c13dc76c authored by Gwenhael Goavec-Merou's avatar Gwenhael Goavec-Merou Committed by Thomas Petazzoni
Browse files

gnuradio: new package



[Thomas: minor formatting adjustments.]

Signed-off-by: default avatarGwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent dbdb8512
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1045,6 +1045,7 @@ menu "Miscellaneous"
	source "package/clamav/Config.in"
	source "package/collectd/Config.in"
	source "package/empty/Config.in"
	source "package/gnuradio/Config.in"
	source "package/googlefontdirectory/Config.in"
	source "package/haveged/Config.in"
	source "package/mcrypt/Config.in"
+40 −0
Original line number Diff line number Diff line
By default, the boost test option is mandatory for build environment
detection. 
This patch suppress this dependency and allows the test part only if
build_test is enabled at the Buildroot level.

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
---
Index: gnuradio-3.7.5/volk/cmake/VolkBoost.cmake
===================================================================
--- gnuradio-3.7.5.orig/volk/cmake/VolkBoost.cmake
+++ gnuradio-3.7.5/volk/cmake/VolkBoost.cmake
@@ -29,7 +29,6 @@ set(__INCLUDED_VOLK_BOOST_CMAKE TRUE)
 set(BOOST_REQUIRED_COMPONENTS
     filesystem
     system
-    unit_test_framework
     program_options
 )
 
Index: gnuradio-3.7.5/volk/lib/CMakeLists.txt
===================================================================
--- gnuradio-3.7.5.orig/volk/lib/CMakeLists.txt
+++ gnuradio-3.7.5/volk/lib/CMakeLists.txt
@@ -540,8 +540,9 @@ endif(ENABLE_STATIC_LIBS)
 # Build the QA test application
 ########################################################################
 
+find_package(Boost "1.35" COMPONENTS "unit_test_framework")
 
-if(Boost_FOUND)
+if(Boost_FOUND AND BUILD_TEST)
 
     set_source_files_properties(
         ${CMAKE_CURRENT_SOURCE_DIR}/testqa.cc PROPERTIES
@@ -558,4 +559,4 @@ if(Boost_FOUND)
     target_link_libraries(test_all volk ${Boost_LIBRARIES})
     add_test(qa_volk_test_all test_all)
 
-endif(Boost_FOUND)
+endif(Boost_FOUND AND BUILD_TEST)
+47 −0
Original line number Diff line number Diff line
comment "gnuradio needs a toolchain w/ C++, IPV6, threads, largefile, wchar"
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE || \
		!BR2_INET_IPV6

config BR2_PACKAGE_GNURADIO
	bool "gnuradio"
	depends on BR2_INET_IPV6 # boost
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_LARGEFILE # boost
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_MMU # use fork()
	depends on BR2_USE_WCHAR # boost
	select BR2_PACKAGE_BOOST
	select BR2_PACKAGE_BOOST_DATE_TIME
	select BR2_PACKAGE_BOOST_FILESYSTEM
	select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
	select BR2_PACKAGE_BOOST_SYSTEM
	select BR2_PACKAGE_BOOST_THREAD
	help
	  GNU Radio is a free & open-source software development
	  toolkit that provides signal processing blocks to implement
	  software radios. It can be used with readily-available
	  low-cost external RF hardware to create software-defined
	  radios, or without hardware in a simulation-like
	  environment. It is widely used in hobbyist, academic and
	  commercial environments to support both wireless
	  communications research and real-world radio systems.

	  http://gnuradio.org/

if BR2_PACKAGE_GNURADIO

config BR2_PACKAGE_GNURADIO_BLOCKS
	bool "blocks support"
	help
	  GNU Radio basic block library

config BR2_PACKAGE_GNURADIO_PYTHON
	bool "python support"
	select BR2_PACKAGE_BOOST_PYTHON
	select BR2_PACKAGE_PYTHON
	help
	  Enable python component

endif
+5 −0
Original line number Diff line number Diff line
# From http://gnuradio.org/redmine/projects/gnuradio/files
md5	b4a917a548f41ce25c6c88f9bc864bca	gnuradio-3.7.5.tar.gz

# Locally calculated:
sha256 467f62190687a34f9faa18be8d650e28d7046b94070b1b6d94355c28beb76243  gnuradio-3.7.5.tar.gz
+58 −0
Original line number Diff line number Diff line
################################################################################
#
# gnuradio
#
################################################################################

GNURADIO_VERSION = 3.7.5
GNURADIO_SITE = http://gnuradio.org/redmine/attachments/download/792
GNURADIO_LICENSE = GPLv3+
GNURADIO_LICENSE_FILES = COPYING

GNURADIO_SUPPORTS_IN_SOURCE_BUILD = NO

# host-python-cheetah is needed for volk to compile
GNURADIO_DEPENDENCIES = \
	host-python-cheetah \
	host-swig \
	boost

GNURADIO_CONF_OPTS = \
	-DENABLE_DEFAULT=OFF \
	-DENABLE_VOLK=ON \
	-DENABLE_GNURADIO_RUNTIME=ON

# For third-party blocks, the gnuradio libraries are mandatory at
# compile time.
GNURADIO_INSTALL_STAGING = YES

# Yes, this is silly, because -march is already known by the compiler
# with the internal toolchain, and passed by the external wrapper for
# external toolchains. Nonetheless, gnuradio does some matching on the
# CFLAGS to decide whether to build the NEON functions or not, and
# wants to see the string 'armv7' in the CFLAGS.
ifeq ($(BR2_ARM_CPU_ARMV7A)$(BR2_ARM_CPU_HAS_NEON),yy)
GNURADIO_CONF_OPTS += -DCMAKE_C_FLAGS="-march=armv7-a"
endif

# As soon as -mfpu=neon is supported by the compiler, gnuradio will try
# to use it. But having NEON support in the compiler doesn't necessarily
# mean we have NEON support in our CPU.
ifeq ($(BR2_ARM_CPU_HAS_NEON),)
GNURADIO_CONF_OPTS += -Dhave_mfpu_neon=0
endif

ifeq ($(BR2_PACKAGE_GNURADIO_BLOCKS),y)
GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=ON
else
GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=OFF
endif

ifeq ($(BR2_PACKAGE_GNURADIO_PYTHON),y)
GNURADIO_DEPENDENCIES += python
GNURADIO_CONF_OPTS += -DENABLE_PYTHON=ON
else
GNURADIO_CONF_OPTS += -DENABLE_PYTHON=OFF
endif

$(eval $(cmake-package))