summaryrefslogtreecommitdiff
path: root/net/mediatomb/Makefile
blob: f929a8c1641bcf82c6db0526342d73d94e7b5d96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Created by: Leonhard Wimmer <leo@mediatomb.cc>
# $FreeBSD$

PORTNAME=	mediatomb
PORTVERSION=	0.12.1
PORTREVISION=	21
CATEGORIES=	net multimedia
MASTER_SITES=	SF/${PORTNAME}/MediaTomb/${PORTVERSION}

MAINTAINER=	leo@mediatomb.cc
COMMENT=	UPnP AV MediaServer

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libexpat.so:textproc/expat2

GNU_CONFIGURE=	yes
LDFLAGS+=	-lpthread ${ICONV_LIB}
CONFIGURE_ARGS=	--with-search="${LOCALBASE}" \
		--disable-inotify
CONFIGURE_ENV=	PTHREAD_LIBS="-lpthread"
USES=		compiler:gcc-c++11-lib iconv localbase:ldflags
USE_RC_SUBR=	mediatomb

# Workaround for FreeBSD 10, whose libc++ does not have an overload for C++14's
# `operator delete(void*, size_t)'. Since GCC 6 uses -std=gnu++14 by default,
# linking fails when a dependency (such as taglib) is built with clang and
# lacking the overload. FreeBSD >= 11 is fine.
USE_CXXSTD=	gnu++11

USERS=		mediatomb
GROUPS=		${USERS}

SUB_FILES=	config.xml.dist \
		pkg-install \
		pkg-deinstall

SUB_LIST=	MEDIATOMB_USER=${USERS} \
		MEDIATOMB_GROUP=${GROUPS} \
		MEDIATOMB_DIR=${DESTDIR}/var/db/mediatomb

OPTIONS_DEFINE=	JS LIBEXIF FFMPEGTHUMBNAILER \
		EXTERNAL_TRANSCODING CURL DEBUG
OPTIONS_MULTI=	DB
OPTIONS_MULTI_DB=	SQLITE MYSQL
OPTIONS_RADIO=	METADATA TAG
OPTIONS_RADIO_METADATA=	FFMPEG LIBEXTRACTOR
OPTIONS_RADIO_TAG=	TAGLIB ID3LIB
OPTIONS_DEFAULT=	SQLITE MYSQL JS LIBEXIF TAGLIB FFMPEG FFMPEGTHUMBNAILER \
			EXTERNAL_TRANSCODING CURL

METADATA_DESC=			Metadata extractor
TAG_DESC=			Tag library

DB_DESC=			Database backend
JS_DESC=			JavaScript (SpiderMonkey) support
TAGLIB_DESC=			taglib support
FFMPEG_DESC=			ffmpeg metadata extraction support
FFMPEGTHUMBNAILER_DESC=		ffmpeg thumbnailer support
EXTERNAL_TRANSCODING_DESC=	external transcoding support
ID3LIB_DESC=			id3lib support
LIBEXTRACTOR_DESC=		libextractor support

SQLITE_USES=			sqlite
SQLITE_CONFIGURE_ENABLE=	sqlite3
SQLITE_CONFIGURE_ON=		--with-sqlite3-h="${LOCALBASE}/include" \
				--with-sqlite3-libs="${LOCALBASE}/lib"

MYSQL_USES=			mysql
MYSQL_CONFIGURE_ENABLE=		mysql
MYSQL_CONFIGURE_ON=		--with-mysql-cfg="${LOCALBASE}/bin/mysql_config"

JS_CONFIGURE_ENABLE=		libjs
JS_CONFIGURE_ON=		--with-js-h="${LOCALBASE}/include/js-1.7" \
				--with-js-libs="${LOCALBASE}/lib"
JS_LIB_DEPENDS=			libjs.so:lang/spidermonkey17

LIBEXIF_CONFIGURE_ENABLE=	libexif
LIBEXIF_CONFIGURE_ON=		--with-libexif-h="${LOCALBASE}/include" \
				--with-libexif-libs="${LOCALBASE}/lib"
LIBEXIF_LIB_DEPENDS=		libexif.so:graphics/libexif

EXTERNAL_TRANSCODING_CONFIGURE_ENABLE=	external-transcoding

FFMPEGTHUMBNAILER_CONFIGURE_ENABLE=	ffmpegthumbnailer
FFMPEGTHUMBNAILER_CONFIGURE_ON=		--with-ffmpegthumbnailer-h="${LOCALBASE}/include" \
					--with-ffmpegthumbnailer-libs="${LOCALBASE}/lib"
FFMPEGTHUMBNAILER_LIB_DEPENDS=		libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer

# CURL is only useful in combination with EXTERNAL_TRANSCODING
CURL_IMPLIES=			EXTERNAL_TRANSCODING
CURL_CONFIGURE_ENABLE=		curl
CURL_CONFIGURE_ON=		--with-curl-cfg="${LOCALBASE}/bin/curl-config"
CURL_LIB_DEPENDS=		libcurl.so:ftp/curl

FFMPEG_CONFIGURE_ENABLE=	ffmpeg
FFMPEG_LIB_DEPENDS=		libavformat.so:multimedia/ffmpeg

LIBEXTRACTOR_CONFIGURE_ENABLE=	libextractor
LIBEXTRACTOR_CONFIGURE_ON=	--with-extractor-h="${LOCALBASE}/include" \
				--with-extractor-libs="${LOCALBASE}/lib"
LIBEXTRACTOR_LIB_DEPENDS=	libextractor.so:textproc/libextractor
LIBEXTRACTOR_BROKEN=		LIBEXTRACTOR option fails to configure (checking for EXTRACTOR_getKeywords in -lextractor... no)

ID3LIB_CONFIGURE_ENABLE=	id3lib
ID3LIB_CONFIGURE_ON=		--with-id3lib-h="${LOCALBASE}/include" \
				--with-id3lib-libs="${LOCALBASE}/lib"
ID3LIB_LIB_DEPENDS=		libid3.so:audio/id3lib

TAGLIB_CONFIGURE_ENABLE=	taglib
TAGLIB_CONFIGURE_ON=		--with-taglib-cfg="${LOCALBASE}/bin/taglib-config"
TAGLIB_LIB_DEPENDS=		libtag.so:audio/taglib

DEBUG_CONFIGURE_ENABLE=		tombdebug

post-install:
	@${MKDIR} ${STAGEDIR}${PREFIX}/etc/mediatomb
	@${MKDIR} ${STAGEDIR}/var/log/mediatomb
	@${MKDIR} ${STAGEDIR}/var/db/mediatomb
	${INSTALL_DATA} ${WRKDIR}/config.xml.dist ${STAGEDIR}${PREFIX}/etc/mediatomb/config.xml.dist

.include <bsd.port.mk>