#
# Copyright (C) 2023 Teltonika-Network
#

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

PKG_NAME:=realtek-sdk

PKG_SOURCE_VERSION:=1.3.1

PKG_LICENSE:=Teltonika-closed

QUILT=1
TLT_PATCH_SUBDIR=tlt/
REALTEK_PATCH_SUBDIR=realtek/

include $(INCLUDE_DIR)/package.mk

define KernelPackage/realtek-sdk
	SUBMENU:=Other modules
	BUILD_TARGET:=realtek-sdk
	TITLE:=Realtek SDK kernel drivers
	FILES:=$(PKG_BUILD_DIR)/rtcore/rtcore.ko \
	       $(PKG_BUILD_DIR)/rtk/rtk.ko \
	       $(PKG_BUILD_DIR)/sdk/system/linux/rtdrv/rtdrv.ko
	AUTOLOAD:=$(call AutoLoad,40,rtdrv,1)
endef

define Package/diag
	SECTION:=base
	CATEGORY:=Base system
	BUILD_TARGET:=diag
	TITLE:=Realtek SDK application
	DEPENDS:=+librtusr
endef

define Package/librtusr
	SECTION:=libs
	CATEGORY:=Libraries
	BUILD_TARGET:=librtusr
	TITLE:=Realtek SDK library
endef

define Package/diag/description
	Realtek SDK application
endef

define Package/librtusr/description
	Realtek SDK library
endef

define KernelPackage/realtek-sdk/description
	Realtek SDK kernel drivers
endef

USR_MAKE_FLAGS = \
	CROSS_COMPILE="$(TARGET_CROSS)" \
	CC="$(TARGET_CC)" \
	LD="$(TARGET_CROSS)ld" \
	CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \
	LDFLAGS="$(TARGET_LDFLAGS)" \


KMOD_MAKE_OPTS:= \
	$(KERNEL_MAKE_FLAGS) \
	M="$(PKG_BUILD_DIR)"

define Quilt/Refresh/Package
	$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR),$(TLT_PATCH_SUBDIR))
endef

define Build/Patch
	$(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
	$(call PatchDir,$(PKG_BUILD_DIR),$(PKG_BUILD_DIR)/$(PATCH_DIR)_$(REALTEK_PATCH_SUBDIR),$(REALTEK_PATCH_SUBDIR))
	$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),$(TLT_PATCH_SUBDIR))
	$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
endef




define Package/diag/install
	$(INSTALL_DIR) $(1)/usr/bin
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/sdk/src/app/diag_v2/bin/diag $(1)/usr/bin
endef

define Package/librtusr/install
	$(INSTALL_DIR) $(1)/usr/lib
	$(CP) $(PKG_BUILD_DIR)/lib/librtusr.so $(1)/usr/lib/librtusr.so
endef

$(eval $(call KernelPackage,realtek-sdk))
$(eval $(call BuildPackage,librtusr))
$(eval $(call BuildPackage,diag))

