NIC_SELECT = RTL8192SE

CC = gcc
KVER  := $(shell uname -r)
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/

ifneq ($(shell uname -r|cut -d. -f1,2), 2.4)
###################### KERNEL 2.6 ################################
ifeq ($(NIC_SELECT),RTL8192SE)
EXTRA_CFLAGS = -DRTL8192SE
EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \
		-DRTL92SE_FPGA_VERIFY=0 \
		-DDEMO_BOARD_SUPPORT=1 \
		-DRTL8192SU_DISABLE_CCK_RATE=0 \
		-DRTL8192S_DISABLE_FW_DM=0 \
		-DHAL_MAC_ENABLE=1 \
		-DHAL_BB_ENABLE=1 \
		-DHAL_RF_ENABLE=1 \
		-DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \
		-DDISABLE_BB_RF=0 \
		-DCONFIG_PM_RTL \
		-DENABLE_GPIO_RADIO_CTL \
		-DRTL8190_Download_Firmware_From_Header=1 \
		-DCONFIG_PM 				\
		-DENABLE_IPS 				\
		-DENABLE_LPS 				\
		-DRTL8192SE_CONFIG_ASPM_OR_D3 	
		#-DCONFIG_MP 
		#-DENABLE_AMSDU 				
		#-DADHOC_11N 				
		#-DEFUSE_REPG_WORKAROUND
		
		#NOTICE:
		#CONFIG_MP is for MP test, 
		#you should close IPS/LPS/GPIO/ASPM 
endif
ifeq ($(NIC_SELECT),RTL8190P)
EXTRA_CFLAGS += -DRTL8190P
#EXTRA_CFLAGS += -DCONFIG_PM
EXTRA_CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
endif
ifeq ($(NIC_SELECT),RTL8192E)
EXTRA_CFLAGS+=-DRTL8192E
EXTRA_CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
EXTRA_CFLAGS+=-DENABLE_GPIO_RADIO_CTL
EXTRA_CFLAGS += -DENABLE_IPS
EXTRA_CFLAGS += -DENABLE_LPS
endif
EXTRA_CFLAGS += -DUSE_FW_SOURCE_IMG_FILE
ifeq ($(NIC_SELECT),RTL8191SE_MESH)
#AUTHTYPE=SAE
AUTHTYPE=OPEN
	EXTRA_CFLAGS += -DRTL8192SE \
			-DEEPROM_OLD_FORMAT_SUPPORT=0 \
			-DRTL92SE_FPGA_VERIFY=0 \
			-DDEMO_BOARD_SUPPORT=1 \
			-DRTL8192SU_DISABLE_CCK_RATE=0 \
			-DRTL8192S_DISABLE_FW_DM=0 \
			-DHAL_MAC_ENABLE=1 \
			-DHAL_BB_ENABLE=1 \
			-DHAL_RF_ENABLE=1 \
			-DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \
			-DDISABLE_BB_RF=0 \
			-DRTL8190_Download_Firmware_From_Header=1 \
			-DEFUSE_REPG_WORKAROUND \
			-DCONFIG_PM \
			-DCONFIG_PM_RTL \
			-DENABLE_GPIO_RADIO_CTL\
			-DENABLE_IPS \
			-DENABLE_LPS\
			-DRTL8192SE_CONFIG_ASPM_OR_D3 \
			-DCUSTOMER_ID_INTEL_CMPC \
			-DMESH_8192_SPECIFIED \
			-D_RTL8192_EXT_PATCH_ \
			-D_MESH_DEBUG_ \
			-DTREE_BASED_ROUTING_ENABLE \
			-DMESH_PATHSEL_DBG_LV=0 \
			-DMESH_PATHSEL_DBG_SIMPLE=0 \
			-DMESH_PATHSEL_DBG_TEST=0\
			-DBUILT_IN_MSHCLASS \
			-DENABLE_AMSDU
ifeq ($(AUTHTYPE),SAE)
	EXTRA_CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\
			-DMESH_ATH_2
