ports/comms/sdr++/Makefile
2025-01-23 00:56:11 -08:00

124 lines
4.2 KiB
Makefile

PORTNAME= sdr++
DISTVERSION= 20250105 # rolling (nightly) release is the current release model (see README)
CATEGORIES= comms hamradio
MAINTAINER= yuri@FreeBSD.org
COMMENT= Cross-platform SDR software
WWW= https://github.com/AlexandreRouma/SDRPlusPlus
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/license
LIB_DEPENDS= libfftw3f.so:math/fftw3-float \
libglfw.so:graphics/glfw \
libvolk.so:devel/volk \
libzstd.so:archivers/zstd
USES= cmake compiler:c++17-lang gl pkgconfig xorg
USE_GL= gl glew glu opengl
USE_XORG= x11
USE_GITHUB= yes
GH_ACCOUNT= AlexandreRouma
GH_PROJECT= SDRPlusPlus
GH_TAGNAME= ea3675d
PORTSCOUT= ignore:1 # rolling release
OPTIONS_GROUP= MODULES AUDIO_SOURCE AUDIO_SINK AUDIO_DECODER # the list is defined in CMakeLists.txt, also see https://github.com/AlexandreRouma/SDRPlusPlus?tab=readme-ov-file#module-list
OPTIONS_GROUP_AUDIO_SOURCE= AIRSPY AIRSPYHF BADGESDR_SOURCE BLADERF FOBOS HACKRF LIMESDR PLUTOSDR RTAUDIO_SOURCE RTL_SDR
OPTIONS_GROUP_AUDIO_SINK= NETWORK_SINK PORTAUDIO_SINK RTAUDIO_SINK # portaudio sinks are intended for MacOS only
OPTIONS_GROUP_AUDIO_DECODER= ATV_DECODER DAB_DECODER M17_DECODER METEOR_DECODER RADIO WEATHER_SAT_DECODER
OPTIONS_SUB= yes
AUDIO_SOURCE_DESC= Audio Sources
AUDIO_SINK_DESC= Audio Sinks
AUDIO_DECODER_DESC= Audio Decoders
## Sources
AIRSPY_DESC= Airspy Source Module
AIRSPY_CMAKE_BOOL= OPT_BUILD_AIRSPY_SOURCE
AIRSPY_LIB_DEPENDS= libairspy.so:comms/airspy
AIRSPYHF_DESC= Airspy HF+ Source Module
AIRSPYHF_CMAKE_BOOL= OPT_BUILD_AIRSPYHF_SOURCE
AIRSPYHF_LIB_DEPENDS= libairspyhf.so:comms/airspyhf
BADGESDR_SOURCE_DESC= BadgeSDR Source Module
BADGESDR_SOURCE_CMAKE_BOOL= OPT_BUILD_BADGESDR_SOURCE
BLADERF_DESC= BladeRF Source Module
BLADERF_CMAKE_BOOL= OPT_BUILD_BLADERF_SOURCE
BLADERF_LIB_DEPENDS= libbladeRF.so:comms/bladerf
FOBOS_DESC= FobosSDR Source Module
FOBOS_CMAKE_BOOL= OPT_BUILD_FOBOSSDR_SOURCE
FOBOS_LIB_DEPENDS= libfobos.so:comms/libfobos
FOBOS_BROKEN= https://github.com/AlexandreRouma/SDRPlusPlus/issues/1572
PLUTOSDR_DESC= PlutoSDR Source Module
PLUTOSDR_CMAKE_BOOL= OPT_BUILD_PLUTOSDR_SOURCE
PLUTOSDR_LIB_DEPENDS= libad9361.so:misc/libad9361-iio \
libiio.so:misc/libiio
LIMESDR_DESC= LimeSDR Source Module
LIMESDR_CMAKE_BOOL= OPT_BUILD_LIMESDR_SOURCE
LIMESDR_LIB_DEPENDS= libLimeSuite.so:comms/limesuite
HACKRF_DESC= HackRF Source Module
HACKRF_CMAKE_BOOL= OPT_BUILD_HACKRF_SOURCE
HACKRF_LIB_DEPENDS= libhackrf.so:comms/hackrf
RTAUDIO_SOURCE_DESC= RtAudio Source Module
RTAUDIO_SOURCE_CMAKE_BOOL= OPT_BUILD_AUDIO_SOURCE
RTAUDIO_SOURCE_LIB_DEPENDS= librtaudio.so:audio/rtaudio
RTL_SDR_DESC= RTL-SDR Source Module
RTL_SDR_CMAKE_BOOL= OPT_BUILD_RTL_SDR_SOURCE
RTL_SDR_LIB_DEPENDS= librtlsdr.so:comms/rtl-sdr
## Sinks
NETWORK_SINK_DESC= Network Audio Sink Module
NETWORK_SINK_CMAKE_BOOL= OPT_BUILD_NETWORK_SINK
PORTAUDIO_SINK_DESC= PortAudio Sink Module
PORTAUDIO_SINK_CMAKE_BOOL= OPT_BUILD_PORTAUDIO_SINK OPT_BUILD_NEW_PORTAUDIO_SINK
PORTAUDIO_SINK_LIB_DEPENDS= libportaudio.so:audio/portaudio
RTAUDIO_SINK_DESC= RtAudio Sink Module
RTAUDIO_SINK_CMAKE_BOOL= OPT_BUILD_AUDIO_SINK
RTAUDIO_SINK_LIB_DEPENDS= librtaudio.so:audio/rtaudio
RTAUDIO_SINK_BROKEN= fails at run-time: Illegal Instruction
## Decoders
ATV_DECODER_DESC= ATV decoder
ATV_DECODER_CMAKE_BOOL= OPT_BUILD_ATV_DECODER
DAB_DECODER_DESC= DAB/DAB+ decoder
DAB_DECODER_CMAKE_BOOL= OPT_BUILD_DAB_DECODER
DAB_DECODER_BROKEN= unfinished as per https://github.com/AlexandreRouma/SDRPlusPlus?tab=readme-ov-file#decoders
M17_DECODER_DESC= M17 decoder module
M17_DECODER_CMAKE_BOOL= OPT_BUILD_M17_DECODER
M17_DECODER_LIB_DEPENDS= libcodec2.so:audio/codec2
METEOR_DECODER_DESC= METEOR demodulator module
METEOR_DECODER_CMAKE_BOOL= OPT_BUILD_METEOR_DEMODULATOR
RADIO_DESC= Main audio modulation decoder (AM, FM, SSB, etc...)
RADIO_CMAKE_BOOL= OPT_BUILD_RADIO
WEATHER_SAT_DECODER_DESC= HRPT decoder module
WEATHER_SAT_DECODER_CMAKE_BOOL= OPT_BUILD_WEATHER_SAT_DECODER
WEATHER_SAT_DECODER_BROKEN= unfinished as per https://github.com/AlexandreRouma/SDRPlusPlus?tab=readme-ov-file#decoders
.for o in ${OPTIONS_GROUP_AUDIO_SOURCE} ${OPTIONS_GROUP_AUDIO_SINK} ${OPTIONS_GROUP_AUDIO_DECODER}
. if "${${o}_BROKEN}" == ""
OPTIONS_DEFAULT+= ${o}
. endif
.endfor
.include <bsd.port.mk>