#
# Copyright (C) 2017 - 2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/download.mk

PKG_NAME:=asterisk-chan-quectel
PKG_VERSION:=1.2.0
PKG_RELEASE:=5
PKG_BUILD_DEPENDS:=asterisk gsm

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/grtel/$(PKG_NAME)
PKG_SOURCE_VERSION:=2ece47afba4696ee333bf905bd4cf18493278103

PKG_FIXUP:=autoreconf

PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYRIGHT.txt LICENSE.txt
PKG_MAINTAINER:=Jiri Slachta <jiri@slachta.eu>

MODULES_DIR:=/usr/lib/asterisk/modules

include $(INCLUDE_DIR)/package.mk
# asterisk-chan-quectel needs iconv
include $(INCLUDE_DIR)/nls.mk

define Package/$(PKG_NAME)
  SUBMENU:=Telephony
  SECTION:=net
  CATEGORY:=Network
  URL:=https://github.com/IchthysMaranatha/asterisk-chan-quectel.git
  DEPENDS:=+asterisk +asterisk-bridge-simple $(ICONV_DEPENDS) +libgsm +liburc +libubus +libubox +libblobmsg-json +gsmd +asterisk-config
  TITLE:=Asterisk Mobile Telephony Module
  USERID:=asterisk=660:asterisk=660
  USER_GROUPS:=asterisk:dialout audio
endef

define Package/$(PKG_NAME)/description
 Asterisk channel driver for mobile telephony.
endef

CONFIGURE_ARGS+= \
	--with-asterisk=$(STAGING_DIR)/usr/include \
	--with-astversion=23 \
	--disable-manager

ifeq ($(CONFIG_BUILD_NLS),y)
	CONFIGURE_ARGS+=--with-iconv=$(ICONV_PREFIX)/include
else
	CONFIGURE_ARGS+=--with-iconv=$(TOOLCHAIN_DIR)/include
endif

MAKE_FLAGS+=LD="$(TARGET_CC)"
TARGET_LDFLAGS += -lgsm -lurc -lubus -lubox -lblobmsg_json

CONFIGURE_VARS += \
	DESTDIR="$(MODULES_DIR)" \
	ac_cv_type_size_t=yes \
	ac_cv_type_ssize_t=yes

ifeq ($(CONFIG_PACKAGE_asterisk-chan-quectel),m)
define Install/Permtab
	$(INSTALL_DIR) $(1)/etc/permtab.d
	$(INSTALL_DATA) ./files/$(PKG_NAME).permtab $(1)/etc/permtab.d/$(PKG_NAME)
endef
endif

define Package/$(PKG_NAME)/install
	$(INSTALL_DIR) $(1)$(MODULES_DIR)
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/chan_quectel.so $(1)$(MODULES_DIR)
	$(INSTALL_DIR) $(1)/etc/hotplug.d/gsm
	$(INSTALL_BIN) ./files/99-asterisk-chan-quectel $(1)/etc/hotplug.d/gsm/99-asterisk-chan-quectel
	$(INSTALL_DIR) $(1)/etc/uci-defaults
	$(INSTALL_BIN) ./files/99-asterisk-chan-quectel-call-utils $(1)/etc/uci-defaults/99-asterisk-chan-quectel-call-utils
	$(INSTALL_DIR) $(1)/usr/share/acl.d
	$(INSTALL_DATA) ./files/acl.d/asterisk-chan-quectel.json $(1)/usr/share/acl.d/asterisk-chan-quectel.json
	$(call Install/Permtab,$(1))
endef

$(eval $(call BuildPackage,$(PKG_NAME)))
