gnuradio: new package

[Thomas: minor formatting adjustments.]

Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Gwenhael Goavec-Merou 2015-03-13 09:24:10 +01:00 committed by Thomas Petazzoni
parent dbdb8512fb
commit c13dc76c1d
5 changed files with 151 additions and 0 deletions

View file

@ -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"

View file

@ -0,0 +1,40 @@
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)

View file

@ -0,0 +1,47 @@
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

View file

@ -0,0 +1,5 @@
# 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

View file

@ -0,0 +1,58 @@
################################################################################
#
# 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))