endif
#			-DMESH_AUTO_TEST
#			-D_ENABLE_SW_BEACON
#EXTRA_CFLAGS += -DEFUSE_REPG_WORKAROUND 
#EXTRA_CFLAGS += -DADHOC_11N
#NOTICE: CONFIG_MP is for MP test, you should close IPS/LPS/GPIO/ASPM 
#EXTRA_CFLAGS += -DCONFIG_MP 
endif
#it will fail to compile in suse linux enterprise 10 sp2. This flag is to solve this problem.
ifeq ($(shell uname -r | cut -d. -f1,2,3,4), 2.6.16.60-0)
	EXTRA_CFLAGS += -DOPENSUSE_SLED=1
else
	EXTRA_CFLAGS += -DOPENSUSE_SLED=0
endif
EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless
EXTRA_CFLAGS += -std=gnu89
EXTRA_CFLAGS += -O2
EXTRA_CFLAGS += -mhard-float -DCONFIG_FORCE_HARD_FLOAT=y
EXTRA_CFLAGS += -DTHOMAS_TURBO
EXTRA_CFLAGS += -DENABLE_DOT11D 
#EXTRA_CFLAGS += -DCONFIG_RTLWIFI_DEBUGFS
#flag for single module compile
EXTRA_CFLAGS += -DBUILT_IN_IEEE80211
#EXTRA_CFLAGS += -DENABLE_TKIP11N
#EXTRA_CFLAGS += -DFOR_ANDROID_X86
#EXTRA_CFLAGS += -DCONFIG_LOCK_READ_AND_WRITE

ifeq ($(NIC_SELECT),RTL8190P)
r8190_pci-objs := rtl_core.o 		\
		  rtl_eeprom.o 		\
		  rtl_ps.o 		\
		  rtl_wx.o 		\
		  rtl_cam.o		\
		  r8190_rtl8256.o 	\
		  r819xE_phy.o 		\
		  r819xE_firmware.o 	\
		  r819xE_cmdpkt.o 	\
		  r8192E_dm.o 		\
		  rtl_pm.o 		\
		  rtl_debug.o 		\
		  r8190P_hwimg.o	\
		  rtl_ethtool.o		\
		  ../../ieee80211/ieee80211_rx.o                \
		  ../../ieee80211/ieee80211_softmac.o           \
		  ../../ieee80211/ieee80211_tx.o                \
		  ../../ieee80211/ieee80211_wx.o                \
		  ../../ieee80211/ieee80211_module.o            \
		  ../../ieee80211/ieee80211_softmac_wx.o        \
		  ../../ieee80211/rtl819x_HTProc.o              \
		  ../../ieee80211/rtl819x_TSProc.o              \
		  ../../ieee80211/rtl819x_BAProc.o              \
		  ../../ieee80211/dot11d.o                      \
		  ../../ieee80211/ieee80211_crypt.o             \
		  ../../ieee80211/ieee80211_crypt_tkip.o        \
		  ../../ieee80211/ieee80211_crypt_ccmp.o        \
		  ../../ieee80211/ieee80211_crypt_wep.o

obj-m := r8190_pci.o
endif
ifeq ($(NIC_SELECT),RTL8192E)
r8192e_pci-objs := rtl_core.o 		\
		  rtl_eeprom.o 	\
		  rtl_ps.o 		\
		  rtl_wx.o   	\
		  rtl_cam.o		\
		  r8190_rtl8256.o 	\
		  r819xE_phy.o 		\
		  r819xE_firmware.o 	\
		  r819xE_cmdpkt.o 	\
		  r8192E_dm.o 		\
		  r8192E_hwimg.o 	\
		  rtl_debug.o		\
		  rtl_ethtool.o		\
		  ../../ieee80211/ieee80211_rx.o                \
		  ../../ieee80211/ieee80211_softmac.o           \
		  ../../ieee80211/ieee80211_tx.o                \
		  ../../ieee80211/ieee80211_wx.o                \
		  ../../ieee80211/ieee80211_module.o            \
		  ../../ieee80211/ieee80211_softmac_wx.o        \
		  ../../ieee80211/rtl819x_HTProc.o              \
		  ../../ieee80211/rtl819x_TSProc.o              \
		  ../../ieee80211/rtl819x_BAProc.o              \
		  ../../ieee80211/dot11d.o                      \
		  ../../ieee80211/ieee80211_crypt.o             \
		  ../../ieee80211/ieee80211_crypt_tkip.o        \
		  ../../ieee80211/ieee80211_crypt_ccmp.o        \
		  ../../ieee80211/ieee80211_crypt_wep.o
