aboutsummaryrefslogtreecommitdiff
path: root/net/freeswitch/Makefile
blob: d2580807ef9ca3ba11fb84740b4356f6dca16d11 (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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
PORTNAME=	freeswitch
PORTVERSION=	1.10.11
PORTREVISION=	1
CATEGORIES=	net
MASTER_SITES=	https://files.freeswitch.org/releases/freeswitch/ \
		https://files.freeswitch.org/releases/sounds/:sounds
DISTFILES=	${PORTNAME}-${PORTVERSION}.-release${EXTRACT_SUFX}

MAINTAINER=	pi@FreeBSD.org
COMMENT=	Multi-protocol soft switch for telephony applications
WWW=		https://freeswitch.org

LICENSE=	MPL11

BROKEN_i386=	error: expected ')'
ONLY_FOR_ARCHS=	aarch64 amd64 i386 powerpc64 powerpc64le

BUILD_DEPENDS=	gdiff:textproc/diffutils \
		doxygen:devel/doxygen \
		erlang>=21.3:lang/erlang
RUN_DEPENDS=	erlang>=21.3:lang/erlang
LIB_DEPENDS=	libsqlite3.so:databases/sqlite3 \
		libcurl.so:ftp/curl \
		libavformat.so:multimedia/ffmpeg \
		libpcre.so:devel/pcre \
		libspeexdsp.so:audio/speexdsp \
		libspeex.so:audio/speex \
		libldns.so:dns/ldns \
		libopus.so:audio/opus \
		libsndfile.so:audio/libsndfile \
		libfreetype.so:print/freetype2 \
		libodbc.so:databases/unixODBC \
		libpng.so:graphics/png \
		libjbig.so:graphics/jbigkit \
		libtiff.so:graphics/tiff \
		libuuid.so:misc/e2fsprogs-libuuid \
		libmariadb.so:databases/mariadb-connector-c \
		libspandsp.so:comms/spandsp \
		libsofia-sip-ua.so:net/sofia-sip

USES=		compiler:c11 cpe gmake iconv jpeg libedit autoreconf \
		libtool lua:53 openal perl5 pkgconfig shebangfix ssl tar:xz

USE_LDCONFIG=	yes
USE_RC_SUBR=	freeswitch
BINARY_ALIAS=	diff=gdiff
MAKE_JOBS_UNSAFE=yes

WRKSRC=		${WRKDIR}/${PORTNAME}-${PORTVERSION}.-release

SHEBANG_FILES=	scripts/fsxs.in

CONFLICTS_BUILD=	xmlrpc-c

GNU_CONFIGURE=		yes
CONFIGURE_ARGS=	--with-pkgconfigdir=${PREFIX}/libdata/pkgconfig \
		--enable-zrtp
CFLAGS+=	-Wno-error -I${LUA_INCDIR}

USERS=		${PORTNAME}
GROUPS=		${USERS}

SUB_FILES=	pkg-message

OPTIONS_DEFINE=		X11 EXAMPLES PGSQL
OPTIONS_DEFAULT=	8K 16K ENGLISH PGSQL
OPTIONS_MULTI=		BITRATE LANGUAGE
OPTIONS_MULTI_BITRATE=	8K 16K 32K 48K
OPTIONS_MULTI_LANGUAGE=	CHINESE_HK CHINESE_SIM BRAZILIAN ENGLISH ENGLISH_CA FRENCH_CA RUSSIAN SWEDISH
OPTIONS_SUB=		yes
NO_OPTIONS_SORT=	yes

X11_DESC=		graphics/ImageMagick[-nox11] dependency
8K_DESC=		8kHz Audio Files
16K_DESC=		16kHz Audio Files
32K_DESC=		32kHz Audio Files
48K_DESC=		48kHz Audio Files
BRAZILIAN_DESC=		Brazilian Portuguese Language Sounds
CHINESE_HK_DESC=	Chinese Traditional Language Sounds
CHINESE_SIM_DESC=	Chinese Simplified Language Sounds
ENGLISH_DESC=		US English Language Sounds
ENGLISH_CA_DESC=	Canadian English Language Sounds
FRENCH_CA_DESC=		French Canadian Language Sounds
RUSSIAN_DESC=		Russian Language Sounds
SWEDISH_DESC=		Swedish Language Sounds

ALL_MODULES_BUILD_DEPENDS=	${LOCALBASE}/include/ladspa.h:audio/ladspa \
				${LOCALBASE}/bin/aclocal:devel/automake \
				${LOCALBASE}/bin/erl:lang/erlang \
				${LOCALBASE}/bin/bash:shells/bash \
				${LOCALBASE}/bin/mariadb:databases/mariadb104-client \
				${LOCALBASE}/bin/php:lang/php80
ALL_MODULES_CONFLICTS_BUILD=	apr
ALL_MODULES_EXTRA_PATCHES=	${FILESDIR}/extrapatch-modules.conf
ALL_MODULES_LIB_DEPENDS=	libavformat.so:multimedia/ffmpeg \
				libopencv_video.so:graphics/opencv \
				libopencv_core.so:graphics/opencv-core \
				libhiredis.so:databases/hiredis \
				libldap.so:net/openldap24-client \
				libmemcached.so:databases/libmemcached \
				libSoundTouch.so:audio/soundtouch \
				libasound.so:audio/alsa-lib \
				libcodec2.so:audio/codec2 \
				libflite.so:audio/flite \
				libh2o.so:www/h2o \
				libh323.so:net/h323plus \
				libhiredis.so:databases/hiredis \
				libilbc.so:net/ilbc \
				libmemcached.so:databases/libmemcached \
				libmongoc-1.0.so:devel/mongo-c-driver \
				libmp3lame.so:audio/lame \
				libmp4v2.so:multimedia/mp4v2 \
				libmpg123.so:audio/mpg123 \
				libnetsnmp.so:net-mgmt/net-snmp \
				libopencv_core.so:graphics/opencv-core \
				libopusfile.so:audio/opusfile \
				libphp.so:lang/php80 \
				libportaudio.so:audio/portaudio \
				libpt.so:devel/ptlib \
				librabbitmq.so:net/rabbitmq-c \
				libshout.so:audio/libshout \
				libtheora.so:multimedia/libtheora \
				libtonezone.so:misc/dahdi \
				libvlc.so:multimedia/vlc \
				libyaml.so:textproc/libyaml
ALL_MODULES_RUN_DEPENDS=	${LOCALBASE}/include/ladspa.h:audio/ladspa
ALL_MODULES_USE=		XORG=x11 OPENLDAP=yes JAVA=yes
ALL_MODULES_VARS=		USE_JAVA=yes
ALL_MODULES_USES=		python:2.7 xorg # required by mod_unimrcp
ALL_MODULES_CFLAGS=		-I${LOCALBASE}/include/openh323/ \
				-I${JAVA_HOME}/include/ \
				-I${JAVA_HOME}/include/freebsd
JAVA_VERSION=			11

8K_VARS=	BITRATES+=8000
16K_VARS=	BITRATES+=16000
32K_VARS=	BITRATES+=32000
48K_VARS=	BITRATES+=48000

PGSQL_USES=	pgsql
PGSQL_CONFIGURE_ENABLE=	core-pgsql-support core-pgsql-pkgconfig
PGSQL_CONFIGURE_ENV_OFF=	ac_cv_lib_pq_PQgetvalue=false

# install-strip causes `make stage' to fail:
# libtool: install: strip --strip-debug /wrkdirs/usr/ports/net/freeswitch/work/stage/usr/local/lib/libfreeswitch.a
# strip: file format not recognized
# INSTALL_TARGET=		install-strip

.include <bsd.port.options.mk>

EDPRE=	freeswitch-sounds
EDPOST=	1.0.51.tar.gz
#Swedish lang sounds are older/lower version.
EDPOST_SV=	1.0.50.tar.gz
EDPOST_MUSIC=	1.0.52.tar.gz

.for rate in ${BITRATES}
EXTRADISTFILES+=	${EDPRE}-music-${rate}-${EDPOST_MUSIC}
.if ${PORT_OPTIONS:MBRAZILIAN}
EXTRADISTFILES+=	${EDPRE}-pt-BR-karina-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MCHINESE_SIM}
EXTRADISTFILES+=	${EDPRE}-zh-cn-sinmei-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MCHINESE_HK}
EXTRADISTFILES+=	${EDPRE}-zh-hk-sinmei-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MENGLISH}
EXTRADISTFILES+=	${EDPRE}-en-us-callie-${rate}-${EDPOST_MUSIC}
.endif
.if ${PORT_OPTIONS:MENGLISH_CA}
EXTRADISTFILES+=	${EDPRE}-en-ca-june-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MFRENCH_CA}
EXTRADISTFILES+=	${EDPRE}-fr-ca-june-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MRUSSIAN}
EXTRADISTFILES+=	${EDPRE}-ru-RU-elena-${rate}-${EDPOST}
.endif
.if ${PORT_OPTIONS:MSWEDISH}
EXTRADISTFILES+=	${EDPRE}-sv-se-jakob-${rate}-${EDPOST_SV}
.endif
.endfor

