The squeezelite packages were lacking some features/codecs (ssl, opus, wma, dsd and resampling) and required manual compilation to enable these features/codecs. Now there are 3 packages available that hopefully should satisfy most users: * full This package enables all features and codecs. * dynamic This package only enables PCM/AIFF and MP3 codecs and all other features/codecs can be added by manually installing OpenWrt packages. * custom This package allows for customizing squeezelite. Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
248 lines
6.6 KiB
Makefile
248 lines
6.6 KiB
Makefile
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=squeezelite
|
|
PKG_VERSION:=1.9.9-1432
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL:=https://github.com/ralph-irving/squeezelite
|
|
PKG_SOURCE_VERSION:=575b59398dd19945d2038474062240fc527407fb
|
|
PKG_MIRROR_HASH:=1f1ae2514b7e9da81cf4881a79a810bfe4768a16209ccc903edd434aef8f96d6
|
|
|
|
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
|
|
PKG_LICENSE:=GPL-3.0-or-later
|
|
PKG_LICENSE_FILES:=LICENSE.txt
|
|
|
|
PKG_BUILD_DEPENDS:=faad2 ffmpeg flac libsoxr libvorbis openssl opusfile
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/squeezelite/default
|
|
SECTION:=sound
|
|
CATEGORY:=Sound
|
|
TITLE:=Headless squeezebox emulator
|
|
PROVIDES:=squeezelite
|
|
URL:=https://github.com/ralph-irving/squeezelite
|
|
DEPENDS:=+alsa-lib
|
|
endef
|
|
|
|
define Package/squeezelite-full
|
|
$(call Package/squeezelite/default)
|
|
TITLE+= (full)
|
|
VARIANT:=full
|
|
DEPENDS+= +libfaad2 +libffmpeg-audio-dec +libflac +libmpg123 \
|
|
+libopenssl +libopusfile +libsoxr +libvorbis
|
|
endef
|
|
|
|
define Package/squeezelite-dynamic
|
|
$(call Package/squeezelite/default)
|
|
TITLE+= (dynamic)
|
|
VARIANT:=dynamic
|
|
DEPENDS+= +libmpg123
|
|
endef
|
|
|
|
define Package/squeezelite-custom
|
|
$(call Package/squeezelite/default)
|
|
TITLE+= (custom)
|
|
VARIANT:=custom
|
|
DEPENDS+= @!ALL \
|
|
+SQUEEZELITE_AAC:libfaad2 \
|
|
+SQUEEZELITE_FLAC:libflac \
|
|
+SQUEEZELITE_MP3_MAD:libmad \
|
|
+SQUEEZELITE_MP3_MPG123:libmpg123 \
|
|
+SQUEEZELITE_OPUS:libopusfile \
|
|
+SQUEEZELITE_RESAMPLE:libsoxr \
|
|
+SQUEEZELITE_SSL:libopenssl \
|
|
+SQUEEZELITE_VORBIS:libvorbis \
|
|
+SQUEEZELITE_VORBIS_TREMOR:libvorbisidec \
|
|
+SQUEEZELITE_WMA_ALAC:libffmpeg-audio-dec
|
|
MENU:=1
|
|
endef
|
|
|
|
define Package/squeezelite-custom/config
|
|
if PACKAGE_squeezelite-custom
|
|
config SQUEEZELITE_AAC
|
|
bool "AAC codec support"
|
|
help
|
|
AAC codec support
|
|
default n
|
|
|
|
config SQUEEZELITE_DSD
|
|
bool "DSD playback over PCM (DoP)"
|
|
help
|
|
Include support for DSD over PCM for compatible DAC
|
|
default n
|
|
|
|
config SQUEEZELITE_FLAC
|
|
bool "FLAC codec support"
|
|
help
|
|
FLAC codec support
|
|
default n
|
|
|
|
config SQUEEZELITE_MP3_MAD
|
|
bool "MP3 codec support (libmad)"
|
|
help
|
|
MP3 codec support (libmad)
|
|
default n
|
|
|
|
config SQUEEZELITE_MP3_MPG123
|
|
bool "MP3 codec support (libmpg123)"
|
|
help
|
|
MP3 codec support (libmpg123)
|
|
default n
|
|
|
|
config SQUEEZELITE_OPUS
|
|
bool "Opus codec support"
|
|
help
|
|
Opus codec support
|
|
default n
|
|
|
|
config SQUEEZELITE_RESAMPLE
|
|
bool "Resample support"
|
|
help
|
|
Include support for resampling using libsoxr
|
|
default n
|
|
|
|
config SQUEEZELITE_SSL
|
|
bool "SSL/TLS support"
|
|
help
|
|
Include SSL/TLS support for use with e.g. https media URLs
|
|
default n
|
|
|
|
config SQUEEZELITE_VORBIS
|
|
bool "Vorbis codec support"
|
|
help
|
|
Vorbis codec support
|
|
default n
|
|
|
|
config SQUEEZELITE_VORBIS_TREMOR
|
|
bool "Vorbis codec support (Tremor)"
|
|
help
|
|
Vorbis codec support (Tremor (libvorbisidec))
|
|
default n
|
|
|
|
config SQUEEZELITE_WMA_ALAC
|
|
bool "WMA/ALAC decode support"
|
|
help
|
|
WMA and ALAC codec support
|
|
default n
|
|
endif
|
|
endef
|
|
|
|
define Package/squeezelite/description/default
|
|
Squeezelite is a small headless squeezebox emulator for linux using alsa audio output
|
|
|
|
It is aimed at supporting high quality audio at multiple sample rates including
|
|
44.1/48/88.2/96/176.4/192/352.8/384 kHz
|
|
endef
|
|
|
|
define Package/squeezelite-full/description
|
|
$(call Package/squeezelite/description/default)
|
|
This package includes all features and codecs.
|
|
|
|
Supported codecs: AAC, AIFF, ALAC, FLAC, MP3, Ogg, Opus, PCM and WMA
|
|
Features:
|
|
* Resampling to match sound device
|
|
* DSD playback via PCM for DoP capable DAC
|
|
endef
|
|
|
|
define Package/squeezelite-dynamic/description
|
|
$(call Package/squeezelite/description/default)
|
|
This package includes some basic functionality, and it's possible to
|
|
add more features and codecs by manually installing additional libraries.
|
|
|
|
Built in codec support: AIFF, MP3, PCM
|
|
|
|
The following features and codecs can be enabled by installing additional
|
|
libraries (library package name in parentheses):
|
|
* Resampling (libsoxr)
|
|
* Codecs:
|
|
* AAC (libfaad2)
|
|
* FLAC (libflac)
|
|
* Ogg (libvorbis or libvorbisidec)
|
|
* Opus (libopusfile)
|
|
* WMA and ALAC (libffmpeg-audio-dec)
|
|
endef
|
|
|
|
define Package/squeezelite-custom/description
|
|
$(call Package/squeezelite/description/default)
|
|
This package allows for customizing squeezelite with specific codecs and features.
|
|
endef
|
|
|
|
ifeq ($(BUILD_VARIANT),full)
|
|
opts+= -DLINKALL
|
|
opts+= -DDSD -DFFMPEG -DOPUS -DRESAMPLE -DUSE_SSL
|
|
opts+= -DNO_MAD
|
|
TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/opus
|
|
else ifeq ($(BUILD_VARIANT),dynamic)
|
|
opts+= -DFFMPEG -DOPUS -DRESAMPLE -DUSE_SSL
|
|
opts+= -DNO_MAD
|
|
TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/opus
|
|
else ifeq ($(BUILD_VARIANT),custom)
|
|
ifneq ($(CONFIG_SQUEEZELITE_AAC),y)
|
|
opts+= -DNO_FAAD
|
|
endif
|
|
|
|
ifeq ($(CONFIG_SQUEEZELITE_DSD),y)
|
|
opts+= -DDSD
|
|
endif
|
|
|
|
ifneq ($(CONFIG_SQUEEZELITE_MP3_MAD),y)
|
|
opts+= -DNO_MAD
|
|
endif
|
|
|
|
ifneq ($(CONFIG_SQUEEZELITE_MP3_MPG123),y)
|
|
opts+= -DNO_MPG123
|
|
endif
|
|
|
|
ifeq ($(CONFIG_SQUEEZELITE_OPUS),y)
|
|
opts+= -DOPUS
|
|
TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/opus
|
|
endif
|
|
|
|
ifeq ($(CONFIG_SQUEEZELITE_RESAMPLE),y)
|
|
opts+= -DRESAMPLE
|
|
endif
|
|
|
|
ifeq ($(CONFIG_SQUEEZELITE_SSL),y)
|
|
opts+= -DUSE_SSL
|
|
endif
|
|
|
|
ifeq ($(CONFIG_SQUEEZELITE_WMA_ALAC),y)
|
|
opts+= -DFFMPEG
|
|
endif
|
|
|
|
endif
|
|
|
|
MAKE_FLAGS+=OPTS="$(opts)"
|
|
|
|
define Package/squeezelite/conffiles
|
|
/etc/config/squeezelite
|
|
endef
|
|
|
|
Package/squeezelite-full/conffiles = $(Package/squeezelite/conffiles)
|
|
Package/squeezelite-dynamic/conffiles = $(Package/squeezelite/conffiles)
|
|
Package/squeezelite-custom/conffiles = $(Package/squeezelite/conffiles)
|
|
|
|
define Package/squeezelite/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/squeezelite $(1)/usr/bin
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/squeezelite.init $(1)/etc/init.d/squeezelite
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/squeezelite.conf $(1)/etc/config/squeezelite
|
|
endef
|
|
|
|
Package/squeezelite-full/install=$(Package/squeezelite/install)
|
|
Package/squeezelite-dynamic/install=$(Package/squeezelite/install)
|
|
Package/squeezelite-custom/install=$(Package/squeezelite/install)
|
|
|
|
$(eval $(call BuildPackage,squeezelite-full))
|
|
$(eval $(call BuildPackage,squeezelite-dynamic))
|
|
$(eval $(call BuildPackage,squeezelite-custom))
|