obj-m := r8192e_pci.o
endif
ifeq ($(NIC_SELECT),RTL8192SE)
r8192se_pci-objs := rtl_core.o 		\
		  rtl8192se.o \
		  rtl_eeprom.o 	\
		  rtl_wx.o 		\
		  rtl_cam.o		\
		  rtl_pm.o 		\
		  rtl_ps.o 		\
		  rtl_debug.o		\
		  rtl_ethtool.o         \
		  r8190_rtl8256.o 	\
		  r8192S_Efuse.o 	\
		  r8192S_phy.o 		\
		  r8192S_firmware.o 	\
		  r8192E_dm.o 		\
		  r8192S_rtl6052.o 	\
		  r8192S_hwimg.o 	\
		  r8192S_led.o 		\
		  r8192S_mp.o		\
		  ../../ieee80211/ieee80211_rx.o                \
		  ../../ieee80211/ieee80211_softmac.o           \
		  ../../ieee80211/ieee80211_tx.o                \
		  ../../ieee80211/ieee80211_wx.o                \
		  ../../ieee80211/ieee80211_module.o            \
		  ../../ieee80211/ieee80211_softmac_wx.o        \
		  ../../ieee80211/rtl819x_HTProc.o              \
		  ../../ieee80211/rtl819x_TSProc.o              \
		  ../../ieee80211/rtl819x_BAProc.o              \
		  ../../ieee80211/dot11d.o                      \
		  ../../ieee80211/ieee80211_crypt.o             \
		  ../../ieee80211/ieee80211_crypt_tkip.o        \
		  ../../ieee80211/ieee80211_crypt_ccmp.o        \
		  ../../ieee80211/ieee80211_crypt_wep.o
obj-m := r8192se_pci.o
endif

ifeq ($(NIC_SELECT),RTL8191SE_MESH)
r8192se_pci_mesh-objs := rtl_core.o 		\
		  rtl8192se.o \
		  rtl_eeprom.o 	\
		  rtl_ps.o 		\
		  r8192S_Efuse.o 	\
		  rtl_wx.o 		\
		  rtl_cam.o		\
		  r8190_rtl8256.o 	\
		  r8192S_phy.o 		\
		  r8192S_firmware.o 	\
		  r8192E_dm.o 		\
		  r8192S_rtl6052.o 	\
		  r8192S_hwimg.o 	\
		  r8192S_led.o 		\
		  rtl_pm.o 		\
		  rtl_debug.o		\
		  r8192S_mp.o		\
		  rtl_ethtool.o         \
		  rtl_mesh.o		\
		  ../../ieee80211/ieee80211_rx.o                \
		  ../../ieee80211/ieee80211_softmac.o           \
		  ../../ieee80211/ieee80211_tx.o                \
		  ../../ieee80211/ieee80211_wx.o                \
		  ../../ieee80211/ieee80211_module.o            \
		  ../../ieee80211/ieee80211_softmac_wx.o        \
		  ../../ieee80211/rtl819x_HTProc.o              \
		  ../../ieee80211/rtl819x_TSProc.o              \
		  ../../ieee80211/rtl819x_BAProc.o              \
		  ../../ieee80211/dot11d.o                      \
		  ../../ieee80211/ieee80211_crypt.o             \
		  ../../ieee80211/ieee80211_crypt_tkip.o        \
		  ../../ieee80211/ieee80211_crypt_ccmp.o        \
		  ../../ieee80211/ieee80211_crypt_wep.o		\
		  ../../mshclass/msh_class.o 			\
		  ../../mshclass/mesh_8192_util.o  		\
		  ../../mshclass/rtl8192_mesh.o 		\
		  ../../mshclass/rtl8192s_sme.o 		\
	  	  ../../mshclass/rtl8192_proc.o 		\
		  ../../mshclass/8192s_pathsel.o 		\
		  ../../mshclass/hash_table.o 			\
		  ../../mshclass/rtl8192_sha1.o                         \
		  ../../mshclass/rtl8192_sha256.o                       \
		  ../../mshclass/rtl8192_aes.o                          \
		  ../../mshclass/mesh_abbr_handshk.o            \
		  ../../mshclass/rtl8192_bn_ctx.o                       \
		  ../../mshclass/rtl8192_bn_asm.o                       \
		  ../../mshclass/rtl8192_bn_gcd.o                       \
		  ../../mshclass/rtl8192_bn_mont.o                      \
		  ../../mshclass/rtl8192_bn_recp.o                      \
		  ../../mshclass/rtl8192_bn_lib.o                       \
		  ../../mshclass/mesh_ath.o			\
		  ../../mshclass/pathselection.o 		\
		  ../../mshclass/tree_proactive.o
