freebsd-ports/audio/squeezecenter/Makefile

203 lines
6.6 KiB
Makefile

# Ports collection makefile for: slimserver
# Date created: Wed Apr 14, 2004
# Whom: Brooks Davis <brooks@freebsd.org>
#
# $FreeBSD$
#
PORTNAME= slimserver
PORTVERSION= 6.5.1
CATEGORIES= audio
MASTER_SITES= http://www.slimdevices.com/downloads/SlimServer_v${PORTVERSION}/
DISTNAME= SlimServer_v${PORTVERSION}.no-cpan-arch
DIST_SUBDIR= slimserver
MAINTAINER= brooks@FreeBSD.org
COMMENT= Slim Devices audio streaming server
# Defaults support playback of relativly unrestricted formats on SB2 or
# SB3 devices and wired SB1 devices.
OPTIONS= APE "Support Monkey's Audio Codec input" on \
FAAD "Support AAC input via FAAD" on \
FLAC "Support FLAC output (and input on SliMP3 and SB1)" on \
LAME "Support MP3 output via LAME" off \
MUSEPACK "Support musepack input" on \
SHORTEN "Support Shorten input" off \
VORBIS "Support OGG Vorbis input (SliMP3 and SB1)" on
RESTRICTED= Contains non-redistributable firmware, documentation, and images
WRKSRC= ${WRKDIR}/SlimServer_v${PORTVERSION}
BUILD_DEPENDS+= ${SITE_PERL}/File/Which.pm:${PORTSDIR}/sysutils/p5-File-Which
RUN_DEPENDS+= ${LOCALBASE}/bin/mDNSResponderPosix:${PORTSDIR}/net/mDNSResponder \
${SITE_PERL}/Compress/Zlib.pm:${PORTSDIR}/archivers/p5-Compress-Zlib \
${SITE_PERL}/${PERL_ARCH}/DBD/mysql.pm:${PORTSDIR}/databases/p5-DBD-mysql \
${SITE_PERL}/${PERL_ARCH}/Digest/SHA1.pm:${PORTSDIR}/security/p5-Digest-SHA1 \
${SITE_PERL}/${PERL_ARCH}/HTML/Parser.pm:${PORTSDIR}/www/p5-HTML-Parser \
${SITE_PERL}/${PERL_ARCH}/Template.pm:${PORTSDIR}/www/p5-Template-Toolkit \
${SITE_PERL}/${PERL_ARCH}/Time/HiRes.pm:${PORTSDIR}/devel/p5-Time-HiRes \
${SITE_PERL}/${PERL_ARCH}/XML/Parser.pm:${PORTSDIR}/textproc/p5-XML-Parser
PKGINSTALL= ${WRKDIR}/pkg-install
USE_PERL5= yes
USE_MYSQL= yes
IGNORE_WITH_MYSQL= 323 40
SLIMCPANPKGS= YAML-Syck-0.64.tar.gz
ALLFILES= ${DISTFILES} ${SLIMCPANPKGS}
.include <bsd.port.pre.mk>
# We need a dependency on the server because slimserver runs the binary
# directly with a non-standard config.
RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${PORTSDIR}/databases/mysql${MYSQL_VER}-server
.if !defined(WITHOUT_APE)
RUN_DEPENDS+= mac:${PORTSDIR}/audio/mac
.endif
.if !defined(WITHOUT_FAAD)
RUN_DEPENDS+= faad:${PORTSDIR}/audio/faad
.endif
.if !defined(WITHOUT_FLAC)
RUN_DEPENDS+= flac:${PORTSDIR}/audio/flac
.endif
.if !defined(WITHOUT_LAME)
RUN_DEPENDS+= lame:${PORTSDIR}/audio/lame
.endif
.if !defined(WITHOUT_MUSEPACK)
RUN_DEPENDS+= mppdec:${PORTSDIR}/audio/musepack
.endif
.if !defined(WITHOUT_SHORTEN)
RUN_DEPENDS+= shorten:${PORTSDIR}/audio/shorten
.endif
.if !defined(WITHOUT_VORBIS)
RUN_DEPENDS+= oggdec:${PORTSDIR}/audio/vorbis-tools
.endif
USE_RC_SUBR= slimserver.sh
TMP_SLIMDIR= ${WRKDIR}/slimserver
TMP_DOCSDIR= ${WRKDIR}/doc
CPANWRKDIR= ${WRKDIR}/cpantemp
DOCFILES= Changelog.html Installation.txt License.txt
CONFFILES= convert.conf types.conf
EXCEPTFILES= ${DOCFILES} ${CONFFILES} MySQL/errmsg.txt MySQL/errmsg.sys
EXCEPTDIRS= Bin \
CPAN/arch
CPIOARGS= --quiet -pdum -R
PLIST= ${WRKDIR}/pkg-plist
PLIST_SUB= SLIMDIR=${SLIMDIR}
PLIST_FILES= bin/softsqueeze
SUB_FILES= softsqueeze.sh pkg-install
SUB_LIST= PERL=${PERL} \
SLIMDIR=${SLIMDIR} \
SLIMDBDIR=${SLIMDBDIR} \
CONFFILES="${CONFFILES}"
pre-fetch:
.if !defined(SLIMDIR)
@${ECHO_MSG} ""
@${ECHO_MSG} "Define SLIMDIR to override default of 'slimserver'."
@${ECHO_MSG} ""
.endif
SLIMDIR?= slimserver
SLIMDBDIR= /var/db/slimserver
post-fetch:
.for _PKG in ${SLIMCPANPKGS}
@cd ${_DISTDIR}; test -e ${_PKG} || \
${FETCH_CMD} -o ${_PKG} http://svn.slimdevices.com/vendor/src/${_PKG}?view=auto
.endfor
post-patch:
@${REINPLACE_CMD} \
-e 's|/usr/bin/perl|${PERL}|' \
-e 's|%%LOCALBASE%%|${LOCALBASE}|' \
-e 's|%%TMP_SLIMDIR%%|${TMP_SLIMDIR}|' \
-e 's|%%CPANWRKDIR%%|${CPANWRKDIR}|' \
-e 's|%%DISTDIR%%|${_DISTDIR}|' \
${WRKSRC}/Bin/build-perl-modules.pl
@${REINPLACE_CMD} \
-e 's|/usr/bin/perl|${PERL}|' \
${WRKSRC}/scanner.pl ${WRKSRC}/slimserver.pl \
${WRKSRC}/Bin/dbish
@${RM} ${WRKSRC}/scanner.pl.bak ${WRKSRC}/slimserver.pl.bak \
${WRKSRC}/Bin/dbish.bak
do-build:
@${MKDIR} -m 0755 ${TMP_SLIMDIR}
@cd ${WRKSRC} && \
${FIND} . -name \*.orig ${EXCEPTFILES:S|^|-o -path ./|} \
${EXCEPTDIRS:S/$/\*/:S/^/-o -path .\//} -o -print | \
${CPIO} ${CPIOARGS} ${BINOWN}:${BINGRP} ${TMP_SLIMDIR}
.for _CONF in ${CONFFILES}
@cd ${WRKSRC} && ${INSTALL_DATA} ${_CONF} ${TMP_SLIMDIR}/${_CONF}.sample
.endfor
.if !defined(NOPORTDOCS)
@${MKDIR} ${TMP_DOCSDIR}
@cd ${WRKSRC} && ${INSTALL_DATA} ${DOCFILES} ${TMP_DOCSDIR}
.endif
${MKDIR} ${CPANWRKDIR}
${WRKSRC}/Bin/build-perl-modules.pl
post-build:
@${RM} -f ${PLIST}
.for _CONF in ${CONFFILES}
@${ECHO} '@unexec if cmp -s %D/%%SLIMDIR%%/${_CONF} %D/%%SLIMDIR%%/${_CONF}.sample; then rm -f %D/%%SLIMDIR%%/${_CONF}; fi' >> ${PLIST}
.endfor
.if !defined(NOPORTDOCS)
@${FIND} ${TMP_DOCSDIR} -type f | \
${SED} -e 's|${TMP_DOCSDIR}|%%DOCSDIR%%|' | \
${SORT} >> ${PLIST}
.endif
@${FIND} ${TMP_SLIMDIR}/* -type f | \
${SED} -e 's|${TMP_SLIMDIR}|%%SLIMDIR%%|' | \
${SORT} >> ${PLIST}
@${ECHO} "${SLIMDIR}/Cache" >> ${PLIST}
@${ECHO} "${SLIMDIR}/MySQL/errmsg.txt" >> ${PLIST}
@${ECHO} "${SLIMDIR}/MySQL/errmsg.sys" >> ${PLIST}
@${FIND} ${TMP_SLIMDIR} -type d | \
${SED} -e 's|${TMP_SLIMDIR}|@dirrm %%SLIMDIR%%|' | \
${SORT} -r >> ${PLIST}
.if !defined(NOPORTDOCS)
@${FIND} ${TMP_DOCSDIR} -type d | \
${SED} -e 's|${TMP_DOCSDIR}|@dirrm %%DOCSDIR%%|' | \
${SORT} -r >> ${PLIST}
.endif
@${ECHO} '@unexec rm -rf ${SLIMDBDIR}/cache > /dev/null 2>&1 || true' >> ${PLIST}
@${ECHO} '@dirrmtry ${SLIMDBDIR}/playlists' >> ${PLIST}
@${ECHO} '@dirrmtry ${SLIMDBDIR}' >> ${PLIST}
@${ECHO} '@unexec test -d ${SLIMDBDIR} && (echo "Configuration information saved. If you will *NOT* use this package anymore," && echo "please remove ${SLIMDBDIR} and its contents manually.")' >> ${PLIST}
pre-install:
@${SH} ${PKGINSTALL} ${PKGNAME} PRE-INSTALL
do-install:
@${MKDIR} -m 0755 ${PREFIX}/${SLIMDIR}
@${LN} -s ${SLIMDBDIR}/cache ${PREFIX}/${SLIMDIR}/Cache
@cd ${TMP_SLIMDIR} && \
${FIND} . | \
${CPIO} ${CPIOARGS} ${BINOWN}:${BINGRP} ${PREFIX}/${SLIMDIR}
@${LN} -s ${LOCALBASE}/share/mysql/errmsg.txt \
${PREFIX}/${SLIMDIR}/MySQL/
@${LN} -s ${LOCALBASE}/share/mysql/english/errmsg.sys \
${PREFIX}/${SLIMDIR}/MySQL/
@${INSTALL_SCRIPT} ${WRKDIR}/softsqueeze.sh ${PREFIX}/bin/softsqueeze
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
@cd ${TMP_DOCSDIR} && \
${FIND} . | \
${CPIO} ${CPIOARGS} ${BINOWN}:${BINGRP} ${DOCSDIR}
.endif
post-install:
@${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
@${ECHO}
@${CAT} ${PKGMESSAGE}
.include <bsd.port.post.mk>