MODULE_DIR	= $(shell pwd)
MODULE_NAME	= unifi_sdio_v5

$(MODULE_NAME)-y :=									\
	os_linux/driver/sdio_mmc.o	\
	os_linux/driver/sdio_stubs.o	\
	os_linux/driver/sme_csr/sme_userspace.o	\
	os_linux/driver/sme_csr/csr_wifi_sme_sef.o	\
	os_linux/driver/sme_csr/csr_wifi_nme_ap_sef.o	\
	os_linux/driver/sme_csr/csr_wifi_router_sef.o	\
	os_linux/driver/sme_csr/csr_wifi_router_ctrl_sef.o	\
	os_linux/driver/sme_csr/csr_wifi_router_transport.o	\
	os_linux/driver/sme_sys.o	\
	os_linux/driver/unifi_sme.o	\
	os_linux/driver/data_tx.o	\
	os_linux/driver/bh.o	\
	os_linux/driver/drv.o	\
	os_linux/driver/firmware.o	\
	os_linux/driver/indications.o	\
	os_linux/driver/io.o	\
	os_linux/driver/netdev.o	\
	os_linux/driver/os.o	\
	os_linux/driver/init_hw.o	\
	os_linux/driver/unifi_event.o	\
	os_linux/driver/sdio_events.o	\
	os_linux/driver/unifi_pdu_processing.o	\
	os_linux/driver/ul_int.o	\
	os_linux/driver/inet.o	\
	os_linux/driver/putest.o	\
	os_linux/driver/unifi_dbg.o	\
	os_linux/driver/sme_mgt.o	\
	os_linux/driver/sme_blocking.o	\
	os_linux/driver/wext_events.o	\
	os_linux/driver/sme_wext.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_card_sdio.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_card_sdio_mem.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_card_sdio_intr.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_send.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_signals.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_ta_sampling.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_udi.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_unifi_signal_names.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_dump.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_download.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_xbv.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_chiphelper.o	\
	synergy/wifi/5.1.3/src/hip/lib_hip/csr_wifi_hip_packing.o	\
	synergy/wifi/5.1.3/src/interfaces/router/csr_wifi_router_converter_init.o	\
	synergy/wifi/5.1.3/src/interfaces/router/csr_wifi_router_serialize.o	\
	synergy/wifi/5.1.3/src/interfaces/router/csr_wifi_router_free_downstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/router/csr_wifi_router_free_upstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/router_ctrl/csr_wifi_router_ctrl_converter_init.o	\
	synergy/wifi/5.1.3/src/interfaces/router_ctrl/csr_wifi_router_ctrl_serialize.o	\
	synergy/wifi/5.1.3/src/interfaces/router_ctrl/csr_wifi_router_ctrl_free_downstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/router_ctrl/csr_wifi_router_ctrl_free_upstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/sme/csr_wifi_sme_converter_init.o	\
	synergy/wifi/5.1.3/src/interfaces/sme/csr_wifi_sme_serialize.o	\
	synergy/wifi/5.1.3/src/interfaces/sme/csr_wifi_sme_free_downstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/sme/csr_wifi_sme_free_upstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/nme/csr_wifi_nme_converter_init.o	\
	synergy/wifi/5.1.3/src/interfaces/nme/csr_wifi_nme_serialize.o	\
	synergy/wifi/5.1.3/src/interfaces/nme/csr_wifi_nme_free_downstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/nme/csr_wifi_nme_free_upstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/nme_ap/csr_wifi_nme_ap_converter_init.o	\
	synergy/wifi/5.1.3/src/interfaces/nme_ap/csr_wifi_nme_ap_serialize.o	\
	synergy/wifi/5.1.3/src/interfaces/nme_ap/csr_wifi_nme_ap_free_downstream_contents.o	\
	synergy/wifi/5.1.3/src/interfaces/nme_ap/csr_wifi_nme_ap_free_upstream_contents.o	\
	synergy/wifi/5.1.3/src/wifi_util/csr_wifi_lib.o	\
	synergy/wifi/5.1.3/src/wifi_util/msgconv/csr_wifi_serialize_primitive_types.o	\
	synergy/framework/3.1/bsp/ports/pclin/src/kernel/framework_ext/csr_framework_ext.o	\
	synergy/framework/3.1/bsp/ports/pclin/src/kernel/time/csr_time.o	\
	synergy/framework/3.1/bsp/ports/pclin/src/kernel/panic/csr_panic.o	\
	synergy/framework/3.1/bsp/ports/pclin/src/kernel/pmem/csr_pmem.o	\
	synergy/framework/3.1/bsp/ports/pclin/src/kernel/util/csr_util.o	\
	synergy/framework/3.1/gsp/src/utils/formatted_io/csr_formatted_io.o	\
	synergy/framework/3.1/gsp/src/utils/msgconv/csr_msgconv.o	\
	synergy/framework/3.1/gsp/src/utils/msgconv/csr_serialize_primitive_types.o	\
	synergy/framework/3.1/gsp/src/utils/unicode/csr_utf16.o
	
obj-m      	:= $(MODULE_NAME).o

INCLUDES	+=									\
		-I$(src)/os_linux/driver	\
 		-I$(src)/synergy/framework/3.1/bsp/inc	\
 		-I$(src)/synergy/framework/3.1/bsp/ports/pclin/inc	\
 		-I$(src)/synergy/framework/3.1/gsp/inc	\
 		-I$(src)/synergy/wifi/5.1.3/inc	\
 		-I$(src)/synergy/wifi/5.1.3/src/inc	\
		-I$(src)/synergy/wifi/5.1.3/src/hip/inc	\
 		-I$(src)/synergy/wifi/5.1.3/src/hip/lib_hip

EXTRA_CFLAGS	+= $(INCLUDES) -DMODULE -D__KERNEL__ -DUNIFI_DEBUG -DCSR_WIFI_DEFER_TH_FLUSH -DCSR_WIFI_RX_PATH_SPLIT -DCSR_WIFI_RX_PATH_SPLIT_DONT_USE_WQ -DCSR_WIFI_SPLIT_PATCH -DCSR_WIFI_VERSION=\"5.1.3er_ALPS004\" -DSDIO_EXPORTS_STRUCT_DEVICE -DCSR_WIFI_SUPPORT_MMC_DRIVER -DCSR_WIFI_SINGLE_FUNCTION -DCSR_SME_USERSPACE -DCSR_SUPPORT_WEXT -DCSR_SUPPORT_SME -DREMOTE_SYS_SAP -DREMOTE_MGT_SAP -DCSR_WIFI_SECURITY_WAPI_ENABLE -DCSR_WIFI_SECURITY_WAPI_QOSCTRL_MIC_WORKAROUND -DENABLE_SHUTDOWN -DCSR_WIFI_NME_ENABLE -DCSR_WIFI_AP_ENABLE -DCSR_SUPPORT_WEXT_AP -DCSR_WIFI_REQUEUE_PACKET_TO_HAL

all:
	$(MAKE) -C $(KERNEL_PATH) M=$(MODULE_DIR) ARCH=arm modules

clean:
	$(MAKE) -C $(KERNEL_PATH) M=$(MODULE_DIR) clean
