gnuradio.mk 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. ################################################################################
  2. #
  3. # gnuradio
  4. #
  5. ################################################################################
  6. GNURADIO_VERSION = 3.10.7.0
  7. GNURADIO_SITE = $(call github,gnuradio,gnuradio,v$(GNURADIO_VERSION))
  8. GNURADIO_LICENSE = GPL-3.0+
  9. GNURADIO_LICENSE_FILES = COPYING
  10. GNURADIO_SUPPORTS_IN_SOURCE_BUILD = NO
  11. GNURADIO_DEPENDENCIES = \
  12. host-python3 \
  13. boost \
  14. log4cpp \
  15. gmp \
  16. spdlog \
  17. volk
  18. GNURADIO_CONF_OPTS = \
  19. -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 \
  20. -DENABLE_DEFAULT=OFF \
  21. -DENABLE_EXAMPLES=OFF \
  22. -DENABLE_GNURADIO_RUNTIME=ON \
  23. -DENABLE_TESTING=OFF \
  24. -DXMLTO_EXECUTABLE=NOTFOUND
  25. # For third-party blocks, the gnuradio libraries are mandatory at
  26. # compile time.
  27. GNURADIO_INSTALL_STAGING = YES
  28. ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
  29. GNURADIO_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic
  30. endif
  31. ifeq ($(BR2_PACKAGE_GNURADIO_ANALOG),y)
  32. GNURADIO_CONF_OPTS += -DENABLE_GR_ANALOG=ON
  33. else
  34. GNURADIO_CONF_OPTS += -DENABLE_GR_ANALOG=OFF
  35. endif
  36. ifeq ($(BR2_PACKAGE_GNURADIO_AUDIO),y)
  37. ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
  38. GNURADIO_DEPENDENCIES += alsa-lib
  39. endif
  40. ifeq ($(BR2_PACKAGE_PORTAUDIO),y)
  41. GNURADIO_DEPENDENCIES += portaudio
  42. endif
  43. GNURADIO_CONF_OPTS += -DENABLE_GR_AUDIO=ON
  44. else
  45. GNURADIO_CONF_OPTS += -DENABLE_GR_AUDIO=OFF
  46. endif
  47. ifeq ($(BR2_PACKAGE_GNURADIO_BLOCKS),y)
  48. GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=ON
  49. ifeq ($(BR2_PACKAGE_LIBSNDFILE),y)
  50. GNURADIO_DEPENDENCIES += libsndfile
  51. endif
  52. else
  53. GNURADIO_CONF_OPTS += -DENABLE_GR_BLOCKS=OFF
  54. endif
  55. ifeq ($(BR2_PACKAGE_GNURADIO_CHANNELS),y)
  56. GNURADIO_CONF_OPTS += -DENABLE_GR_CHANNELS=ON
  57. else
  58. GNURADIO_CONF_OPTS += -DENABLE_GR_CHANNELS=OFF
  59. endif
  60. ifeq ($(BR2_PACKAGE_GNURADIO_CTRLPORT),y)
  61. GNURADIO_CONF_OPTS += -DENABLE_GR_CTRLPORT=ON
  62. else
  63. GNURADIO_CONF_OPTS += -DENABLE_GR_CTRLPORT=OFF
  64. endif
  65. ifeq ($(BR2_PACKAGE_GNURADIO_DIGITAL),y)
  66. GNURADIO_CONF_OPTS += -DENABLE_GR_DIGITAL=ON
  67. else
  68. GNURADIO_CONF_OPTS += -DENABLE_GR_DIGITAL=OFF
  69. endif
  70. ifeq ($(BR2_PACKAGE_GNURADIO_DTV),y)
  71. GNURADIO_CONF_OPTS += -DENABLE_GR_DTV=ON
  72. else
  73. GNURADIO_CONF_OPTS += -DENABLE_GR_DTV=OFF
  74. endif
  75. ifeq ($(BR2_PACKAGE_GNURADIO_FEC),y)
  76. GNURADIO_DEPENDENCIES += gsl
  77. GNURADIO_CONF_OPTS += -DENABLE_GR_FEC=ON
  78. else
  79. GNURADIO_CONF_OPTS += -DENABLE_GR_FEC=OFF
  80. endif
  81. ifeq ($(BR2_PACKAGE_GNURADIO_FFT),y)
  82. GNURADIO_DEPENDENCIES += fftw-single
  83. GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=ON
  84. else
  85. GNURADIO_CONF_OPTS += -DENABLE_GR_FFT=OFF
  86. endif
  87. ifeq ($(BR2_PACKAGE_GNURADIO_FILTER),y)
  88. GNURADIO_CONF_OPTS += -DENABLE_GR_FILTER=ON
  89. else
  90. GNURADIO_CONF_OPTS += -DENABLE_GR_FILTER=OFF
  91. endif
  92. ifeq ($(BR2_PACKAGE_GNURADIO_NETWORK),y)
  93. GNURADIO_CONF_OPTS += -DENABLE_GR_NETWORK=ON
  94. else
  95. GNURADIO_CONF_OPTS += -DENABLE_GR_NETWORK=OFF
  96. endif
  97. ifeq ($(BR2_PACKAGE_GNURADIO_PYTHON),y)
  98. GNURADIO_DEPENDENCIES += python3 python-pybind \
  99. host-python-numpy host-python-packaging
  100. GNURADIO_CONF_OPTS += -DENABLE_PYTHON=ON
  101. # mandatory to avoid pybind11 to overwrite variables provided
  102. # by gnuradio and buildroot
  103. GNURADIO_CONF_OPTS += -DPYBIND11_PYTHONLIBS_OVERWRITE=OFF
  104. # mandatory to avoid pybind11 to force libraries extensions
  105. # with a name based on host architecture
  106. GNURADIO_CONF_ENV += _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
  107. PYTHONPATH=$(PYTHON3_PATH)
  108. # mandatory to install python modules in site-packages and to use
  109. # correct path for python libraries
  110. GNURADIO_CONF_OPTS += -DGR_PYTHON_RELATIVE=ON \
  111. -DGR_PYTHON_DIR=lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
  112. else
  113. GNURADIO_CONF_OPTS += -DENABLE_PYTHON=OFF
  114. endif
  115. ifeq ($(BR2_PACKAGE_GNURADIO_QTGUI),y)
  116. GNURADIO_DEPENDENCIES += qt5base python-pyqt5 qwt
  117. GNURADIO_CONF_OPTS += -DENABLE_GR_QTGUI=ON
  118. else
  119. GNURADIO_CONF_OPTS += -DENABLE_GR_QTGUI=OFF
  120. endif
  121. ifeq ($(BR2_PACKAGE_GNURADIO_TRELLIS),y)
  122. GNURADIO_CONF_OPTS += -DENABLE_GR_TRELLIS=ON
  123. else
  124. GNURADIO_CONF_OPTS += -DENABLE_GR_TRELLIS=OFF
  125. endif
  126. ifeq ($(BR2_PACKAGE_GNURADIO_UHD),y)
  127. GNURADIO_DEPENDENCIES += uhd
  128. GNURADIO_CONF_OPTS += -DENABLE_GR_UHD=ON
  129. else
  130. GNURADIO_CONF_OPTS += -DENABLE_GR_UHD=OFF
  131. endif
  132. ifeq ($(BR2_PACKAGE_GNURADIO_UTILS),y)
  133. GNURADIO_CONF_OPTS += -DENABLE_GR_UTILS=ON
  134. else
  135. GNURADIO_CONF_OPTS += -DENABLE_GR_UTILS=OFF
  136. endif
  137. ifeq ($(BR2_PACKAGE_GNURADIO_ZEROMQ),y)
  138. GNURADIO_DEPENDENCIES += cppzmq
  139. ifeq ($(BR2_PACKAGE_GNURADIO_PYTHON),y)
  140. GNURADIO_DEPENDENCIES += python-pyzmq
  141. endif
  142. GNURADIO_CONF_OPTS += -DENABLE_GR_ZEROMQ=ON
  143. else
  144. GNURADIO_CONF_OPTS += -DENABLE_GR_ZEROMQ=OFF
  145. endif
  146. $(eval $(cmake-package))