.for distfile in ${EXTRADISTFILES}
DISTFILES+=	${distfile}:sounds
.endfor

# Patch out mod_signalwire & mod_verto as they require libks that isn't available, yet.
post-patch:
		${REINPLACE_CMD} -Ee 's|^(applications/mod_signalwire)|#\1|' \
			${WRKSRC}/modules.conf
		${REINPLACE_CMD} -Ee 's|^(endpoints/mod_verto)|#\1|' \
			${WRKSRC}/modules.conf

post-patch-PGSQL-off:
		${REINPLACE_CMD} -Ee 's|^(databases/mod_pgsql)|#\1|' ${WRKSRC}/modules.conf

post-install:
		${MKDIR} ${STAGEDIR}${DATADIR}/sounds
.for distfile in ${EXTRADISTFILES}
		${TAR} --cd ${STAGEDIR}${DATADIR}/sounds -xf ${DISTDIR}/${distfile}
.endfor
		${FIND} ${STAGEDIR}${DATADIR}/sounds -type f | ${SED} "s,^${STAGEDIR}${DATADIR},${DATADIR}," >> ${TMPPLIST}
		${RM} -r ${STAGEDIR}${ETCDIR}
		${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/freeswitch/mod/mod_*.so \
			${STAGEDIR}${PREFIX}/lib/libfreeswitch.so.1.0.0
		(cd ${WRKSRC}/conf && \
		${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})

.include "${.CURDIR:H:H}/multimedia/ffmpeg4/override.mk"
.include <bsd.port.mk>