Merge pull request #803 from cotequeiroz/OpenSSL3
[feed/telephony.git] / net / baresip / Makefile
1 #
2 # Copyright (C) 2010-2017 OpenWrt.org
3 # Copyright (C) 2010 Alfred E. Heggestad
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=baresip
12 PKG_VERSION:=1.1.0
13 PKG_RELEASE:=$(AUTORELEASE)
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=https://codeload.github.com/baresip/baresip/tar.gz/v$(PKG_VERSION)?
17 PKG_HASH:=f9230b27c4a62f31223847bc485c51f3d960f8a09f36998dedb73358e1784b4e
18
19 PKG_LICENSE:=BSD-3-Clause
20 PKG_LICENSE_FILES:=docs/COPYING
21 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
22
23 PKG_BUILD_PARALLEL:=1
24 PKG_INSTALL:=1
25
26 baresip-mods:= \
27 aac \
28 alsa \
29 amr \
30 avcodec \
31 avfilter \
32 avformat \
33 cons \
34 ctrl-dbus \
35 evdev \
36 g711 \
37 g722 \
38 g726 \
39 gst \
40 gst-video \
41 httpreq \
42 l16 \
43 mqtt \
44 opus \
45 opus_multistream \
46 oss \
47 plc \
48 portaudio \
49 pulse \
50 snapshot \
51 sndfile \
52 speex-pp \
53 srtp \
54 stdio \
55 syslog \
56 v4l2 \
57 vp8 \
58 vp9
59
60 PKG_CONFIG_DEPENDS:= \
61 $(patsubst %,CONFIG_PACKAGE_baresip-mod-%,$(subst _,-,$(baresip-mods)))
62
63 include $(INCLUDE_DIR)/package.mk
64 include $(INCLUDE_DIR)/nls.mk
65
66 define Package/baresip/Default
67 SECTION:=net
68 CATEGORY:=Network
69 SUBMENU:=Telephony
70 URL:=https://github.com/baresip/baresip
71 endef
72
73 define Package/baresip
74 $(call Package/baresip/Default)
75 TITLE:=Portable and modular SIP User-Agent with A/V support
76 DEPENDS:=+libre +librem
77 USERID:=$(PKG_NAME)=374:$(PKG_NAME)=374
78 MENU:=1
79 FILE_MODES:= \
80 /etc/baresip:baresip:baresip:0750 \
81 /etc/baresip/accounts:baresip:baresip:0640 \
82 /etc/baresip/config:baresip:baresip:0640 \
83 /etc/baresip/contacts:baresip:baresip:0640
84 endef
85
86 baresip-mod-aac := USE_AAC
87 baresip-mod-alsa := USE_ALSA
88 baresip-mod-amr := USE_AMR
89 baresip-mod-avcodec := USE_AVCODEC
90 baresip-mod-avfilter := USE_AVFILTER
91 baresip-mod-avformat := USE_AVFORMAT
92 baresip-mod-cons := USE_CONS
93 baresip-mod-ctrl-dbus := HAVE_GLIB USE_DBUS
94 baresip-mod-evdev := USE_EVDEV
95 baresip-mod-g711 := USE_G711
96 baresip-mod-g722 := USE_G722
97 baresip-mod-g726 := USE_G726
98 baresip-mod-gst := USE_GST
99 baresip-mod-gst-video := USE_GST_VIDEO
100 baresip-mod-httpreq := USE_HTTPREQ
101 baresip-mod-l16 := USE_L16
102 baresip-mod-mqtt := USE_MQTT
103 baresip-mod-opus := USE_OPUS
104 baresip-mod-opus_multistream := USE_OPUS_MS
105 baresip-mod-oss := USE_OSS
106 baresip-mod-plc := USE_PLC
107 baresip-mod-portaudio := USE_PORTAUDIO
108 baresip-mod-pulse := USE_PULSE
109 baresip-mod-snapshot := USE_SNAPSHOT
110 baresip-mod-sndfile := USE_SNDFILE
111 baresip-mod-speex-pp := USE_SPEEX_PP
112 baresip-mod-srtp := USE_SRTP
113 baresip-mod-stdio := USE_STDIO
114 baresip-mod-syslog := USE_SYSLOG
115 baresip-mod-vp8 := USE_VPX
116 baresip-mod-vp9 := USE_VPX
117 baresip-mod-v4l2 := USE_V4L2
118
119 BARESIP_MOD_OPTIONS:= \
120 MOD_AUTODETECT= \
121 $(foreach m,$(baresip-mods),$(foreach v,$(baresip-mod-$(m)),$(v)=$(if $(CONFIG_PACKAGE_baresip-mod-$(subst _,-,$(m))),1)))
122
123 MAKE_FLAGS+= \
124 CROSS_COMPILE="$(TARGET_CROSS)" \
125 DESTDIR="$(PKG_INSTALL_DIR)" \
126 EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \
127 LD="$(TARGET_CC)" \
128 LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \
129 LIBRE_INC="$(STAGING_DIR)/usr/include/re" \
130 LIBRE_SO="$(STAGING_DIR)/usr/lib" \
131 LIBREM_PATH="$(STAGING_DIR)/usr" \
132 OS=linux \
133 RELEASE=1 \
134 SYSROOT="$(shell $(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s|/include/pthread.h||p')" \
135 SYSROOT_ALT="$(STAGING_DIR)/usr" \
136 $(BARESIP_MOD_OPTIONS)
137
138 TARGET_CFLAGS+=-D_GNU_SOURCE
139
140 define Package/baresip/install
141 $(INSTALL_DIR) $(1)/usr/bin
142 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/baresip $(1)/usr/bin
143 $(INSTALL_DIR) $(1)/usr/lib/baresip/modules
144 $(INSTALL_DATA) \
145 $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/{account,auloop,contact,ice,menu,stun,turn}.so \
146 $(1)/usr/lib/baresip/modules
147 $(INSTALL_DIR) $(1)/usr/share/baresip
148 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/baresip/* $(1)/usr/share/baresip
149 $(INSTALL_DIR) $(1)/etc/baresip
150 $(SED) '/^#/!s/^/#/' $(PKG_BUILD_DIR)/docs/examples/accounts
151 $(SED) '/^#module_path/s|^#||;s|/local||' $(PKG_BUILD_DIR)/docs/examples/config
152 $(INSTALL_DATA) $(PKG_BUILD_DIR)/docs/examples/{accounts,config,contacts} $(1)/etc/baresip
153 $(INSTALL_DIR) $(1)/etc/default
154 $(INSTALL_CONF) ./files/baresip.default $(1)/etc/default/baresip
155 $(INSTALL_DIR) $(1)/etc/init.d
156 $(INSTALL_BIN) ./files/baresip.init $(1)/etc/init.d/baresip
157 endef
158
159 define Package/baresip/conffiles
160 /etc/baresip/accounts
161 /etc/baresip/config
162 /etc/baresip/contacts
163 /etc/default/baresip
164 /etc/init.d/baresip
165 endef
166
167 ##################
168 # bareSIP modules
169 # 1. Name
170 # 2. Title
171 # 3. Files
172 # 4. Dependencies
173 ##################
174
175 define BuildPlugin
176
177 define Package/baresip-mod-$(subst _,-,$(1))
178 $$(call Package/baresip/Default)
179 TITLE:=$(2)
180 DEPENDS:=baresip $(patsubst +%,+PACKAGE_$(PKG_NAME)-mod-$(subst _,-,$(1)):%,$(4))
181 endef
182
183 define Package/baresip-mod-$(subst _,-,$(1))/install
184 [ -z "$(3)" ] || $(INSTALL_DIR) $$(1)/usr/lib/baresip/modules
185 for f in $(3); do \
186 $(INSTALL_DATA) \
187 $(PKG_INSTALL_DIR)/usr/lib/baresip/modules/$$$$$$$${f}.so \
188 $$(1)/usr/lib/baresip/modules; \
189 done
190 endef
191
192 $$(eval $$(call BuildPackage,baresip-mod-$(subst _,-,$(1))))
193 endef
194
195 $(eval $(call BuildPackage,baresip))
196
197 $(eval $(call BuildPlugin,aac,MPEG-4 AAC Audio Codec,aac,+fdk-aac))
198 $(eval $(call BuildPlugin,alsa,ALSA audio driver,alsa,+alsa-lib))
199 $(eval $(call BuildPlugin,amr,Adaptive Multi-Rate [AMR] audio codec,amr,))
200 $(eval $(call BuildPlugin,aubridge,Audio bridge module,aubridge,))
201 $(eval $(call BuildPlugin,aufile,Audio module for using a WAV-file as audio input,aufile,))
202 $(eval $(call BuildPlugin,ausine,Sine Audio Source,ausine,))
203 $(eval $(call BuildPlugin,avcodec,Video codec using FFmpeg,avcodec,+libffmpeg-full))
204 $(eval $(call BuildPlugin,avformat,Video source using FFmpeg,avformat,baresip-mod-avcodec))
205 $(eval $(call BuildPlugin,b2bua,Back-to-Back User-Agent module,b2bua,))
206 $(eval $(call BuildPlugin,cons,UDP/TCP console UI driver,cons,))
207 $(eval $(call BuildPlugin,ctrl_dbus,DBus control interface,ctrl_dbus,+glib2))
208 $(eval $(call BuildPlugin,ctrl_tcp,TCP control interface,ctrl_tcp,))
209 $(eval $(call BuildPlugin,debug_cmd,Debug commands,debug_cmd,))
210 $(eval $(call BuildPlugin,dtls_srtp,DTLS-SRTP end-to-end encryption,dtls_srtp,))
211 $(eval $(call BuildPlugin,ebuacip,EBU ACIP [Audio Contribution over IP] Profile,ebuacip,))
212 $(eval $(call BuildPlugin,echo,Echo server module,echo,))
213 $(eval $(call BuildPlugin,evdev,Linux input driver,evdev,))
214 $(eval $(call BuildPlugin,fakevideo,Fake video input/output driver,fakevideo,))
215 $(eval $(call BuildPlugin,g711,G.711 audio codec,g711,))
216 $(eval $(call BuildPlugin,g722,G.722 audio codec,g722,+libspandsp))
217 $(eval $(call BuildPlugin,g726,G.726 audio codec,g726,+libspandsp))
218 $(eval $(call BuildPlugin,gst,Gstreamer 1.0 playbin pipeline,gst,@AUDIO_SUPPORT +glib2 +libgstreamer1))
219 $(eval $(call BuildPlugin,gst_video,Video codecs using Gstreamer 1.0,gst_video,@AUDIO_SUPPORT +glib2 +libgst1app +libgstreamer1))
220 $(eval $(call BuildPlugin,httpd,HTTP webserver UI-module,httpd,))
221 $(eval $(call BuildPlugin,httpreq,HTTP request module,httpreq,))
222 $(eval $(call BuildPlugin,l16,16-bit linear codec,l16,))
223 $(eval $(call BuildPlugin,mixausrc,Mixes another audio source into audio stream,mixausrc,))
224 $(eval $(call BuildPlugin,mqtt,Message Queue Telemetry Transport [MQTT] client,mqtt,+libmosquitto))
225 $(eval $(call BuildPlugin,multicast,Multicast support,multicast,))
226 $(eval $(call BuildPlugin,mwi,Message Waiting Indication,mwi,))
227 $(eval $(call BuildPlugin,natpmp,NAT Port Mapping Protocol module,natpmp,))
228 $(eval $(call BuildPlugin,opus,OPUS Interactive audio codec,opus,+libopus))
229 $(eval $(call BuildPlugin,opus_multistream,Opus Multistream Audio Codec,opus_multistream,+libopus))
230 $(eval $(call BuildPlugin,oss,OSS audio driver,oss,))
231 $(eval $(call BuildPlugin,plc,Packet Loss Concealment,plc,+libspandsp))
232 $(eval $(call BuildPlugin,portaudio,Portaudio audio driver,portaudio,+portaudio))
233 $(eval $(call BuildPlugin,presence,Presence module,presence,))
234 $(eval $(call BuildPlugin,pulse,Pulseaudio audio driver,pulse,PACKAGE_$(PKG_NAME)-mod-pulse:pulseaudio))
235 $(eval $(call BuildPlugin,rtcpsummary,RTCP summary module,rtcpsummary,))
236 $(eval $(call BuildPlugin,selfview,Video selfview module,selfview,))
237 $(eval $(call BuildPlugin,serreg,Serial registration mode,serreg,))
238 $(eval $(call BuildPlugin,snapshot,Snapshot video module,snapshot,+libpng))
239 $(eval $(call BuildPlugin,sndfile,Audio dumper using libsndfile,sndfile,+libsndfile))
240 $(eval $(call BuildPlugin,speex_pp,Speex Pre-processor,speex_pp,+libspeexdsp))
241 $(eval $(call BuildPlugin,srtp,Secure RTP module using libre,srtp,))
242 $(eval $(call BuildPlugin,stdio,Standard input/output UI driver,stdio,))
243 $(eval $(call BuildPlugin,syslog,Syslog module,syslog,))
244 $(eval $(call BuildPlugin,uuid,UUID generator and loader,uuid,))
245 $(eval $(call BuildPlugin,v4l2,Video4Linux2 video source,v4l2,+libv4l))
246 $(eval $(call BuildPlugin,v4l2_codec,Video4Linux2 video codec module,v4l2_codec,))
247 $(eval $(call BuildPlugin,vidbridge,Video bridge module,vidbridge,))
248 $(eval $(call BuildPlugin,vidinfo,Video-info filter,vidinfo,))
249 $(eval $(call BuildPlugin,vidloop,Video-loop test module,vidloop,))
250 $(eval $(call BuildPlugin,vumeter,Display audio levels in console,vumeter,))
251 $(eval $(call BuildPlugin,vp8,VP8 video codec,vp8,+libvpx))
252 $(eval $(call BuildPlugin,vp9,VP9 video codec,vp9,+libvpx))