Files
packages/sound/squeezelite/Makefile
T
Robert Högberg 95dedb70f6 squeezelite: Remove codec auto configuration
.. because it's confusing and doesn't seem to add any value.

The "auto configuration" looks for installed codec libraries and tells
squeezelite (through command line arguments) to exclude codec support if a
required library is missing.

If you have installed squeezelite-full, then all required codec libraries
are automatically installed as dependencies and the squeezelite binary won't
even run if there are missing libraries - ie the "auto configuration" will
always find all codecs and never disable any codecs. Toggling "auto
configuration" makes no difference and the setting is just confusing.

If you install squeezelite-mini the "auto configuration" can work, but
library checks are already done by dlopen() calls in squeezelite and codecs
are disabled if the necessary libraries are not found - ie the "auto
configuration" duplicates the library checks of squeezelite itself.

Signed-off-by: Robert Högberg <robert.hogberg@gmail.com>
2019-07-02 10:01:35 +02:00

142 lines
3.8 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.1-1130
PKG_RELEASE:=2
PKG_LICENSE:=GPL-3.0
PKG_LICENSE_FILES:=LICENSE.txt
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/ralph-irving/squeezelite.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=451cad8da651073d18118fb9ca39faef550825ff
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
PKG_MIRROR_HASH:=e6082b486e364c8cbd7db96fc06dc5243242a3ac786113e42e3061c06ea8889e
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
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 +SQUEEZELITE_RESAMPLE:libsoxr
MENU:=1
endef
define Package/squeezelite-full
$(call Package/squeezelite/default)
TITLE+= (full)
DEPENDS+= +libflac +libvorbis +libmpg123 +libfaad2 \
+SQUEEZELITE_WMA:libffmpeg-audio-dec
VARIANT:=full
endef
define Package/squeezelite-mini
$(call Package/squeezelite/default)
TITLE+= (minimal)
VARIANT:=mini
endef
define Package/squeezelite/config/default
config SQUEEZELITE_WMA
bool "WMA/ALAC decode support"
help
Include WMA and ALAC decoding using ffmpeg
default n
config SQUEEZELITE_RESAMPLE
bool "Resample support"
help
Include support for resampling using libsoxr
default n
config SQUEEZELITE_DSD
bool "DSD playback over PCM (DoP)"
help
Include support for DSD over PCM for compatible DAC"
default n
endef
define Package/squeezelite-full/config
if PACKAGE_squeezelite-full
$(call Package/squeezelite/config/default)
endif
endef
define Package/squeezelite-mini/config
if PACKAGE_squeezelite-mini
$(call Package/squeezelite/config/default)
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/192k/352.8/384kHz
Supported codecs: mp3, flac, ogg, aac, (wma and alac via ffmpeg)
Native support for PCM builtin
Optional support of DSD playback via PCM for DoP capable DAC
Optional resampling to match sound device
endef
define Package/squeezelite-full/description
$(call Package/squeezelite/description/default)
This package has all the audio codecs compiled in.
endef
define Package/squeezelite-mini/description
$(call Package/squeezelite/description/default)
This package will dynamically load installed codecs.
endef
ifeq ($(CONFIG_SQUEEZELITE_WMA),y)
opts+= -DFFMPEG
endif
ifeq ($(CONFIG_SQUEEZELITE_DSD),y)
opts+= -DDSD
endif
ifeq ($(CONFIG_SQUEEZELITE_RESAMPLE),y)
opts+= -DRESAMPLE
endif
ifeq ($(BUILD_VARIANT),full)
opts+= -DLINKALL
endif
MAKE_FLAGS+=OPTS="$(opts)"
# Squeezelite uses functions which are deprecated in recent ffmpeg versions.
# See https://github.com/ralph-irving/squeezelite/issues/60
TARGET_CFLAGS+=-Wno-deprecated-declarations
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-mini/install=$(Package/squeezelite/install)
Package/squeezelite-full/install=$(Package/squeezelite/install)
$(eval $(call BuildPackage,squeezelite-mini))
$(eval $(call BuildPackage,squeezelite-full))