58707b491bf0787f5b9d603c7dbf096712b3d9ab
[feed/telephony.git] / net / asterisk-opus / Makefile
1 #
2 # Copyright (C) 2018 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=asterisk-opus
11 PKG_VERSION:=20171009
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=https://github.com/traud/asterisk-opus.git
16 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
17 PKG_SOURCE_VERSION:=83e1b458c77e0e287adeca494eeb79edb077b0ff
18 PKG_MIRROR_HASH:=89265ee63bc3cb02ef9e75087f782147db1dec53433f9d6cfc08c7229cd61881
19 PKG_SOURCE_PROTO:=git
20
21 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
22
23 PKG_LICENSE:=GPL-2.0
24 PKG_LICENSE_FILES:=LICENSE
25 PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>
26
27 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
28
29 include $(INCLUDE_DIR)/package.mk
30
31 TARGET_CFLAGS += \
32 -DAST_MODULE_SELF_SYM=__internal_codec_opus_open_source_self \
33 $(FPIC)
34
35 define Package/$(PKG_NAME)/Default
36 SUBMENU:=Telephony
37 SECTION:=net
38 CATEGORY:=Network
39 TITLE:=Opus codec support
40 URL:=https://github.com/traud/asterisk-opus
41 DEPENDS:=+libopus
42 endef
43
44 define Package/asterisk13-codec-opus
45 $(call Package/$(PKG_NAME)/Default)
46 DEPENDS+=asterisk13
47 VARIANT:=asterisk13
48 endef
49
50 define Package/asterisk16-codec-opus
51 $(call Package/$(PKG_NAME)/Default)
52 DEPENDS+=asterisk16
53 VARIANT:=asterisk16
54 endef
55
56 define Package/description/Default
57 Opus is the default audio codec in WebRTC. WebRTC is available in
58 Asterisk via SIP over WebSockets (WSS). Nevertheless, Opus can be used
59 for other transports (UDP, TCP, TLS) as well. Opus supersedes previous
60 codecs like CELT and SiLK. Furthermore, in favor of Opus, other
61 open-source audio codecs are no longer developed, like Speex, iSAC,
62 iLBC, and Siren. If you use your Asterisk as a back-to-back user agent
63 (B2BUA) and you transcode between various audio codecs, one should
64 enable Opus for future compatibility.
65
66 Opus is not only supported for pass-through but can be transcoded as
67 well.
68 endef
69
70 Package/asterisk13-codec-opus/description = $(Package/description/Default)
71 Package/asterisk16-codec-opus/description = $(Package/description/Default)
72
73 ifeq ($(BUILD_VARIANT),asterisk13)
74 TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/asterisk-13/include
75 endif
76
77 ifeq ($(BUILD_VARIANT),asterisk16)
78 TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/asterisk-16/include
79 endif
80
81 define Package/Install/Default
82 $(INSTALL_DIR) $(1)/usr/lib/asterisk/modules
83 $(INSTALL_BIN) $(PKG_BUILD_DIR)/codecs/codec_opus_open_source.so \
84 $(1)/usr/lib/asterisk/modules
85 endef
86
87 Package/asterisk13-codec-opus/install = $(Package/Install/Default)
88 Package/asterisk16-codec-opus/install = $(Package/Install/Default)
89
90 define Build/Configure
91 endef
92
93 $(eval $(call BuildPackage,asterisk13-codec-opus))
94 $(eval $(call BuildPackage,asterisk16-codec-opus))