summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/gnuradio/package.py45
-rw-r--r--var/spack/repos/builtin/packages/gqrx/package.py29
-rw-r--r--var/spack/repos/builtin/packages/gr-osmosdr/package.py37
-rw-r--r--var/spack/repos/builtin/packages/hackrf-host/package.py22
-rw-r--r--var/spack/repos/builtin/packages/log4cpp/package.py16
-rw-r--r--var/spack/repos/builtin/packages/volk/package.py30
6 files changed, 179 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/gnuradio/package.py b/var/spack/repos/builtin/packages/gnuradio/package.py
new file mode 100644
index 0000000000..dca705ef6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gnuradio/package.py
@@ -0,0 +1,45 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Gnuradio(CMakePackage):
+ """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."""
+
+ homepage = "https://www.gnuradio.org/"
+ url = "https://github.com/gnuradio/gnuradio/archive/v3.8.2.0.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('3.8.2.0', sha256='ddda12b55e3e1d925eefb24afb9d604bca7c9bbe0a431707aa48a2eed53eec2f')
+ depends_on('cmake@3.5.1:', type='build')
+ depends_on('volk')
+ depends_on('python@3.6.5:', type=('build', 'run'))
+ depends_on('py-six', type=('build', 'run'))
+ depends_on('swig@3.0.8:', type='build')
+ depends_on('log4cpp@1.0:')
+ # https://github.com/gnuradio/gnuradio/pull/3566
+ depends_on('boost@1.53:1.72.999')
+ depends_on('py-numpy', type=('build', 'run'))
+ depends_on('py-click', type=('build', 'run'))
+ depends_on('py-pyyaml', type=('build', 'run'))
+ depends_on('py-click-plugins', type=('build', 'run'))
+ depends_on('gsl@1.10:')
+ depends_on('gmp')
+ depends_on('fftw')
+ depends_on('libzmq')
+ extends('python')
+
+ def cmake_args(self):
+ args = []
+ args.append('-DPYTHON_EXECUTABLE={0}'.format(
+ self.spec['python'].command.path))
+ args.append('-DENABLE_INTERNAL_VOLK=OFF')
+ return args
diff --git a/var/spack/repos/builtin/packages/gqrx/package.py b/var/spack/repos/builtin/packages/gqrx/package.py
new file mode 100644
index 0000000000..540bdd5eba
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gqrx/package.py
@@ -0,0 +1,29 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Gqrx(CMakePackage):
+ """Gqrx is an open source software defined radio (SDR) receiver
+ implemented using GNU Radio and the Qt GUI toolkit. Currently it
+ works on Linux and Mac with hardware supported by gr-osmosdr,
+ including Funcube Dongle, RTL-SDR, Airspy, HackRF, BladeRF,
+ RFSpace, USRP and SoapySDR.
+
+ Gqrx can operate as an AM/FM/SSB receiver with audio output or as
+ an FFT-only instrument. There are also various hooks for
+ interacting with external application using nertwork sockets."""
+
+ homepage = "https://gqrx.dk/"
+ url = "https://github.com/csete/gqrx/archive/v2.13.1.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('2.13.1', sha256='08b7b930bed00c6ac79330695c24919a9d779112e1a3dd37d22cc9ee38561e82')
+ depends_on('cmake@3.2.0:', type='build')
+ depends_on('gnuradio')
+ depends_on('pkgconfig', type='build')
+ depends_on('gr-osmosdr')
+ depends_on('qt')
+ depends_on('pulseaudio')
diff --git a/var/spack/repos/builtin/packages/gr-osmosdr/package.py b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
new file mode 100644
index 0000000000..f8f7a2fe3c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gr-osmosdr/package.py
@@ -0,0 +1,37 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class GrOsmosdr(CMakePackage):
+ """While primarily being developed for the OsmoSDR hardware, this
+ block as well supports:
+
+ FunCube Dongle through libgnuradio-fcd,
+ FUNcube Dongle Pro+ through gr-fcdproplus,
+ sysmocom OsmoSDR Devices through libosmosdr,
+ Nuand LLC bladeRF through libbladeRF library,
+ Great Scott Gadgets HackRF through libhackrf,
+ Ettus USRP Devices through Ettus UHD library,
+ Fairwaves UmTRX through Fairwaves' fork of Ettus' UHD library,
+ RFSPACE SDR-IQ, SDR-IP, NetSDR (incl. X2 option),
+ RTL2832U based DVB-T dongles through librtlsdr,
+ RTL-TCP spectrum server (see librtlsdr project),
+ MSi2500 based DVB-T dongles through libmirisdr,
+ SDRplay RSP through SDRplay API library,
+ AirSpy R820t dongles through libairspy,
+ gnuradio .cfile input through libgnuradio-blocks"""
+
+ homepage = "https://osmocom.org/projects/gr-osmosdr/wiki/GrOsmoSDR"
+ url = "https://github.com/osmocom/gr-osmosdr/archive/v0.2.2.tar.gz"
+
+ maintainers = ['aweits']
+
+ variant('hackrf', default=True, description='Support HackRF Hardware')
+
+ version('0.2.2', sha256='5a7ce7afee38a56191b5d16cb4a91c92476729ff16ed09cbba5a3851ac619713')
+
+ depends_on('gnuradio')
+ depends_on('swig', type='build')
+ depends_on('hackrf-host', when='+hackrf')
diff --git a/var/spack/repos/builtin/packages/hackrf-host/package.py b/var/spack/repos/builtin/packages/hackrf-host/package.py
new file mode 100644
index 0000000000..572e3b91b0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hackrf-host/package.py
@@ -0,0 +1,22 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class HackrfHost(CMakePackage):
+ """Software for HackRF, a low cost, open source Software Defined
+ Radio platform."""
+
+ homepage = "https://github.com/mossmann/hackrf"
+ url = "https://github.com/mossmann/hackrf/archive/v2018.01.1.tar.gz"
+
+ maintainers = ['aweits']
+
+ root_cmakelists_dir = 'host'
+
+ version('2018.01.1', sha256='84dbb5536d3aa5bd6b25d50df78d591e6c3431d752de051a17f4cb87b7963ec3')
+
+ depends_on('cmake@2.8.12:', type='build')
+ depends_on('libusb@1.0.18:')
+ depends_on('fftw@3.3.5:')
diff --git a/var/spack/repos/builtin/packages/log4cpp/package.py b/var/spack/repos/builtin/packages/log4cpp/package.py
new file mode 100644
index 0000000000..e99fb23e48
--- /dev/null
+++ b/var/spack/repos/builtin/packages/log4cpp/package.py
@@ -0,0 +1,16 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Log4cpp(AutotoolsPackage):
+ """Log4cpp is library of C++ classes for flexible logging to
+ files, syslog, IDSA and other destinations. It is modeled after
+ the Log4j Java library, staying as close to their API as is
+ reasonable."""
+
+ homepage = "http://log4cpp.sourceforge.net/"
+ url = "http://sourceforge.net/projects/log4cpp/files/log4cpp-1.1.3.tar.gz"
+
+ version('1.1.3', sha256='2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d')
diff --git a/var/spack/repos/builtin/packages/volk/package.py b/var/spack/repos/builtin/packages/volk/package.py
new file mode 100644
index 0000000000..846948f87a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/volk/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+class Volk(CMakePackage):
+ """VOLK is the Vector-Optimized Library of Kernels. It is a
+ library that contains kernels of hand-written SIMD code for
+ different mathematical operations. Since each SIMD architecture
+ can be very different and no compiler has yet come along to handle
+ vectorization properly or highly efficiently, VOLK approaches the
+ problem differently.
+
+ For each architecture or platform that a developer wishes to
+ vectorize for, a new proto-kernel is added to VOLK. At runtime,
+ VOLK will select the correct proto-kernel. In this way, the users
+ of VOLK call a kernel for performing the operation that is
+ platform/architecture agnostic. This allows us to write portable
+ SIMD code."""
+
+ homepage = "https://github.com/gnuradio/volk"
+ url = "https://github.com/gnuradio/volk/archive/v2.3.0.tar.gz"
+
+ maintainers = ['aweits']
+
+ version('2.3.0', sha256='f42c928f561b128acfe4adb21227e4a62a3f6ab8103592fc3233765ff326d5fc')
+
+ depends_on('python@3.4:', type=('build', 'run'))
+ depends_on('py-mako@0.4.2:', type=('build', 'run'))