obj-m := r8192se_pci_mesh.o
endif


KSRC := /lib/modules/$(KVER)/build
INSTALL_PREFIX :=
IMG_DIR := /lib/firmware/
all: modules

modules:
	$(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules
install: modules
ifeq ($(NIC_SELECT),RTL8190P)
	install -p -m 644 r8190_pci.ko $(MODDESTDIR)
endif
ifeq ($(NIC_SELECT),RTL8192E)
	install -p -m 644 r8192e_pci.ko $(MODDESTDIR)
endif
ifeq ($(NIC_SELECT),RTL8192SE)
	install -p -m 644 r8192se_pci.ko $(MODDESTDIR)
endif
ifeq ($(NIC_SELECT),RTL8191SE_MESH)
ifeq ($(AUTHTYPE),SAE)
	sed -i '/MeshSecurity=/c\MeshSecurity=3' ../../script/mesh-tools/meshonly.sh
else
	sed -i '/MeshSecurity=/c\MeshSecurity=1' ../../script/mesh-tools/meshonly.sh
endif
	cp ../../script/mesh-tools /usr/share/enhanced-easy-network/ -rf
	cp ../../script/mesh.conf /etc/
	cp ../../script/wpa_mesh_tkip.conf /etc/
	cp ../../script/wpa_mesh_ccmp.conf /etc/
	chmod 777 ../../script/do_install
	../../script/do_install
	install -p -m 644 r8192se_pci_mesh.ko $(MODDESTDIR)
endif

	depmod -a
	@#copy firmware img to target fold
	$(shell [ -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/`uname -r`/.)
	$(shell [ ! -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/.)
uninstall:
ifeq ($(NIC_SELECT),RTL8190P)
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.ko)
endif
ifeq ($(NIC_SELECT),RTL8192E)
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.ko)
endif
ifeq ($(NIC_SELECT),RTL8192SE)
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.ko)
endif
ifeq ($(NIC_SELECT),RTL8191SE_MESH)
	rm -f /etc/wpa_mesh_tkip.conf
	rm -f /etc/wpa_mesh_ccmp.conf
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.ko)
endif
	depmod -a
	@#delete the firmware img
	@rm -fr /lib/firmware/$(NIC_SELECT)
	@rm -fr /lib/firmware/`uname -r`/$(NIC_SELECT)
else
###################### KERNEL 2.4 ################################
LD := ld
KSRC := /lib/modules/$(KVER)/build
CONFIG_FILE := $(KSRC)/include/linux/autoconf.h
CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall
CFLAGS += -I$(KSRC)/include -I.
CFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h
#CFLAGS += -D__NO_VERSION__ -DEXPORT_SYMTAB  

ifeq ($(NIC_SELECT),RTL8190P)
CFLAGS += -DRTL8190P
CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
endif

ifeq ($(NIC_SELECT),RTL8192E)
CFLAGS += -DRTL8192E
CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
CFLAGS+=-DENABLE_GPIO_RADIO_CTL
#CFLAGS += -DENABLE_IPS
#CFLAGS += -DENABLE_IPS
#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
endif

