pkgsrc/ham/gnuradio-core/Makefile.common
thor d76f3e7fa0 math/fftw and dependents: merge math/fftwf backin and add MPI and OpenMP
This yields one common package to provide libfftw3 (double) and libfftw3f
(single) by default and optionally the Fortran bindings as well as
OpenMP and MPI variants, and those with long double or quad precision.

This changes all packages depending on fftwf in the same commit to minimize
the time of inconsistency. Soon, math/fftwf will disappear.
2021-04-29 23:30:12 +00:00

151 lines
5.1 KiB
Text

# $NetBSD: Makefile.common,v 1.33 2021/04/29 23:30:14 thor Exp $
# This Makefile fragment is included in the package Makefiles for
# GNU Radio distributed packages (they all share common configure and build
# settings).
# used by ham/gnuradio-channels/Makefile
# used by ham/gnuradio-companion/Makefile
# used by ham/gnuradio-core/Makefile
# used by ham/gnuradio-network/Makefile
# used by ham/gnuradio-ctrlport/Makefile
# used by ham/gnuradio-digital/Makefile
# used by ham/gnuradio-doxygen/Makefile
# used by ham/gnuradio-dtv/Makefile
# used by ham/gnuradio-fec/Makefile
# used by ham/gnuradio-qtgui/Makefile
# used by ham/gnuradio-trellis/Makefile
# used by ham/gnuradio-uhd/Makefile
# used by ham/gnuradio-utils/Makefile
# used by ham/gnuradio-video-sdl/Makefile
# used by ham/gnuradio-vocoder/Makefile
# used by ham/gnuradio-wavelet/Makefile
# used by ham/gnuradio-zeromq/Makefile
.include "../../ham/gnuradio-core/version.mk"
DISTNAME?= gnuradio-${VERSION}
CATEGORIES+= ham
#MASTER_SITES= http://s3-dist.gnuradio.org/
#MASTER_SITES+= http://gnuradio.org/releases/gnuradio/
MASTER_SITES= ${MASTER_SITE_GITHUB:=gnuradio/}
GITHUB_PROJECT= gnuradio
GITHUB_TAG= v${VERSION}
MAINTAINER?= pkgsrc-users@NetBSD.org
HOMEPAGE?= https://www.gnu.org/software/gnuradio/
LICENSE= gnu-gpl-v3
USE_LANGUAGES= c c++
USE_TOOLS= perl gmake cmake pkg-config
USE_CMAKE= yes
DEPENDS+= ${PYPKGPREFIX}-scipy-[0-9]*:../../math/py-scipy
# for companion
DEPENDS+= ${PYPKGPREFIX}-gobject3-[0-9]*:../../devel/py-gobject3
DEPENDS+= ${PYPKGPREFIX}-mako-[0-9]*:../../devel/py-mako
DEPENDS+= ${PYPKGPREFIX}-cairo-[0-9]*:../../graphics/py-cairo
DEPENDS+= ${PYPKGPREFIX}-yaml-[0-9]*:../../textproc/py-yaml
DISTINFO_FILE= ${.CURDIR}/../../ham/gnuradio-core/distinfo
PATCHDIR= ${.CURDIR}/../../ham/gnuradio-core/patches
# see CMakeLists.txt GR_PYTHON_MIN_VERSION
PYTHON_VERSIONS_INCOMPATIBLE= 27
PLIST_SUBST+= PYVERSSUFFIX=${PYVERSSUFFIX}
PLIST_SUBST+= PYSITELIB=${PYSITELIB}
PY_PATCHPLIST= yes
CONFIGURE_DIRS= build
EGDIR= share/gnuradio/examples
PKG_SYSCONFSUBDIR= gnuradio/conf.d
CXXFLAGS+= -pthread
CFLAGS+= -pthread
LDFLAGS.DragonFly+= -lboost_system
LDFLAGS.NetBSD+= -lrt
LDFLAGS.SunOS+= -lboost_system
CXXFLAGS.SunOS+= -pthreads
INSTALLATION_DIRS+= ${EGDIR}
# -------- R E S E T CMAKE_ARGS H E R E -------------
CMAKE_ARGS=
CMAKE_ARGS+= -DENABLE_GNURADIO_RUNTIME=ON
CMAKE_ARGS+= -DENABLE_GR_ANALOG=ON
CMAKE_ARGS+= -DENABLE_GR_AUDIO=ON
CMAKE_ARGS+= -DENABLE_GR_BLOCKS=ON
CMAKE_ARGS+= -DENABLE_GR_FFT=ON
CMAKE_ARGS+= -DENABLE_GR_FILTER=ON
CMAKE_ARGS+= -DENABLE_PYTHON=ON
CMAKE_ARGS+= -DENABLE_VOLK=ON -DENABLE_INTERNAL_VOLK=OFF
CMAKE_ARGS+= -DCMAKE_HAVE_PTHREADS_CREATE=OFF
# Default setting (for pkgsrc)
CMAKE_ARGS+= -Wno-dev
CMAKE_ARGS+= -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE
CMAKE_ARGS+= -DCMAKE_INCLUDE_PATH=${PREFIX}/include/portaudio2
CMAKE_ARGS+= -DCMAKE_LIBRARY_PATH=${PREFIX}/lib/portaudio2
CMAKE_ARGS+= -DCMAKE_INSTALL_RPATH=${PREFIX}/lib:${PREFIX}/lib/portaudio2
CMAKE_ARGS+= -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE
CMAKE_ARGS+= -DLIBUSB_INCLUDE_DIR=${PREFIX}/include/libusb-1.0
CMAKE_ARGS+= -Dpybind11_DIR=${PREFIX}/${PYSITELIB}/pybind11/share/cmake/pybind11
CMAKE_ARGS+= -DGR_LIBRARY_DIR=${PREFIX}/lib
CMAKE_ARGS+= -DGR_PREFSDIR=${PREFIX}/share/gnuradio/examples/
# adhoc setup not to pick non default version (say python3.6)
# at configure
#MAKE_ARGS+= -DPYTHON_EXECUTABLE=${PREFIX}/bin/python${PYVERSSUFFIX}
CMAKE_ARGS+= -DZEROMQ_INCLUDE_DIRS=${PREFIX}/include
CMAKE_ARG_PATH= ../
.include "options.mk"
# disable/enable ALSA, see also patches/patch-gr-audio_lib_CMakeLists.txt
SUBST_CLASSES+= alsa
SUBST_MESSAGE.alsa= Arrange the patched line depepending on alsa is in PKG_OPTIONS or not
SUBST_FILES.alsa+= gr-audio/lib/CMakeLists.txt
## The value of ${ALSA_ENABLED} is either '#' or '' by options.mk.
SUBST_SED.alsa= -e 's,@@ALSA@@,${ALSA_ENABLED},'
SUBST_STAGE.alsa= pre-configure
SUBST_CLASSES+= prefix
SUBST_STAGE.prefix= pre-configure
SUBST_MESSAGE.prefix= Substitute PREFIX
SUBST_FILES.prefix= gnuradio-runtime/lib/constants.cc.in
SUBST_VARS.prefix= PREFIX
REPLACE_PYTHON= */*.py */*/*.py */*/*/*.py */*/*/*/*.py */*/*/*/*/*.py \
*/*/*/*/*/*/*.py */*/*/*/*/*/*/*.py */*/*/*/*/*/*/*/*.py
pre-configure:
${MKDIR} ${WRKSRC}/build
do-install:
cd ${WRKSRC}/${BUILD_DIRS} && ${GMAKE} DESTDIR=${DESTDIR} install
.include "../../audio/gsm/buildlink3.mk"
.include "../../audio/jack/buildlink3.mk"
.include "../../audio/portaudio/buildlink3.mk"
.include "../../devel/boost-headers/buildlink3.mk"
.include "../../devel/boost-libs/buildlink3.mk"
.include "../../devel/cppunit/buildlink3.mk"
.include "../../devel/gmp/buildlink3.mk"
BUILDLINK_API_DEPENDS.py-pybind11+= ${PYPKGPREFIX}-pybind11>=2.6.0
.include "../../devel/py-pybind11/buildlink3.mk"
.include "../../graphics/cairo/buildlink3.mk"
.include "../../graphics/cairo-gobject/buildlink3.mk"
.include "../../lang/python/application.mk"
.include "../../math/py-numpy/buildlink3.mk"
.include "../../math/fftw/buildlink3.mk"
.include "../../math/gsl/buildlink3.mk"
.include "../../math/volk/buildlink3.mk"
.include "../../textproc/log4cpp/buildlink3.mk"
.include "../../textproc/icu/buildlink3.mk"
.include "../../x11/gtk3/buildlink3.mk"