#
# Copyright (C) 2006-2013 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:=musdk
PKG_VERSION:=10.3.6.0
PKG_RELEASE:=1

PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE:=musdk-marvell-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://marvell.com/
PKG_MD5SUM:=F57F19587DE8D69A858DA513B5CB943F

PKG_FIXUP:=autoreconf
PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk

define Package/$(PKG_NAME)
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=Marvell User-Space SDK (MUSDK)
  URL:=http://marvell.com/
  DEPENDS:=+kmod-$(PKG_NAME)
endef

define Package/$(PKG_NAME)/description
  Marvell User-Space SDK (MUSDK) is a light-weight user-space
  I/O driver for Marvell's Embedded Networking SoC's. The
  MUSDK library provides a simple and direct access to
  Marvell's SoC blocks to networking applications and
  networking infrastructure.
endef

CONFIGURE_ARGS += --disable-shared --enable-static \
        --enable-pp2 --disable-pp2-lock --enable-neta --enable-sam

MUSDK_MODULES += cma dmax2 pp2 neta sam
MUSDK_DRV_MODS += $(PKG_BUILD_DIR)/modules/cma/musdk_cma.ko \
					$(PKG_BUILD_DIR)/modules/dmax2/mv_dmax2_uio.ko \
					$(PKG_BUILD_DIR)/modules/sam/mv_sam_uio.ko \
					$(LINUX_DIR)/drivers/uio/uio_pdrv_genirq.ko \
					$(LINUX_DIR)/drivers/crypto/inside-secure/crypto_safexcel.ko

define Build/Compile/Mod
	$$(MAKE) -C "$$(LINUX_DIR)" \
		ARCH="$$(LINUX_KARCH)" \
		CROSS_COMPILE="$$(TARGET_CROSS)" \
		SUBDIRS="$$(PKG_BUILD_DIR)/modules/$(1)" \
		EXTRA_CFLAGS="$$(PKG_EXTRA_CFLAGS)" \
		$$(EXTRA_KCONFIG) \
		modules;
endef

define Build/Compile
	$(call Build/Compile/Default,)
	$(foreach mod,$(MUSDK_MODULES),$(call Build/Compile/Mod,$(mod)))
endef

define Build/InstallDev
	$(MAKE_VARS) \
		$(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
			$(MAKE_FLAGS) \
			DESTDIR="$(1)" \
			install;
endef

define KernelPackage/$(PKG_NAME)
  SECTION:=kernel
  CATEGORY:=$(TPLINK_CATEGORY)
  SUBMENU:=kernel modules
  TITLE:=Marvell User-Space SDK (MUSDK)
  FILES:=$(foreach mod,$(MUSDK_DRV_MODS),$(mod))
endef

define KernelPackage/$(PKG_NAME)/description
  Marvell User-Space SDK (MUSDK) is a light-weight user-space
  I/O driver for Marvell's Embedded Networking SoC's. The
  MUSDK library provides a simple and direct access to
  Marvell's SoC blocks to networking applications and
  networking infrastructure.
endef

define Package/$(PKG_NAME)/install
	echo
endef

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