ifeq ($(NIC_SELECT),RTL8192SE)
CFLAGS += -DRTL8192SE
CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 
CFLAGS += -DRTL92SE_FPGA_VERIFY=0 
CFLAGS += -DDEMO_BOARD_SUPPORT=1 
CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 
CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 
CFLAGS += -DHAL_MAC_ENABLE=1 
CFLAGS += -DHAL_BB_ENABLE=1 
CFLAGS += -DHAL_RF_ENABLE=1 
CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 
CFLAGS += -DDISABLE_BB_RF=0 
CFLAGS += -DRTL8190_Download_Firmware_From_Header=1 
#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
#CFLAGS += -DCONFIG_PM_RTL 
#CFLAGS += -DENABLE_GPIO_RADIO_CTL  
#EXTRA_CFLAGS += -DCONFIG_PM
#EXTRA_CFLAGS += -DENABLE_IPS
#EXTRA_CFLAGS += -DENABLE_LPS
#EXTRA_CFLAGS += -DRTL8192SE_CONFIG_ASPM_OR_D3
#CFLAGS += -DENABLE_AMSDU
#CFLAGS += -DADHOC_11N
endif

ifeq ($(NIC_SELECT),RTL8191SE_MESH)
	CFLAGS += -DRTL8192SE
CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 
CFLAGS += -DRTL92SE_FPGA_VERIFY=0 
CFLAGS += -DDEMO_BOARD_SUPPORT=1 
CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0 
CFLAGS += -DRTL8192S_DISABLE_FW_DM=0 
CFLAGS += -DHAL_MAC_ENABLE=1 
CFLAGS += -DHAL_BB_ENABLE=1 
CFLAGS += -DHAL_RF_ENABLE=1 
CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 
CFLAGS += -DDISABLE_BB_RF=0 
CFLAGS += -DCONFIG_PM_RTL 
CFLAGS += -DENABLE_GPIO_RADIO_CTL  
CFLAGS += -DRTL8190_Download_Firmware_From_Header=1 
CFLAGS += -DENABLE_IPS
CFLAGS += -DENABLE_LPS
CFLAGS += -DRTL8192SE_CONFIG_ASPM_OR_D3
CFLAGS += -D_RTL8192_EXT_PATCH_
			-DMESH_8192_SPECIFIED \
			-D_MESH_DEBUG_ \
			-DTREE_BASED_ROUTING_ENABLE \
			-DMESH_PATHSEL_DBG_LV=0 \
			-DMESH_PATHSEL_DBG_SIMPLE=0 \
			-DMESH_PATHSEL_DBG_TEST=0\
			-DBUILT_IN_MSHCLASS \
	  		-DCUSTOMER_ID_INTEL_CMPC \
			-DENABLE_AMSDU
ifeq ($(AUTHTYPE),SAE)
CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\
	  -DMESH_ATH_2
endif
endif
CFLAGS += -DTHOMAS_TURBO
CFLAGS += -DENABLE_DOT11D

#flag for single module compile
CFLAGS += -DBUILT_IN_IEEE80211
CFLAGS += -DBUILT_IN_CRYPTO
#CFLAGS += -DENABLE_TKIP11N

SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
   grep CONFIG_SMP | awk '{print $$3}')
ifneq ($(SMP),1)
   SMP := 0
endif
ifeq ($(SMP),1)
   CFLAGS    += -D__SMP__
endif
OBJS := ${patsubst %.c, %.o, ${wildcard *.c}}

ifeq ($(NIC_SELECT),RTL8190P)
all:r8190_pci.o
r8190_pci.o: \
	rtl_core.o      \
	rtl_eeprom.o     \
	rtl_ps.o        \
	r8190_rtl8256.o \
	r8192E_dm.o \
	r8190P_hwimg.o \
	rtl_wx.o \
	rtl_cam.o	 \
	rtl_pm.o \
	r819xE_cmdpkt.o\
	r819xE_firmware.o \
	r819xE_phy.o \
	rtl_debug.o \
	rtl_ethtool.o         \
	../../ieee80211/ieee80211_rx.o                \
	../../ieee80211/ieee80211_softmac.o           \
	../../ieee80211/ieee80211_tx.o                \
	../../ieee80211/ieee80211_wx.o                \
	../../ieee80211/ieee80211_module.o            \
	../../ieee80211/ieee80211_softmac_wx.o        \
	../../ieee80211/rtl819x_HTProc.o              \
	../../ieee80211/rtl819x_TSProc.o              \
	../../ieee80211/rtl819x_BAProc.o              \
	../../ieee80211/dot11d.o                      \
	../../ieee80211/ieee80211_crypt.o             \
	../../ieee80211/ieee80211_crypt_tkip.o        \
	../../ieee80211/ieee80211_crypt_ccmp.o        \
	../../ieee80211/ieee80211_crypt_wep.o	\
	../../ieee80211/api.o			\
	../../ieee80211/compress.o		\
	../../ieee80211/digest.o		\
	../../ieee80211/cipher.o		\
	../../ieee80211/scatterwalk.o		\
	../../ieee80211/arc4.o			\
	../../ieee80211/michael_mic.o		\
	../../ieee80211/aes.o			\
	../../ieee80211/proc.o

	$(LD) -r $^ -o $@
