summaryrefslogtreecommitdiff
path: root/audio/baresip/Makefile
blob: b0f40baf64942f31ed133a7b5a0c2c7c4c394fbf (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
# $FreeBSD$

PORTNAME=	baresip
PORTVERSION=	0.4.8
CATEGORIES=	audio
MASTER_SITES=	http://www.creytiv.com/pub/

MAINTAINER=	crees@FreeBSD.org
COMMENT=	Small SIP client

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/docs/COPYING

BUILD_DEPENDS=	re>=0.4.6:${PORTSDIR}/audio/re \
		rem>=0.4.4:${PORTSDIR}/audio/rem
RUN_DEPENDS:=	${BUILD_DEPENDS}

USES=		gmake pkgconfig
CFLAGS+=	-I${LOCALBASE}/include -I${LOCALBASE}/include/ilbc
MAKE_ARGS=	MOD_AUTODETECT=""
PLIST_FILES=	bin/baresip
PORTDATA=	*
PORTDOCS=	*

#OPTIONS_NOT_YET_WORKING=	ALSA BV32 G722_1 PLC ISAC OPENGLES
OPTIONS_DEFINE=	CELT CONS DOCS FFMPEG G711 G722 G726 GSM GSTREAMER ILBC L16 \
	OPUS OSS PORTAUDIO SDL SNDFILE SPEEX SRTP STDIO UUID V4L V4L2 X11 \
	DTLS_SRTP AUBRIDGE VIDBRIDGE HTTPD DSHOW DIRECTFB ACCOUNT \
	NATPMP SDL MIW SNAPSHOT SELFVIEW VUMETER AULOOP CONTACT \
	MENU PRESENCE SYSLOG VIDLOOP
OPTIONS_DEFAULT=CONS G711 G722 G726 L16

AULOOP_DESC=	Audio-loop test module
BV32_DESC=	BroadVoice32 Wideband Audio codec
CELT_DESC=	Celt support [broken]
CONTACT_DESC=	Contacts module
CONS_DESC=	Console input driver
DTLS_SRTP_DESC=	DTLS Secure RTP module [broken]
G711_DESC=	G.711 audio codec
G722_DESC=	G.722 audio codec
G722_1_DESC=	G.722.1 audio codec
G726_DESC=	G.726 audio codec
ILBC_DESC=	iLBC audio codec
L16_DESC=	L16 audio codec
MENU_DESC=	Interactive menu
OPENGLES_DESC=	OpenGL ES video output
OPUS_DESC=	Opus audio codec
PLC_DESC=	Packet Loss Concealment
PRESENCE_DESC=	Presence module
SRTP_DESC=	Secure RTP module [broken]
STDIO_DESC=	stdio input driver
SYSLOG_DESC=	Syslog module
UUID_DESC=	UUID module
V4L_DESC=	Video4Linux module [broken]
V4L2_DESC=	Video4Linux2 module [broken]
VIDLOOP_DESC=	Video-loop test module
X11_DESC=	X11 module [broken]

.for o in ${OPTIONS_DEFINE}
.  ifndef $o_DESC
$o_DESC=	${o:C,^(.).*,\1,}${o:C,^.,,:tl} module
.  endif
.endfor

.include <bsd.port.options.mk>

.include "${.CURDIR}/Makefile.depends"

# Port calls it GST, standard OPTION is GSTREAMER
.if ${PORT_OPTIONS:MGSTREAMER}
PORT_OPTIONS+=	GST
.endif

.if ${PORT_OPTIONS:MSDL}
USE_SDL=	sdl sound
.endif

# SPEEX forces install of speex, therefore may as well enable all methods
.if ${PORT_OPTIONS:MSPEEX}
. for s in SPEEX_AEC SPEEX_PP SPEEX_RESAMP
MAKE_ARGS+=	USE_$s=yes
. endfor
MAKE_ARGS+=	HAVE_SPEEXDSP=yes
.endif

.for o in CELT SRTP V4L DTLS_SRTP V4L2 X11
.  if ${PORT_OPTIONS:M$o}
BROKEN=	OPTIONS marked as BROKEN have not been updated to the new Baresip API
.  endif
.endfor

.if ${PORT_OPTIONS:MX11}
USE_XORG=	x11
.endif

.for o in ${PORT_OPTIONS}
MAKE_ARGS+=	USE_$o=yes
BUILD_DEPENDS+=	${$o_DEPEND}
RUN_DEPENDS+=	${$o_DEPEND}
.endfor

# GNU Make does not do make -V, which makes life difficult
post-patch:
	${ECHO_CMD} >> ${WRKSRC}/Makefile
	${ECHO_CMD} ".PHONY: showmodules" >> ${WRKSRC}/Makefile
	${ECHO_CMD} "showmodules:" >> ${WRKSRC}/Makefile
	${ECHO_CMD} '	@${ECHO_CMD} $$(MODULES)' >> ${WRKSRC}/Makefile
	${REINPLACE_CMD} 's,-lcelt[0-9]*,$$(pkg-config --libs celt),' \
		${WRKSRC}/modules/celt/module.mk
	${REINPLACE_CMD} 's,-lportaudio[0-9]*,-L${LOCALBASE}/lib/portaudio2 -lportaudio,' \
		${WRKSRC}/modules/portaudio/module.mk

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
	${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKSRC}/share/* ${STAGEDIR}${DATADIR}

# Install modules and add to plist
post-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules
	for m in $$(${GMAKE} -sC ${WRKSRC} ${MAKE_ARGS} showmodules); \
	do ${INSTALL_LIB} ${WRKSRC}/$$m.so \
		${STAGEDIR}${PREFIX}/lib/baresip/modules; \
	   ${ECHO_CMD} lib/${PORTNAME}/modules/$$m.so >> ${TMPPLIST}; \
	done
	${ECHO_CMD} "@dirrm lib/baresip/modules" >> ${TMPPLIST}
	${ECHO_CMD} "@dirrm lib/baresip" >> ${TMPPLIST}
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/docs/* ${STAGEDIR}${DOCSDIR}

.include <bsd.port.mk>