aboutsummaryrefslogtreecommitdiff
path: root/audio/baresip/Makefile
blob: 6c23aefa3341784e5742c4157167f24ceb8042b5 (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
PORTNAME=	baresip
DISTVERSIONPREFIX=	v
DISTVERSION=	4.4.0
PORTREVISION=	1
CATEGORIES=	audio

MAINTAINER=	zarychtam@plan-b.pwste.edu.pl
COMMENT=	Small SIP client
WWW=		https://github.com/baresip

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/LICENSE

LIB_DEPENDS=	libre.so:audio/re

FLAVORS=			default nox11
default_CONFLICTS_INSTALL=	barsip-nox11
nox11_PKGNAMESUFFIX=		-nox11
nox11_CONFLICTS_INSTALL=	baresip

USES=		cmake localbase:ldflags pkgconfig ssl
USE_GITHUB=	yes
GH_ACCOUNT=	baresip
GH_TUPLE=	baresip:baresip-apps:v4.3.0:e/baresip-apps
PORTDOCS=	CONTRIBUTING.md ChangeLog THANKS

OPTIONS_DEFINE=		AAC ALSA AMR AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS \
			DOCS EVDEV EXAMPLES G726 GSTREAMER GTK3 JACK MQTT OPUS \
			PIPEWIRE PLC PORTAUDIO PULSEAUDIO SDL SNAPSHOT SNDFILE \
			SNDIO SWSCALE V4L VPX WEBRTC_AEC X11
OPTIONS_DEFAULT=	AAC ALSA AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS \
			EVDEV G722 G726 GSTREAMER GTK3 OPUS PLC SDL SNAPSHOT \
			SNDFILE SWSCALE V4L VPX WEBRTC_AEC X11
OPTIONS_GROUP=		EXTRAMODULES
OPTIONS_RADIO=		G722
OPTIONS_RADIO_G722=	G722 G722L
.if ${FLAVOR:U} == nox11
COMMENT+=		(without X11 and video calls)
OPTIONS_EXCLUDE=	AAC AV1 AVCODEC AVFILTER AVFORMAT CODEC2 DBUS EVDEV \
			G722 G726 GSTREAMER GTK3 OPUS PLC SDL SNAPSHOT SNDFILE \
			SWSCALE V4L VPX WEBRTC_AEC X11
.endif
OPTIONS_SUB=		yes

AAC_DESC=		AAC audio codec
AMR_DESC=		AMR-NB and AMR-WB audio codecs
AV1_DESC=		AV1 Video Codec
AVCODEC_DESC=		Video codecs using libavcodec
AVFILTER_DESC=		Video filter using libavfilter
AVFORMAT_DESC=		libavformat media-source
CODEC2_DESC=		Codec2 low-bitrate speech codec
EVDEV_DESC=		evdev input support
G722L_DESC=		G.722 audio codec via libg722
G722_DESC=		G.722 audio codec
G726_DESC=		G.726 audio codec
MQTT_DESC=		Message Queue Telemetry Transport (MQTT) client
PLC_DESC=		Packet Loss Concealment
SNAPSHOT_DESC=		Snapshot video module
SWSCALE_DESC=		Video filter for scaling and pixel conversion
WEBRTC_AEC_DESC=	WebRTC Acoustic Echo Cancellation

_MODULES_LIST=	account aubridge auconv aufile augain auresamp ausine cons \
		contact ctrl_tcp debug_cmd dtls_srtp echo fakevideo g711 httpd \
		httpreq ice in_band_dtmf l16 menu mixausrc mixminus mwi natpmp \
		netroam pcp presence rtcpsummary selfview serreg srtp stdio \
		stun syslog turn uuid vidbridge vidinfo vumeter

AAC_LIB_DEPENDS=	libfdk-aac.so:audio/fdk-aac
AAC_VARS=		_MODULES_LIST+=aac
ALSA_LIB_DEPENDS=	libasound.so:audio/alsa-lib
ALSA_VARS=		_MODULES_LIST+=alsa
AMR_LIB_DEPENDS=	libamrnb.so:audio/libamrnb \
			libamrwb.so:audio/libamrwb \
			libvo-amrwbenc.so:audio/vo-amrwbenc
AMR_VARS=		_MODULES_LIST+=amr
AV1_LIB_DEPENDS+=	libaom.so:multimedia/aom
AV1_VARS=		_MODULES_LIST+=av1
AVCODEC_LIB_DEPENDS=	libavcodec.so:multimedia/ffmpeg \
			libdrm.so:graphics/libdrm
AVCODEC_VARS=		_MODULES_LIST+=avcodec
AVFILTER_LIB_DEPENDS=	libavfilter.so:multimedia/ffmpeg
AVFILTER_VARS=		_MODULES_LIST+=avfilter
AVFORMAT_LIB_DEPENDS=	libavformat.so:multimedia/ffmpeg
AVFORMAT_VARS=		_MODULES_LIST+=avformat
CODEC2_LIB_DEPENDS=	libcodec2.so:audio/codec2
CODEC2_VARS=		_MODULES_LIST+=codec2
DBUS_USES=		gnome
DBUS_VARS=		_MODULES_LIST+=ctrl_dbus \
			USE_GNOME+=glib20
EVDEV_BUILD_DEPENDS=	evdev-proto>0:devel/evdev-proto
EVDEV_VARS=		_MODULES_LIST+=evdev
G722L_LIB_DEPENDS=	libg722.so:audio/libg722
G722L_VARS=		_MODULES_LIST+=libg722
G722_LIB_DEPENDS=	libspandsp.so:comms/spandsp
G722_VARS=		_MODULES_LIST+=g722
G726_LIB_DEPENDS=	libspandsp.so:comms/spandsp
G726_VARS=		_MODULES_LIST+=g726
GSTREAMER_USES=		gnome gstreamer:1
GSTREAMER_VARS=		_MODULES_LIST+=gst \
			USE_GNOME+=glib20
GTK3_USES=		gnome
GTK3_VARS=		_MODULES_LIST+=gtk \
			USE_GNOME+=gtk30
JACK_LIB_DEPENDS=	libjack.so:audio/jack
JACK_VARS=		_MODULES_LIST+=jack
MQTT_LIB_DEPENDS=	libmosquitto.so:net/mosquitto
MQTT_VARS=		_MODULES_LIST+=mqtt
OPUS_LIB_DEPENDS=	libopus.so:audio/opus
OPUS_VARS=		_MODULES_LIST+="opus opus_multistream"
PIPEWIRE_LIB_DEPENDS=	libpipewire-0.3.so:multimedia/pipewire
PIPEWIRE_VARS=		_MODULES_LIST+=pipewire
PLC_LIB_DEPENDS=	libspandsp.so:comms/spandsp
PLC_VARS=		_MODULES_LIST+=plc
PORTAUDIO_LIB_DEPENDS=	libportaudio.so:audio/portaudio
PORTAUDIO_VARS=		_MODULES_LIST+=portaudio
PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
PULSEAUDIO_VARS=	_MODULES_LIST+=pulse
SDL_LIB_DEPENDS=	libglapi.so:graphics/mesa-libs
SDL_USES=		sdl
SDL_VARS=		_MODULES_LIST+=sdl \
			USE_SDL=sdl2
SNAPSHOT_LIB_DEPENDS=	libpng16.so:graphics/png
SNAPSHOT_VARS=		_MODULES_LIST+=snapshot
SNDFILE_LIB_DEPENDS=	libsndfile.so:audio/libsndfile
SNDFILE_VARS=		_MODULES_LIST+=sndfile
SNDIO_LIB_DEPENDS=	libsndio.so:audio/sndio
SNDIO_VARS=		_MODULES_LIST+=sndio
SWSCALE_LIB_DEPENDS=	libswscale.so:multimedia/ffmpeg
SWSCALE_VARS=		_MODULES_LIST+=swscale
V4L_BUILD_DEPENDS=	v4l_compat>0:multimedia/v4l_compat
V4L_LIB_DEPENDS=	libv4l1.so:multimedia/libv4l
V4L_VARS=		_MODULES_LIST+=v4l2
VPX_LIB_DEPENDS=	libvpx.so:multimedia/libvpx
VPX_VARS=		_MODULES_LIST+="vp8 vp9"
WEBRTC_AEC_LIB_DEPENDS=	libwebrtc-audio-processing-1.so:audio/webrtc-audio-processing
WEBRTC_AEC_VARS=	_MODULES_LIST+=webrtc_aec
X11_USES=		xorg
X11_VARS=		_MODULES_LIST+=x11 \
			USE_XORG="ice sm x11 xext"

OPTIONS_GROUP_EXTRAMODULES=	AULOOP AUTOTEST EBUACIP INTERCOM KAOPTIONS \
				PARCALL QUALIFY REDIRECT VIDLOOP

AULOOP_DESC=	Application module for testing audio drivers
AUTOTEST_DESC=	Autotest module
EBUACIP_DESC=	EBU Audio Contribution over IP Profile
INTERCOM_DESC=	Intercom module
KAOPTIONS_DESC=	Keepalive via SIP OPTIONS module
PARCALL_DESC=	Parallel call module
QUALIFY_DESC=	Qualify peer module
REDIRECT_DESC=	Redirect incoming calls module
VIDLOOP_DESC=	Video-loop module for testing

AULOOP_VARS=	_EXTRAMOD_LIST+=auloop
AUTOTEST_VARS=	_EXTRAMOD_LIST+=autotest
EBUACIP_VARS=	_EXTRAMOD_LIST+=ebuacip
INTERCOM_VARS=	_EXTRAMOD_LIST+=intercom
KAOPTIONS_VARS=	_EXTRAMOD_LIST+=kaoptions
PARCALL_VARS=	_EXTRAMOD_LIST+=parcall
QUALIFY_VARS=	_EXTRAMOD_LIST+=qualify
REDIRECT_VARS=	_EXTRAMOD_LIST+=redirect
VIDLOOP_VARS=	_EXTRAMOD_LIST+=vidloop

.include <bsd.port.options.mk>

CMAKE_ARGS+=	-DAPP_MODULES="$(_EXTRAMOD_LIST:ts;)" \
		-DAPP_MODULES_DIR=baresip-apps/modules \
		-DMODULES="$(_MODULES_LIST:ts;)" \
		-DWEBRTC_AEC_INCLUDE_DIRS:STRING="${LOCALBASE}/include/webrtc-audio-processing-1"

post-patch:
	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \
		${WRKSRC}/cmake/FindGST.cmake

post-install-DOCS-on:
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/docs/|} ${STAGEDIR}${DOCSDIR}

post-install-EXAMPLES-on:
	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
	${INSTALL_DATA} ${WRKSRC}/docs/examples/* ${STAGEDIR}${EXAMPLESDIR}

.include <bsd.port.mk>