install:r8190_pci.o
	install -p -m 644 r8190_pci.o  $(MODDESTDIR)
	@depmod -a
uninstall:
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.o)
	@depmod -a
endif

ifeq ($(NIC_SELECT),RTL8192E)
all:r8192e_pci.o
r8192e_pci.o: \
	rtl_core.o \
	rtl_eeprom.o \
		  rtl_ps.o 		\
	r8190_rtl8256.o \
	r8192E_dm.o \
	r8192E_hwimg.o \
	rtl_wx.o \
	 rtl_cam.o	\
	rtl_pm.o \
	r819xE_cmdpkt.o\
	r819xE_firmware.o \
	r819xE_phy.o \
	rtl_debug.o \
	rtl_ethtool.o         \
	../../ieee80211/ieee80211_rx.o                \
	../../ieee80211/ieee80211_softmac.o           \
	../../ieee80211/ieee80211_tx.o                \
	../../ieee80211/ieee80211_wx.o                \
	../../ieee80211/ieee80211_module.o            \
	../../ieee80211/ieee80211_softmac_wx.o        \
	../../ieee80211/rtl819x_HTProc.o              \
	../../ieee80211/rtl819x_TSProc.o              \
	../../ieee80211/rtl819x_BAProc.o              \
	../../ieee80211/dot11d.o                      \
	../../ieee80211/ieee80211_crypt.o             \
	../../ieee80211/ieee80211_crypt_tkip.o        \
	../../ieee80211/ieee80211_crypt_ccmp.o        \
	../../ieee80211/ieee80211_crypt_wep.o	\
	../../ieee80211/api.o			\
	../../ieee80211/compress.o		\
	../../ieee80211/digest.o		\
	../../ieee80211/cipher.o		\
	../../ieee80211/scatterwalk.o		\
	../../ieee80211/arc4.o			\
	../../ieee80211/michael_mic.o		\
	../../ieee80211/aes.o			\
	../../ieee80211/proc.o

	$(LD) -r $^ -o $@
install:
	install -p -m 644 r8192e_pci.o  $(MODDESTDIR)
	@depmod -a
uninstall:
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.o)
	@depmod -a
endif

ifeq ($(NIC_SELECT),RTL8192SE)
all:r8192se_pci.o
r8192se_pci.o: \
	rtl_core.o \
	rtl8192se.o \
	rtl_eeprom.o \
 	rtl_ps.o        \
	r8190_rtl8256.o \
	r8192E_dm.o \
	rtl_wx.o \
	rtl_cam.o		\
	rtl_pm.o \
	r8192S_Efuse.o \
	r8192S_firmware.o \
	r8192S_hwimg.o \
	r8192S_led.o \
	r8192S_phy.o \
	r8192S_rtl6052.o \
	r819xE_cmdpkt.o \
	rtl_debug.o \
	rtl_ethtool.o \
	../../ieee80211/ieee80211_rx.o                \
	../../ieee80211/ieee80211_softmac.o           \
	../../ieee80211/ieee80211_tx.o                \
	../../ieee80211/ieee80211_wx.o                \
	../../ieee80211/ieee80211_module.o            \
	../../ieee80211/ieee80211_softmac_wx.o        \
	../../ieee80211/rtl819x_HTProc.o              \
	../../ieee80211/rtl819x_TSProc.o              \
	../../ieee80211/rtl819x_BAProc.o              \
	../../ieee80211/dot11d.o                      \
	../../ieee80211/ieee80211_crypt.o             \
	../../ieee80211/ieee80211_crypt_tkip.o        \
	../../ieee80211/ieee80211_crypt_ccmp.o        \
	../../ieee80211/ieee80211_crypt_wep.o	\
	../../ieee80211/api.o			\
	../../ieee80211/compress.o		\
	../../ieee80211/digest.o		\
	../../ieee80211/cipher.o		\
	../../ieee80211/scatterwalk.o		\
	../../ieee80211/arc4.o			\
	../../ieee80211/michael_mic.o		\
	../../ieee80211/aes.o			\
	../../ieee80211/proc.o

	$(LD) -r $^ -o $@
