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