Merge pull request #4853 from StevenHessing/noddos
[feed/packages.git] / sound / squeezelite / Makefile
1 #
2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
4 #
5
6 include $(TOPDIR)/rules.mk
7
8 PKG_NAME:=squeezelite
9 PKG_VERSION:=1.8.4-743
10 PKG_RELEASE=2
11
12 PKG_LICENSE:=GPL-3.0
13 PKG_LICENSE_FILES:=LICENSE.txt
14 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
15
16 PKG_SOURCE_PROTO:=git
17 PKG_SOURCE_URL:=https://github.com/ralph-irving/squeezelite.git
18 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
19 PKG_SOURCE_VERSION:=e37ed17fed9e11a7346cbe9f1e1deeccc051f42e
20 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
21 PKG_MIRROR_HASH:=b6ea4a11366330790f5e36bd875b45bb19a9772dfc984c462f436dfca30256c0
22
23 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
24
25 PKG_BUILD_DEPENDS:=libflac libvorbis libmpg123 libfaad2 SQUEEZELITE_WMA:libffmpeg-audio-dec
26
27 include $(INCLUDE_DIR)/package.mk
28
29 define Package/squeezelite/default
30 SECTION:=sound
31 CATEGORY:=Sound
32 TITLE:=Headless squeezebox emulator
33 PROVIDES:=squeezelite
34 URL:=https://github.com/ralph-irving/squeezelite
35 DEPENDS:= +alsa-lib +SQUEEZELITE_RESAMPLE:libsoxr
36 MENU:=1
37 endef
38
39 define Package/squeezelite-full
40 $(call Package/squeezelite/default)
41 TITLE+= (full)
42 DEPENDS+= +libflac +libvorbis +libmpg123 +libfaad2 \
43 +SQUEEZELITE_WMA:libffmpeg-audio-dec
44 VARIANT:=full
45 endef
46
47 define Package/squeezelite-mini
48 $(call Package/squeezelite/default)
49 TITLE+= (minimal)
50 VARIANT:=mini
51 endef
52
53 define Package/squeezelite/config/default
54
55 config SQUEEZELITE_WMA
56 bool "WMA/ALAC decode support"
57 help
58 Include WMA and ALAC decoding using ffmpeg
59 default n
60
61 config SQUEEZELITE_RESAMPLE
62 bool "Resample support"
63 help
64 Include support for resampling using libsoxr
65 default n
66
67 config SQUEEZELITE_DSD
68 bool "DSD playback over PCM (DoP)"
69 help
70 Include support for DSD over PCM for compatible DAC"
71 default n
72 endef
73
74 define Package/squeezelite-full/config
75 if PACKAGE_squeezelite-full
76 $(call Package/squeezelite/config/default)
77 endif
78 endef
79
80 define Package/squeezelite-mini/config
81 if PACKAGE_squeezelite-mini
82 $(call Package/squeezelite/config/default)
83 endif
84 endef
85
86 define Package/squeezelite/description/default
87 Squeezelite is a small headless squeezebox emulator for linux using alsa audio output
88 It is aimed at supporting high quality audio at multiple sample rates including
89 44.1/48/88.2/96/176.4/192k/352.8/384kHz
90 Supported codecs: mp3, flac, ogg, aac, (wma and alac via ffmpeg)
91 Native support for PCM builtin
92 Optional support of DSD playback via PCM for DoP capable DAC
93 Optional resampling to match sound device
94 endef
95
96 define Package/squeezelite/description
97 $(call Package/squeezelite/description/default)
98 .
99 This package has all the audio codecs compiled in.
100 endef
101
102 define Package/squeezelite-mini/description
103 $(call Package/squeezelite/description/default)
104 .
105 This package will dynamically load installed codecs.
106 endef
107
108 #ifeq ($(CONFIG_SQUEEZELITE_WMA),y)
109 # PKG_BUILD_DEPENDS+= libffmpeg-audio-dec
110 #endif
111
112 TARGET_CFLAGS+= -Wall -fPIC -O2 -DSELFPIPE
113
114 ifeq ($(CONFIG_SQUEEZELITE_WMA),y)
115 TARGET_CFLAGS+= -DFFMPEG
116 endif
117
118 ifeq ($(CONFIG_SQUEEZELITE_DSD),y)
119 TARGET_CFLAGS+= -DDSD
120 endif
121
122 ifeq ($(CONFIG_SQUEEZELITE_RESAMPLE),y)
123 TARGET_CFLAGS+= -DRESAMPLE
124 endif
125
126 TARGET_LDFLAGS+= -lasound -lpthread -lm -lrt
127
128 ifeq ($(BUILD_VARIANT),full)
129 TARGET_CFLAGS+= -DLINKALL
130 TARGET_LDFLAGS+= -lvorbis -logg
131 endif
132
133 define Package/squeezelite/install
134 $(INSTALL_DIR) $(1)/usr/bin
135 $(INSTALL_BIN) $(PKG_BUILD_DIR)/squeezelite $(1)/usr/bin
136 $(INSTALL_DIR) $(1)/etc/init.d
137 $(INSTALL_BIN) ./files/squeezelite.init $(1)/etc/init.d/squeezelite
138 $(INSTALL_DIR) $(1)/etc/config
139 $(INSTALL_CONF) ./files/squeezelite.conf $(1)/etc/config/squeezelite
140 endef
141
142 Package/squeezelite-mini/install=$(Package/squeezelite/install)
143 Package/squeezelite-full/install=$(Package/squeezelite/install)
144
145 $(eval $(call BuildPackage,squeezelite-mini))
146 $(eval $(call BuildPackage,squeezelite-full))