install:r8192se_pci.o
	install -p -m 644 r8192se_pci.o  $(MODDESTDIR)
	@depmod -a
uninstall:
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.o)
	@depmod -a
endif

ifeq ($(NIC_SELECT),RTL8191SE_MESH )
all:r8192se_pci_mesh.o
r8192se_pci_mesh.o: \
	rtl_core.o \
	rtl8192se.o \
	rtl_eeprom.o \
	rtl_ps.o 		\
	r8190_rtl8256.o \
	r8192E_dm.o \
	rtl_wx.o \
	rtl_cam.o		\
	rtl_pm.o \
	r8192S_Efuse.o \
	r8192S_firmware.o \
	r8192S_hwimg.o \
	r8192S_led.o \
	r8192S_phy.o \
	r8192S_rtl6052.o \
	r819xE_cmdpkt.o \
	rtl_debug.o \
	rtl_ethtool.o \
	rtl_mesh.o	\
	../../ieee80211/ieee80211_rx.o                \
	../../ieee80211/ieee80211_softmac.o           \
	../../ieee80211/ieee80211_tx.o                \
	../../ieee80211/ieee80211_wx.o                \
	../../ieee80211/ieee80211_module.o            \
	../../ieee80211/ieee80211_softmac_wx.o        \
	../../ieee80211/rtl819x_HTProc.o              \
	../../ieee80211/rtl819x_TSProc.o              \
	../../ieee80211/rtl819x_BAProc.o              \
	../../ieee80211/dot11d.o                      \
	../../ieee80211/ieee80211_crypt.o             \
	../../ieee80211/ieee80211_crypt_tkip.o        \
	../../ieee80211/ieee80211_crypt_ccmp.o        \
	../../ieee80211/ieee80211_crypt_wep.o		\
	../../mshclass/msh_class.o 			\
	../../mshclass/mesh_8192_util.o  		\
	../../mshclass/rtl8192_mesh.o 			\
	../../mshclass/rtl8192s_sme.o 			\		
	../../mshclass/rtl8192_proc.o 			\
	../../mshclass/8192s_pathsel.o 			\
	../../mshclass/hash_table.o 			\
	../../mshclass/pathselection.o 			\
	../../mshclass/tree_proactive.o
        ../../mshclass/hash_table.o                   \
        ../../mshclass/sha1.o                         \
        ../../mshclass/sha256.o                       \
        ../../mshclass/aes.o                          \
        ../../mshclass/mesh_abbr_handshk.o            \
        ../../mshclass/bn_ctx.o                       \
        ../../mshclass/bn_asm.o                       \
        ../../mshclass/bn_gcd.o                       \
        ../../mshclass/bn_mont.o                      \
        ../../mshclass/bn_recp.o                      \
        ../../mshclass/bn_lib.o                       \
        ../../mshclass/mesh_ath.o
	$(LD) -r $^ -o $@
install:r8192se_pci_mesh.o
	install -p -m 644 r8192se_pci_mesh.o  $(MODDESTDIR)
	@depmod -a
uninstall:
	$(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.o)
	@depmod -a
endif
endif

.PHONY:clean
clean:
	rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
	rm -fr .tmp_versions
	rm -fr Modules.symvers
	rm -fr Module.symvers
	rm -fr Module.markers
	rm -fr modules.order
	rm -fr tags

