mirror of
https://github.com/openwrt/telephony.git
synced 2026-04-15 19:02:14 +00:00
This sets PKG_EXTMOD_SUBDIRS so kernel.mk can find the rtpengine Module.symvers file. Also, this puts KERNEL_MAKE_FLAGS into the make flags used to compile the kernel module. This way Module.symvers files of other modules are made available, plus there is no need anymore to specify ARCH and CROSS_COMPILE, as KERNEL_MAKE_FLAGS already takes care of that. While updating make flags this also adds PKG_JOBS for completeness' sake. Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
276 lines
7.1 KiB
Makefile
276 lines
7.1 KiB
Makefile
#
|
|
# Copyright (C) 2020 Sebastian Kemper <sebastian_ml@gmx.net>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
PKG_NAME:=rtpengine
|
|
PKG_VERSION:=8.5.3.2
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-mr$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://codeload.github.com/sipwise/rtpengine/tar.gz/mr$(PKG_VERSION)?
|
|
PKG_HASH:=7f463f1f23067d7f69c334e04710348ce95cd637c340724b3042d44083ccba07
|
|
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-mr$(PKG_VERSION)
|
|
|
|
PKG_LICENSE:=GPL-3.0
|
|
PKG_LICENSE_FILES:=LICENSE
|
|
|
|
PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
|
|
|
|
# When building in parallel, some files (like streambuf.c or dtmflib.c)
|
|
# are generated multiple times by the rtpengine build system.
|
|
# Intermittently they then contain garbage, leading to redefinition
|
|
# errors.
|
|
PKG_BUILD_PARALLEL:=0
|
|
|
|
PKG_BUILD_DEPENDS:=gperf/host
|
|
|
|
# With below variable set, $(PKG_SYMVERS_DIR)/rtpengine.symvers gets generated
|
|
# from kernel-module/Module.symvers.
|
|
PKG_EXTMOD_SUBDIRS:=kernel-module
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
|
|
ENGINE_DEPENDS := \
|
|
+glib2 \
|
|
+json-glib \
|
|
+libevent2 \
|
|
+libevent2-pthreads \
|
|
+libhiredis \
|
|
+libip4tc \
|
|
+libopenssl \
|
|
+libpcap \
|
|
+libpcre \
|
|
+xmlrpc-c-client \
|
|
+zlib
|
|
|
|
ENGINE_DEPENDS_TRANSCODING := \
|
|
$(ENGINE_DEPENDS) \
|
|
+bcg729 \
|
|
+libffmpeg-full \
|
|
+libmariadb \
|
|
+libspandsp
|
|
|
|
RECORDING_DEPENDS := \
|
|
+glib2 \
|
|
+libffmpeg-full \
|
|
+libmariadb \
|
|
+libopenssl
|
|
|
|
RTPENGINE_USERID:=$(PKG_NAME)=378:$(PKG_NAME)=378
|
|
|
|
define Package/rtpengine/Default
|
|
URL:=https://github.com/sipwise/rtpengine
|
|
endef
|
|
|
|
define Package/rtpengine/Template
|
|
$(call Package/rtpengine/Default)
|
|
TITLE:=Sipwise RTP Engine
|
|
CATEGORY:=Network
|
|
SECTION:=net
|
|
SUBMENU:=Telephony
|
|
USERID:=$(RTPENGINE_USERID)
|
|
endef
|
|
|
|
define Package/rtpengine/description/Template
|
|
The Sipwise NGCP rtpengine is a proxy for RTP traffic and other UDP
|
|
based media traffic. It's meant to be used with the Kamailio SIP proxy
|
|
and forms a drop-in replacement for any of the other available RTP and
|
|
media proxies.
|
|
endef
|
|
|
|
define Package/rtpengine
|
|
$(call Package/rtpengine/Template)
|
|
VARIANT:=transcode
|
|
DEPENDS := \
|
|
$(patsubst +%,+PACKAGE_rtpengine:%,$(ENGINE_DEPENDS_TRANSCODING)) \
|
|
+IPV6:libip6tc
|
|
endef
|
|
|
|
define Package/rtpengine/conffiles
|
|
/etc/config/rtpengine
|
|
/etc/init.d/rtpengine
|
|
/etc/rtpengine/rtpengine.conf
|
|
endef
|
|
|
|
define Package/rtpengine/description
|
|
$(call Package/rtpengine/description/Template)
|
|
|
|
Please consider installing kmod-ipt-rtpengine.
|
|
|
|
endef
|
|
|
|
define Package/rtpengine/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/daemon/rtpengine $(1)/usr/bin
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/rtpengine.init $(1)/etc/init.d/rtpengine
|
|
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/rtpengine.conf $(1)/etc/config/rtpengine
|
|
|
|
$(INSTALL_DIR) $(1)/etc/rtpengine
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine.sample.conf \
|
|
$(1)/etc/rtpengine/rtpengine.conf
|
|
|
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
|
|
$(INSTALL_BIN) ./files/rtpengine.hotplug \
|
|
$(1)/etc/hotplug.d/iface/90-rtpengine
|
|
endef
|
|
|
|
define Package/rtpengine-no-transcode
|
|
$(call Package/rtpengine/Template)
|
|
TITLE+= (no transcoding)
|
|
VARIANT:=no-transcode
|
|
CONFLICTS:=rtpengine
|
|
DEPENDS := \
|
|
$(patsubst +%,+PACKAGE_rtpengine-no-transcode:%,$(ENGINE_DEPENDS)) \
|
|
+IPV6:libip6tc
|
|
endef
|
|
|
|
Package/rtpengine-no-transcode/conffiles=$(Package/rtpengine/conffiles)
|
|
|
|
define Package/rtpengine-no-transcode/description
|
|
$(call Package/rtpengine/description/Template)
|
|
|
|
This package comes without transcoding support.
|
|
|
|
Please consider installing kmod-ipt-rtpengine.
|
|
|
|
endef
|
|
|
|
Package/rtpengine-no-transcode/install=$(Package/rtpengine/install)
|
|
|
|
define Package/rtpengine-recording
|
|
$(call Package/rtpengine/Default)
|
|
TITLE:=Sipwise RTP Recording Daemon
|
|
CATEGORY:=Network
|
|
SECTION:=net
|
|
SUBMENU:=Telephony
|
|
USERID:=$(RTPENGINE_USERID)
|
|
DEPENDS:=$(patsubst +%,+PACKAGE_rtpengine-recording:%,$(RECORDING_DEPENDS))
|
|
endef
|
|
|
|
define Package/rtpengine-recording/conffiles
|
|
/etc/config/rtpengine-recording
|
|
/etc/rtpengine/rtpengine-recording.conf
|
|
endef
|
|
|
|
define Package/rtpengine-recording/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) \
|
|
$(PKG_BUILD_DIR)/recording-daemon/rtpengine-recording \
|
|
$(1)/usr/bin
|
|
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/rtpengine-recording.init \
|
|
$(1)/etc/init.d/rtpengine-recording
|
|
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/rtpengine-recording.conf \
|
|
$(1)/etc/config/rtpengine-recording
|
|
|
|
$(INSTALL_DIR) $(1)/etc/rtpengine
|
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/etc/rtpengine-recording.sample.conf \
|
|
$(1)/etc/rtpengine/rtpengine-recording.conf
|
|
endef
|
|
|
|
define Package/iptables-mod-rtpengine
|
|
$(call Package/rtpengine/Default)
|
|
TITLE:=Sipwise rtpengine iptables extension
|
|
CATEGORY:=Network
|
|
SECTION:=net
|
|
SUBMENU:=Firewall
|
|
DEPENDS:=+PACKAGE_iptables-mod-rtpengine:libxtables
|
|
endef
|
|
|
|
define Package/iptables-mod-rtpengine/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/iptables
|
|
$(INSTALL_BIN) \
|
|
$(PKG_BUILD_DIR)/iptables-extension/libxt_RTPENGINE.so \
|
|
$(1)/usr/lib/iptables
|
|
endef
|
|
|
|
define KernelPackage/ipt-rtpengine
|
|
$(call Package/rtpengine/Default)
|
|
TITLE:=Sipwise rtpengine netfilter module
|
|
SUBMENU:=Netfilter Extensions
|
|
FILES:=$(PKG_BUILD_DIR)/kernel-module/xt_RTPENGINE.$(LINUX_KMOD_SUFFIX)
|
|
AUTOLOAD:=$(call AutoProbe,xt_RTPENGINE)
|
|
DEPENDS := \
|
|
+PACKAGE_kmod-ipt-rtpengine:kmod-crypto-hash \
|
|
+PACKAGE_kmod-ipt-rtpengine:kmod-ipt-core
|
|
MODPARAMS.xt_RTPENGINE := \
|
|
proc_uid=$(PKG_NAME) \
|
|
proc_gid=$(PKG_NAME)
|
|
endef
|
|
|
|
define KernelPackage/ipt-rtpengine/description
|
|
Netfilter kernel module for rtpengine
|
|
|
|
endef
|
|
|
|
MAKE_VARS+=RTPENGINE_VERSION=$(PKG_VERSION)
|
|
|
|
ifeq ($(BUILD_VARIANT),no-transcode)
|
|
MAKE_VARS+=with_transcoding=no
|
|
endif
|
|
|
|
# rtpengine uses Debian's dpkg utility programs if it can find them. But
|
|
# we don't want build host flags to leak into our cross-compile.
|
|
define Build/Prepare
|
|
$(call Build/Prepare/Default)
|
|
ifeq ($(QUILT),)
|
|
cd "$(PKG_BUILD_DIR)" && \
|
|
$(FIND) . -maxdepth 2 -name "*Makefile" | \
|
|
xargs -I{} $(SED) \
|
|
'/shell which dpkg-/s/dpkg/OpenWrt-has-no-dpkg/' {}
|
|
endif
|
|
endef
|
|
|
|
define Build/Configure
|
|
endef
|
|
|
|
define Build/Compile
|
|
|
|
ifneq ($(CONFIG_PACKAGE_kmod-ipt-rtpengine),)
|
|
RTPENGINE_VERSION=$(PKG_VERSION) $(MAKE) \
|
|
$(PKG_JOBS) \
|
|
-C $(PKG_BUILD_DIR)/kernel-module \
|
|
KSRC=$(LINUX_DIR) \
|
|
$(KERNEL_MAKE_FLAGS)
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PACKAGE_iptables-mod-rtpengine),)
|
|
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/iptables-extension)
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PACKAGE_rtpengine)$(CONFIG_PACKAGE_rtpengine-no-transcode),)
|
|
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/daemon)
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PACKAGE_rtpengine-recording),)
|
|
$(call Build/Compile/Default,-C $(PKG_BUILD_DIR)/recording-daemon)
|
|
endif
|
|
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
endef
|
|
|
|
# KernelPackage calls need to go first, otherwise hooks like
|
|
# collect_module_symvers won't get added.
|
|
$(eval $(call KernelPackage,ipt-rtpengine))
|
|
$(eval $(call BuildPackage,rtpengine-no-transcode))
|
|
$(eval $(call BuildPackage,iptables-mod-rtpengine))
|
|
$(eval $(call BuildPackage,rtpengine))
|
|
$(eval $(call BuildPackage,rtpengine-recording))
|