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

include $(TOPDIR)/rules.mk

PKG_NAME:=pjsip
PKG_VERSION:=1.10
PKG_RELEASE:=1

PKG_BUILD_PARALLEL:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_DIR:=$(TPLINK_DIR)/opensource/$(PKG_NAME)/src

include $(INCLUDE_DIR)/package.mk

#include ./voip.mak
#TARGET_CFLAGS += VOIP_CFLAGS
#TARGET_CFLAGS += DF_CFLAGS

TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/voip


#TARGET_CFLAGS += -D__LINUX_OS_FC__ -DINCLUDE_VOIP

#ifeq ($(CONFIG_PACKAGE_voip-config_INCLUDE_USB_VOICEMAIL), y)
#    export INCLUDE_USB_VOICEMAIL=y
#    TARGET_CFLAGS += -DINCLUDE_USB_VOICEMAIL
#endif
#ifeq ($(CONFIG_PACKAGE_voip-config_INCLUDE_USBVM_MODULE), y)
#    export INCLUDE_USBVM_MODULE=y
#    TARGET_CFLAGS += -DINCLUDE_USBVM_MODULE
#endif

#ifneq ($(CONFIG_PACKAGE_voip-config_NUM_FXS_CHANNELS), )
#    $(info NUM_FXS_CHANNELS is [${CONFIG_PACKAGE_voip-config_NUM_FXS_CHANNELS}])
#    export NUM_FXS_CHANNELS=${CONFIG_PACKAGE_voip-config_NUM_FXS_CHANNELS}
#    TARGET_CFLAGS += -DNUM_FXS_CHANNELS=${CONFIG_PACKAGE_voip-config_NUM_FXS_CHANNELS}
#endif

#export INCLUDE_VOIP_SUPPORT_IPV6=y
#TARGET_CFLAGS += -DINCLUDE_VOIP_SUPPORT_IPV6


TARGET_CFLAGS += -DINCLUDE_VOIP \
	-DNUM_FXS_CHANNELS=2 \
	-DINCLUDE_USB_VOICEMAIL \
	-DINCLUDE_FLASH_VOICEMAIL \
	-DINCLUDE_USBVM_MODULE \
	-DVOICEMAIL_MULTI_STORAGE_SUPPORT \
	-DINCLUDE_DMZ \
	-DINCLUDE_DMZ_BYPASS \
	-DINCLUDE_CALLLOG_SAVE \
	-DINCLUDE_CALLTHROUGH \
	-DINCLUDE_CALLFWD_THROUGH_DUT \
	-DINCLUDE_AREACODE \
	-DINCLUDE_PNCAP \
	-DINCLUDE_VOICEAPP \
	-DNUM_DECT_CHANNELS=0 \
	-DNUM_VOICEAPP_CHANNELS=8 \
	-DINCLUDE_VOIP_SUPPORT_IPV6 \
	-DVOIP_LOCALE_ALL \
	-DSUPPLIER=mtk \
	-D__LINUX_OS_FC__

export NUM_FXS_CHANNELS=2
export INCLUDE_VOIP=y
export INCLUDE_USB_VOICEMAIL=y
export INCLUDE_FLASH_VOICEMAIL=y
export INCLUDE_USBVM_MODULE=y
export VOICEMAIL_MULTI_STORAGE_SUPPORT=y
export INCLUDE_DMZ=y
export INCLUDE_DMZ_BYPASS=y
export INCLUDE_CALLLOG_SAVE=y
export INCLUDE_CALLTHROUGH=y
export INCLUDE_CALLFWD_THROUGH_DUT=y
export INCLUDE_AREACODE=y
export INCLUDE_PNCAP=y
export INCLUDE_VOICEAPP=y
export NUM_DECT_CHANNELS=0
export NUM_VOICEAPP_CHANNELS=8
export INCLUDE_VOIP_SUPPORT_IPV6=y
export OIP_LOCALE_ALL=y
export SUPPLIER=mtk

define Package/pjsip
  SECTION:=net
  CATEGORY:=Network
  SUBMENU:=VoIP
  MAINTAINER:=TP-LINK & PJSIP
  TITLE:=pjsip
  DEPENDS:=  +libvoip-common +libuuid +liblua
endef

define Package/$(PKG_NAME)/description
PJSIP is a moudle for VoIP.
endef

CONFIGURE_ARGS += \
	--disable-speex-aec  \
	--disable-l16-codec \
	--disable-gsm-codec \
	--disable-speex-codec \
	--disable-ilbc-codec \
	--disable-g7221-codec \
	--disable-ssl \
	--disable-oss \
	--disable-sound

EXTRA_CFLAGS:=-I$(PKG_BUILD_DIR)/include
EXTRA_CPPFLAGS+= -Wall -Werror=implicit-function-declaration

PJSIP_EXPORT_HEADERS := \
	cmsip/include/* \
	pjlib/include/* \
	usbvm/include/* 

PJSIP_EXPORT_LIBS := \
	usbvm/lib/libusbvmcommon.so

USE_LOCAL=$(shell ls $(PKG_SOURCE_DIR)/ 2>/dev/null >/dev/null && echo 1)
ifneq ($(USE_LOCAL),)
define Build/Prepare
	mkdir -p $(PKG_BUILD_DIR)
	$(CP) $(PKG_SOURCE_DIR)/*  $(PKG_BUILD_DIR)
endef
endif

#LDFLAGS="$(TARGET_LDFLAGS) -lc $(LIBGCC_S) -lm"

define Build/Compile
	echo $(TARGET_CONFIGURE_OPTS)
	+CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
	CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS)" \
	LDFLAGS="$(TARGET_LDFLAGS) -lc $(LIBGCC_S) -lm -luci -lvoip-common -llua -ldl" \
		$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH)
endef

define Build/InstallDev
	$(INSTALL_DIR) $(1)/usr/include/pjsip
	$(CP) $(foreach header,$(PJSIP_EXPORT_HEADERS),$(PKG_BUILD_DIR)/$(header)) $(1)/usr/include/pjsip
	$(INSTALL_DIR) $(1)/usr/lib/
	$(CP) $(foreach pjlib,$(PJSIP_EXPORT_LIBS),$(PKG_BUILD_DIR)/$(pjlib)) $(1)/usr/lib
endef

define Package/pjsip/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/pjsip-apps/bin/pjsua $(1)/usr/bin/
	$(INSTALL_DIR) $(1)/usr/lib/
	$(CP) $(foreach pjlib,$(PJSIP_EXPORT_LIBS),$(PKG_BUILD_DIR)/$(pjlib)) $(1)/usr/lib
endef

$(eval $(call BuildPackage,pjsip))
