#
# Copyright (C) 2006 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)/kernel.mk

PKG_NAME:=vapi
PKG_VERSION:=2.14.0

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_CAT:=zcat

PKG_SOURCE_URL:=http://sophial1.nice.mindspeed.com/platform/vapi/releases/2.14/
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
PKG_MD5SUM:=d1c43637c63da2c4f5109741d33f109a
DEPENDS:=+libargp +kmod-matisse

include $(INCLUDE_DIR)/package.mk

define Package/vapi/Default
	CATEGORY:=Mindspeed Packages
	URL:=http://www.mindspeed.com/
	MAINTAINER:=Mindspeed Technologies
endef

define Package/vapi
	$(call Package/vapi/Default)
	DEFAULT:=m
	TITLE:=The VAPI library
	DESCRIPTION:=This library provides a high level API\
	that hides the details of communicating commands with\
	 a Media Stream Processor.
endef

define Package/vapi-pots
	$(call Package/vapi/Default)
	DEFAULT:=m
	TITLE:=Allows to make POTS calls
	DESCRIPTION:=This library provides a high level API\
	that hides the details of communicating commands with\
	a Media Stream Processor.
endef

define Package/kmod-csme
	$(call Package/vapi/Default)
	DEFAULT:=m
	TITLE:=csme kernel module
	DESCRIPTION:=Kernel module implementing CSME protocol stack and\
	socket interface
	VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
endef

define Package/kmod-fpp-csme
	$(call Package/vapi/Default)
	DEFAULT:=m
	TITLE:=fpp-csme module
	DESCRIPTION:=Kernel module to send simple messages from kernel to\
	csme socket.
	VERSION:=$(LINUX_VERSION)+$(PKG_VERSION)-$(BOARD)-$(PKG_RELEASE)
endef


define Build/fpp-csme/Prepare
	mkdir "$(PKG_BUILD_DIR)/fpp-csme"
	$(CP) ./src/* $(PKG_BUILD_DIR)/fpp-csme
endef

define Build/Prepare
	$(call Build/Prepare/Default,)	
	$(call Build/fpp-csme/Prepare)
endef

define Build/vapi/Compile
	$(MAKE) -C "$(PKG_BUILD_DIR)"/LxProj \
	        ARCH="arm" \
		CROSS_COMPILE="$(TARGET_CROSS)" \
		FSROOT="$(PKG_INSTALL_DIR)" \
		GTL_DEV_CONFIG="NO" \
		install
endef

define Build/vapi-pots/Compile
        $(MAKE) -C "$(PKG_BUILD_DIR)"/app_examples/vapi_pots \
	ARCH="arm" \
	CROSS_COMPILE="$(TARGET_CROSS)" \
	FSTYPE="OpenWrt" \
	FSROOT="$(PKG_INSTALL_DIR)" \
	STAGING_DIR="$(STAGING_DIR)" \
	GTL_DEV_CONFIG="NO" \
	all install
endef

define Build/kmod-fpp-csme/Compile
	$(MAKE) -C $(LINUX_DIR) V=1\
		ARCH="$(LINUX_KARCH)" \
		CROSS_COMPILE="$(TARGET_CROSS)" \
		SUBDIRS="$(PKG_BUILD_DIR)/fpp-csme" \
		INSTALL_MOD_PATH="$(PKG_INSTALL_DIR)" \
		EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/VAPI/linux/gtl_csme/csmencaps" \
		modules modules_install
endef

define Build/kmod-csme/Compile
	$(MAKE) -C "$(PKG_BUILD_DIR)"/VAPI/linux/gtl_csme/csmencaps \
		ARCH="$(LINUX_KARCH)" \
		CROSS_COMPILE="$(TARGET_CROSS)" \
		KERNEL_DIR="$(LINUX_DIR)" \
		PREFIX="$(PKG_INSTALL_DIR)" \
		modules modules_install
endef

define Build/Compile
	$(call Build/vapi/Compile)
	$(call Build/vapi-pots/Compile)
	$(call Build/kmod-csme/Compile)
	$(call Build/kmod-fpp-csme/Compile)
endef

define Package/vapi/install
	mkdir -p $(STAGING_DIR)/lib
	mkdir -p $(STAGING_DIR)/include/vapi
	$(CP) -a $(PKG_INSTALL_DIR)/usr/local/lib/* $(STAGING_DIR)/lib/
	$(CP) -a $(PKG_INSTALL_DIR)/usr/local/include/vapi/* $(STAGING_DIR)/include/vapi

	#mkdir -p $(1)/usr/lib
	#mkdir -p $(1)/usr/include/vapi
	#$(CP) -a $(PKG_INSTALL_DIR)/usr/local/lib/* $(1)/usr/lib/
	#$(CP) -a $(PKG_INSTALL_DIR)/usr/local/include/vapi/* $(1)/usr/include/vapi
endef

define Package/vapi-pots/install
	mkdir -p $(1)/usr/local/bin
	mkdir -p $(1)/usr/local/etc
	$(CP) -a $(PKG_INSTALL_DIR)/usr/local/bin/* $(1)/usr/local/bin/
	$(CP) -a $(PKG_INSTALL_DIR)/usr/local/etc/* $(1)/usr/local/etc/
endef

define Package/kmod-csme/install
	mkdir -p $(1)/lib/modules/$(LINUX_VERSION)
	mkdir -p $(1)/etc/init.d
	$(CP) -a $(PKG_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/extra/* $(1)/lib/modules/$(LINUX_VERSION)/
	install -m0755 ./conf/csmencaps $(1)/etc/init.d/csmencaps
	install -m0644 ./conf/csmencaps-prepare $(1)/etc/init.d/csmencaps-prepare
ifneq ($(CONFIG_ASTERISK_VAPI_SUPPORT), y)
# --== ASTERISK with DCI based MSPD channel module ==--
# Making /etc/init.d/csmencaps not bootable
	sed -i 's/START=/#START=/' $(1)/etc/init.d/csmencaps
endif
endef

define Package/kmod-fpp-csme/install
	mkdir -p $(1)/lib/modules/$(LINUX_VERSION)
	$(CP) -a $(PKG_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/extra/* $(1)/lib/modules/$(LINUX_VERSION)/
endef

$(eval $(call BuildPackage,vapi))
$(eval $(call BuildPackage,vapi-pots))
$(eval $(call BuildPackage,kmod-csme))
$(eval $(call BuildPackage,kmod-fpp-csme))
