# Driver Path
BINDIR=$(PWD)/main/bin_sdw61x
WLANDIR ?= $(PWD)/main/wlan_src
WLANFWDIR ?= $(PWD)/main/FwImage
BINDIR ?= $(PWD)/main/bin_wlan
INSTALL_ROOT ?= $(PWD)/rootfs.nxp
FTMWLANDIR ?= $(PWD)/ftm/wlan_src


export ARCH ?= arm64
export YOCTO_SDK_DIR ?= $(PWD)/../CDJ-1500X/buildroot/output/rockchip_rk3566_cdj1500x/host
export YOCTO_SYSROOT ?= $(YOCTO_SDK_DIR)/aarch64-buildroot-linux-gnu/sysroot
export CROSS_COMPILE ?= $(PWD)/../CDJ-1500X/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export KERNELDIR ?= $(PWD)/../CDJ-1500X/kernel
export KLIB_BUILD ?= $(KERNELDIR)
export APP_SYSROOT ?= /opt/cdj1500x-sdk/aarch64-buildroot-linux-gnu/sysroot
export APP_CROSS_COMPILE ?= /opt/cdj1500x-sdk/bin/aarch64-buildroot-linux-gnu-
export APP_CFLAGS ?= --sysroot=$(APP_SYSROOT)
export BACKPORTSDIR ?= $(PWD)/backports

export PKG_CONFIG_PATH=$(YOCTO_SYSROOT)/usr/lib/pkgconfig

export INCLUDE_LIBNL32_HEADER ?= $(YOCTO_SYSROOT)/usr/include/libnl3
export INCLUDE_LIBNL32_LIB ?= -lm $(YOCTO_SYSROOT)/usr/lib/libnl-3.so.200
export INCLUDE_LIBNL32_GENL_LIB ?= -lm $(YOCTO_SYSROOT)/usr/lib/libnl-genl-3.so.200

default: backports_build wlan backports_install wlan_install

clean: backports_clean wlan_clean

distclean: backports_distclean wlan_distclean
	@rm -rf $(INSTALL_ROOT)

rootfs_prep: rootfs_prep
	@mkdir -p $(INSTALL_ROOT)
	@mkdir -p $(INSTALL_ROOT)/sbin
	@mkdir -p $(INSTALL_ROOT)/lib/modules
	@mkdir -p $(INSTALL_ROOT)/lib/firmware/nxp

# Backports
backports_build:
	@set -e ; if [ ! -f $(BACKPORTSDIR)/.config ] ; then \
		$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
		-C $(BACKPORTSDIR) SUBDIRS=$(BACKPORTSDIR) defconfig-qca9377;\
	fi;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
	-C $(BACKPORTSDIR) SUBDIRS=$(BACKPORTSDIR) -I$(KERNELDIR)/arch/arm/include/generated modules

backports_install:
	cp $(BACKPORTSDIR)/compat/compat.ko $(INSTALL_ROOT)/lib/modules
	cp $(BACKPORTSDIR)/net/wireless/cfg80211.ko $(INSTALL_ROOT)/lib/modules
	$(CROSS_COMPILE)strip --strip-unneeded $(INSTALL_ROOT)/lib/modules/compat.ko
	$(CROSS_COMPILE)strip --strip-unneeded $(INSTALL_ROOT)/lib/modules/cfg80211.ko

backports_clean:
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
	-C $(BACKPORTSDIR) SUBDIRS=$(BACKPORTSDIR) clean

backports_distclean:
	if [ -f $(BACKPORTSDIR)/.config ] ; then \
		rm $(BACKPORTSDIR)/.config; \
	fi;
	$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) \
	-C $(BACKPORTSDIR) SUBDIRS=$(BACKPORTSDIR) clean

# Wlan
wlan: rootfs_prep
	$(MAKE) -C $(WLANDIR) build

wlan_install:
	cp $(BINDIR)/mlan.ko $(INSTALL_ROOT)/lib/modules
	cp $(BINDIR)/sdw61x.ko $(INSTALL_ROOT)/lib/modules
	$(CROSS_COMPILE)strip --strip-unneeded $(INSTALL_ROOT)/lib/modules/mlan.ko
	$(CROSS_COMPILE)strip --strip-unneeded $(INSTALL_ROOT)/lib/modules/sdw61x.ko
	cp $(BINDIR)/mlanutl $(INSTALL_ROOT)/sbin
	cp $(WLANFWDIR)/sduart_nw61x_v1.bin.se $(INSTALL_ROOT)/lib/firmware/nxp/sduart_nw61x_v1.bin
	cp $(WLANFWDIR)/txpwrlimit_cfg_* $(INSTALL_ROOT)/lib/firmware/nxp/
	cp $(WLANFWDIR)/ed_mac_ctrl_V2_nw61x.conf $(INSTALL_ROOT)/lib/firmware/nxp/

wlan_clean:
	$(MAKE) -C $(WLANDIR) clean

wlan_distclean:
	$(MAKE) -C $(WLANDIR) distclean
	rm -rf $(BINDIR)

