mpd.mk 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. ################################################################################
  2. #
  3. # mpd
  4. #
  5. ################################################################################
  6. MPD_VERSION_MAJOR = 0.24
  7. MPD_VERSION = $(MPD_VERSION_MAJOR).6
  8. MPD_SOURCE = mpd-$(MPD_VERSION).tar.xz
  9. MPD_SITE = https://www.musicpd.org/download/mpd/$(MPD_VERSION_MAJOR)
  10. MPD_DEPENDENCIES = host-pkgconf fmt
  11. MPD_LICENSE = GPL-2.0+
  12. MPD_LICENSE_FILES = COPYING
  13. MPD_CPE_ID_VENDOR = musicpd
  14. MPD_CPE_ID_PRODUCT = music_player_demon
  15. MPD_SELINUX_MODULES = mpd
  16. MPD_CONF_OPTS = \
  17. -Daudiofile=disabled \
  18. -Ddocumentation=disabled \
  19. -Dmpcdec=disabled \
  20. -Dopenmpt=disabled \
  21. -Dpipewire=disabled \
  22. -Dsnapcast=false
  23. # Zeroconf support depends on libdns_sd from avahi.
  24. ifeq ($(BR2_PACKAGE_MPD_AVAHI_SUPPORT),y)
  25. MPD_DEPENDENCIES += avahi
  26. MPD_CONF_OPTS += -Dzeroconf=avahi
  27. else
  28. MPD_CONF_OPTS += -Dzeroconf=disabled
  29. endif
  30. ifeq ($(BR2_PACKAGE_EXPAT),y)
  31. MPD_DEPENDENCIES += expat
  32. MPD_CONF_OPTS += -Dexpat=enabled
  33. else
  34. MPD_CONF_OPTS += -Dexpat=disabled
  35. endif
  36. # MPD prefers libicu for utf8 collation instead of libglib2.
  37. ifeq ($(BR2_PACKAGE_ICU),y)
  38. MPD_DEPENDENCIES += icu
  39. MPD_CONF_OPTS += -Dicu=enabled
  40. else
  41. MPD_CONF_OPTS += -Dicu=disabled
  42. endif
  43. ifeq ($(BR2_PACKAGE_JSON_FOR_MODERN_CPP),y)
  44. MPD_DEPENDENCIES += json-for-modern-cpp
  45. MPD_CONF_OPTS += -Dnlohmann_json=enabled
  46. else
  47. MPD_CONF_OPTS += -Dnlohmann_json=disabled
  48. endif
  49. ifeq ($(BR2_PACKAGE_MPD_ALSA),y)
  50. MPD_DEPENDENCIES += alsa-lib
  51. MPD_CONF_OPTS += -Dalsa=enabled
  52. else
  53. MPD_CONF_OPTS += -Dalsa=disabled
  54. endif
  55. ifeq ($(BR2_PACKAGE_MPD_AO),y)
  56. MPD_DEPENDENCIES += libao
  57. MPD_CONF_OPTS += -Dao=enabled
  58. else
  59. MPD_CONF_OPTS += -Dao=disabled
  60. endif
  61. ifeq ($(BR2_PACKAGE_MPD_BZIP2),y)
  62. MPD_DEPENDENCIES += bzip2
  63. MPD_CONF_OPTS += -Dbzip2=enabled
  64. else
  65. MPD_CONF_OPTS += -Dbzip2=disabled
  66. endif
  67. ifeq ($(BR2_PACKAGE_MPD_CDIO_PARANOIA),y)
  68. MPD_DEPENDENCIES += libcdio-paranoia
  69. MPD_CONF_OPTS += -Dcdio_paranoia=enabled
  70. else
  71. MPD_CONF_OPTS += -Dcdio_paranoia=disabled
  72. endif
  73. ifeq ($(BR2_PACKAGE_MPD_CURL),y)
  74. MPD_DEPENDENCIES += libcurl
  75. MPD_CONF_OPTS += -Dcurl=enabled
  76. else
  77. MPD_CONF_OPTS += -Dcurl=disabled
  78. endif
  79. ifeq ($(BR2_PACKAGE_MPD_DSD),y)
  80. MPD_CONF_OPTS += -Ddsd=true
  81. else
  82. MPD_CONF_OPTS += -Ddsd=false
  83. endif
  84. ifeq ($(BR2_PACKAGE_MPD_FAAD2),y)
  85. MPD_DEPENDENCIES += faad2
  86. MPD_CONF_OPTS += -Dfaad=enabled
  87. else
  88. MPD_CONF_OPTS += -Dfaad=disabled
  89. endif
  90. ifeq ($(BR2_PACKAGE_MPD_FFMPEG),y)
  91. MPD_DEPENDENCIES += ffmpeg
  92. MPD_CONF_OPTS += -Dffmpeg=enabled
  93. else
  94. MPD_CONF_OPTS += -Dffmpeg=disabled
  95. endif
  96. ifeq ($(BR2_PACKAGE_MPD_FLAC),y)
  97. MPD_DEPENDENCIES += flac
  98. MPD_CONF_OPTS += -Dflac=enabled
  99. else
  100. MPD_CONF_OPTS += -Dflac=disabled
  101. endif
  102. ifeq ($(BR2_PACKAGE_MPD_FLUIDSYNTH),y)
  103. MPD_DEPENDENCIES += fluidsynth
  104. MPD_CONF_OPTS += -Dfluidsynth=enabled
  105. else
  106. MPD_CONF_OPTS += -Dfluidsynth=disabled
  107. endif
  108. ifeq ($(BR2_PACKAGE_MPD_HTTPD_OUTPUT),y)
  109. MPD_CONF_OPTS += -Dhttpd=true
  110. else
  111. MPD_CONF_OPTS += -Dhttpd=false
  112. endif
  113. ifeq ($(BR2_PACKAGE_MPD_ID3TAG),y)
  114. MPD_DEPENDENCIES += libid3tag
  115. MPD_CONF_OPTS += -Did3tag=enabled
  116. else
  117. MPD_CONF_OPTS += -Did3tag=disabled
  118. endif
  119. ifeq ($(BR2_PACKAGE_MPD_IO_URING),y)
  120. MPD_DEPENDENCIES += liburing
  121. MPD_CONF_OPTS += -Dio_uring=enabled
  122. else
  123. MPD_CONF_OPTS += -Dio_uring=disabled
  124. endif
  125. ifeq ($(BR2_PACKAGE_MPD_JACK2),y)
  126. MPD_DEPENDENCIES += jack2
  127. MPD_CONF_OPTS += -Djack=enabled
  128. else
  129. MPD_CONF_OPTS += -Djack=disabled
  130. endif
  131. ifeq ($(BR2_PACKAGE_MPD_LAME),y)
  132. MPD_DEPENDENCIES += lame
  133. MPD_CONF_OPTS += -Dlame=enabled
  134. else
  135. MPD_CONF_OPTS += -Dlame=disabled
  136. endif
  137. ifeq ($(BR2_PACKAGE_MPD_LIBMPDCLIENT),y)
  138. MPD_DEPENDENCIES += libmpdclient
  139. MPD_CONF_OPTS += -Dlibmpdclient=enabled
  140. else
  141. MPD_CONF_OPTS += -Dlibmpdclient=disabled
  142. endif
  143. ifeq ($(BR2_PACKAGE_MPD_LIBMMS),y)
  144. MPD_DEPENDENCIES += libmms
  145. MPD_CONF_OPTS += -Dmms=enabled
  146. else
  147. MPD_CONF_OPTS += -Dmms=disabled
  148. endif
  149. ifeq ($(BR2_PACKAGE_MPD_LIBNFS),y)
  150. MPD_DEPENDENCIES += libnfs
  151. MPD_CONF_OPTS += -Dnfs=enabled
  152. else
  153. MPD_CONF_OPTS += -Dnfs=disabled
  154. endif
  155. ifeq ($(BR2_PACKAGE_MPD_LIBSMBCLIENT),y)
  156. MPD_DEPENDENCIES += samba4
  157. MPD_CONF_OPTS += -Dsmbclient=enabled
  158. else
  159. MPD_CONF_OPTS += -Dsmbclient=disabled
  160. endif
  161. ifeq ($(BR2_PACKAGE_MPD_LIBSAMPLERATE),y)
  162. MPD_DEPENDENCIES += libsamplerate
  163. MPD_CONF_OPTS += -Dlibsamplerate=enabled
  164. else
  165. MPD_CONF_OPTS += -Dlibsamplerate=disabled
  166. endif
  167. ifeq ($(BR2_PACKAGE_MPD_LIBSNDFILE),y)
  168. MPD_DEPENDENCIES += libsndfile
  169. MPD_CONF_OPTS += -Dsndfile=enabled
  170. else
  171. MPD_CONF_OPTS += -Dsndfile=disabled
  172. endif
  173. ifeq ($(BR2_PACKAGE_MPD_LIBSOXR),y)
  174. MPD_DEPENDENCIES += libsoxr
  175. MPD_CONF_OPTS += -Dsoxr=enabled
  176. else
  177. MPD_CONF_OPTS += -Dsoxr=disabled
  178. endif
  179. ifeq ($(BR2_PACKAGE_MPD_MAD),y)
  180. MPD_DEPENDENCIES += libmad
  181. MPD_CONF_OPTS += -Dmad=enabled
  182. else
  183. MPD_CONF_OPTS += -Dmad=disabled
  184. endif
  185. ifeq ($(BR2_PACKAGE_MPD_MODPLUG),y)
  186. MPD_DEPENDENCIES += libmodplug
  187. MPD_CONF_OPTS += -Dmodplug=enabled
  188. else
  189. MPD_CONF_OPTS += -Dmodplug=disabled
  190. endif
  191. ifeq ($(BR2_PACKAGE_MPD_MPG123),y)
  192. MPD_DEPENDENCIES += mpg123
  193. MPD_CONF_OPTS += -Dmpg123=enabled
  194. else
  195. MPD_CONF_OPTS += -Dmpg123=disabled
  196. endif
  197. ifeq ($(BR2_PACKAGE_MPD_NEIGHBOR_DISCOVERY_SUPPORT),y)
  198. MPD_CONF_OPTS += -Dneighbor=true
  199. else
  200. MPD_CONF_OPTS += -Dneighbor=false
  201. endif
  202. ifeq ($(BR2_PACKAGE_MPD_OPENAL),y)
  203. MPD_DEPENDENCIES += openal
  204. MPD_CONF_OPTS += -Dopenal=enabled
  205. else
  206. MPD_CONF_OPTS += -Dopenal=disabled
  207. endif
  208. ifeq ($(BR2_PACKAGE_MPD_OPUS),y)
  209. MPD_DEPENDENCIES += opus libogg
  210. MPD_CONF_OPTS += -Dopus=enabled
  211. else
  212. MPD_CONF_OPTS += -Dopus=disabled
  213. endif
  214. ifeq ($(BR2_PACKAGE_MPD_OSS),y)
  215. MPD_CONF_OPTS += -Doss=enabled
  216. else
  217. MPD_CONF_OPTS += -Doss=disabled
  218. endif
  219. ifeq ($(BR2_PACKAGE_MPD_PULSEAUDIO),y)
  220. MPD_DEPENDENCIES += pulseaudio
  221. MPD_CONF_OPTS += -Dpulse=enabled
  222. else
  223. MPD_CONF_OPTS += -Dpulse=disabled
  224. endif
  225. ifeq ($(BR2_PACKAGE_MPD_QOBUZ),y)
  226. MPD_DEPENDENCIES += libgcrypt
  227. MPD_CONF_OPTS += -Dqobuz=enabled
  228. else
  229. MPD_CONF_OPTS += -Dqobuz=disabled
  230. endif
  231. ifeq ($(BR2_PACKAGE_MPD_SHOUTCAST),y)
  232. MPD_DEPENDENCIES += libshout
  233. MPD_CONF_OPTS += -Dshout=enabled
  234. else
  235. MPD_CONF_OPTS += -Dshout=disabled
  236. endif
  237. ifeq ($(BR2_PACKAGE_MPD_SIDPLAY),y)
  238. MPD_DEPENDENCIES += libsidplay2
  239. MPD_CONF_OPTS += -Dsidplay=enabled
  240. else
  241. MPD_CONF_OPTS += -Dsidplay=disabled
  242. endif
  243. ifeq ($(BR2_PACKAGE_MPD_SQLITE),y)
  244. MPD_DEPENDENCIES += sqlite
  245. MPD_CONF_OPTS += -Dsqlite=enabled
  246. else
  247. MPD_CONF_OPTS += -Dsqlite=disabled
  248. endif
  249. ifeq ($(BR2_PACKAGE_MPD_TCP),y)
  250. MPD_CONF_OPTS += -Dtcp=true
  251. else
  252. MPD_CONF_OPTS += -Dtcp=false
  253. endif
  254. ifeq ($(BR2_PACKAGE_MPD_TREMOR),y)
  255. MPD_DEPENDENCIES += tremor
  256. MPD_CONF_OPTS += -Dtremor=enabled
  257. else
  258. MPD_CONF_OPTS += -Dtremor=disabled
  259. endif
  260. ifeq ($(BR2_PACKAGE_MPD_TWOLAME),y)
  261. MPD_DEPENDENCIES += twolame
  262. MPD_CONF_OPTS += -Dtwolame=enabled
  263. else
  264. MPD_CONF_OPTS += -Dtwolame=disabled
  265. endif
  266. ifeq ($(BR2_PACKAGE_MPD_UPNP_PUPNP),y)
  267. MPD_DEPENDENCIES += \
  268. libupnp
  269. MPD_CONF_OPTS += -Dupnp=pupnp
  270. else ifeq ($(BR2_PACKAGE_MPD_UPNP_NPUPNP),y)
  271. MPD_DEPENDENCIES += \
  272. libnpupnp
  273. MPD_CONF_OPTS += -Dupnp=npupnp
  274. else ifeq ($(BR2_PACKAGE_MPD_UPNP_DISABLED),y)
  275. MPD_CONF_OPTS += -Dupnp=disabled
  276. endif
  277. ifeq ($(BR2_PACKAGE_MPD_VORBIS),y)
  278. MPD_DEPENDENCIES += libvorbis
  279. MPD_CONF_OPTS += -Dvorbis=enabled -Dvorbisenc=enabled
  280. else
  281. MPD_CONF_OPTS += -Dvorbis=disabled -Dvorbisenc=disabled
  282. endif
  283. ifeq ($(BR2_PACKAGE_MPD_WAVPACK),y)
  284. MPD_DEPENDENCIES += wavpack
  285. MPD_CONF_OPTS += -Dwavpack=enabled
  286. else
  287. MPD_CONF_OPTS += -Dwavpack=disabled
  288. endif
  289. ifeq ($(BR2_PACKAGE_MPD_ZZIP),y)
  290. MPD_DEPENDENCIES += zziplib
  291. MPD_CONF_OPTS += -Dzzip=enabled
  292. else
  293. MPD_CONF_OPTS += -Dzzip=disabled
  294. endif
  295. define MPD_INSTALL_EXTRA_FILES
  296. $(INSTALL) -m 0644 -D package/mpd/mpd.conf $(TARGET_DIR)/etc/mpd.conf
  297. mkdir -p $(TARGET_DIR)/var/lib/mpd/music
  298. mkdir -p $(TARGET_DIR)/var/lib/mpd/playlists
  299. endef
  300. MPD_POST_INSTALL_TARGET_HOOKS += MPD_INSTALL_EXTRA_FILES
  301. define MPD_INSTALL_INIT_SYSV
  302. $(INSTALL) -m 0755 -D package/mpd/S95mpd \
  303. $(TARGET_DIR)/etc/init.d/S95mpd
  304. endef
  305. $(eval $(meson-package))