################################################################################
# Common Make rules                                                            #
# Copyright Atheros Communications LLC                                         #
################################################################################

# Directory Definitions
#ROOT_DIR		= $(PWD)
include Makefile.inc

KERNEL24=$(shell ls $(KERNELDIR)/Rules.make)

# Get the kernel type
SMP=$(shell uname -r | grep "smp")
EL=$(shell uname -r | grep "EL")
RH9="TRUE"

ifneq ($(EL),)
RH9="FALSE"
ifeq ($(KERNEL24),)
all: all2.6
MOD_EXT=ko
HAL_LIB	=	hal_ar5523_26EL.lib.uu
CCX_LIB	=	ccx_ar5523_26EL.lib.uu
else
all: athusbfw athusbwlan
MOD_EXT=o
HAL_LIB	=	hal_ar5523_24EL.lib.uu
CCX_LIB	=	ccx_ar5523_24EL.lib.uu
endif
endif

ifneq ($(SMP),)
RH9="FALSE"
ifeq ($(KERNEL24),)
all: all2.6
MOD_EXT=ko
HAL_LIB	=	hal_ar5523_26SMP.lib.uu
CCX_LIB	=	ccx_ar5523_26SMP.lib.uu
else
all: athusbfw athusbwlan
MOD_EXT=o
HAL_LIB	=	hal_ar5523_24SMP.lib.uu
CCX_LIB	=	ccx_ar5523_24SMP.lib.uu
endif
endif

ifeq ($(RH9),"TRUE")
ifeq ($(KERNEL24),)
all: all2.6
MOD_EXT=ko
HAL_LIB	=	hal_ar5523_26RH9.lib.uu
CCX_LIB	=	ccx_ar5523_26RH9.lib.uu
else
all: athusbfw athusbwlan
MOD_EXT=o
HAL_LIB	=	hal_ar5523_24RH9.lib.uu
CCX_LIB	=	ccx_ar5523_24RH9.lib.uu
endif
endif



# Make procedure for Firmware Download Driver
athusbfw: Makefile Makefile.inc
	@make -s -C $(USB_DRV_DIR) ROOT_DIR="$(ROOT_DIR)" ZERO=
	@make -s -C $(USB_FW_DIR) -f Makefile.24 ROOT_DIR="$(ROOT_DIR)"
	@echo
	@echo "******** USB Firmware Download Module Complete *********"
	@echo
	rm -f $(USB_DRV_DIR)/*.o

# Make procedure for WLAN Station Driver
athusbwlan: Makefile Makefile.inc
	$(UUDECODE) $(HAL_LIB)
	$(UUDECODE) $(CCX_LIB)
	mv hal.lib $(WLAN_STA_DIR)
	mv ccx.lib $(WLAN_COMMON_DIR)
	@make -s -C $(USB_DRV_DIR) ROOT_DIR="$(ROOT_DIR)" ZERO=-DDO_ZERO_TERM
	@make -s -C $(WLAN_WDC_DIR) ROOT_DIR="$(ROOT_DIR)" ZERO=-DDO_ZERO_TERM
	@make -s -C $(WLAN_CRYPTO_DIR) ROOT_DIR="$(ROOT_DIR)"
	@make -s -C $(WLAN_COMMON_DIR) ROOT_DIR="$(ROOT_DIR)"
	@make -s -C $(WLAN_STA_DIR) -f Makefile ROOT_DIR="$(ROOT_DIR)"
	@make -s -C $(WLAN_LINUX_DIR) -f Makefile.24 ROOT_DIR="$(ROOT_DIR)"
	@echo
	@echo "********** USB Wlan Station Module Complete ************"
	@echo

# USB Transport is needed for both Firmware and Station Drivers
common: Makefile Makefile.inc
	@make -s -C $(USB_DRV_DIR) ROOT_DIR="$(ROOT_DIR)"

install: uninstall all
	install -m 644 -D athusbfw.$(MOD_EXT) $(MODULES_DIR)/athusbfw.$(MOD_EXT)
	install -m 644 -D athusbwlan.$(MOD_EXT) $(MODULES_DIR)/athusbwlan.$(MOD_EXT)
	depmod -ae

uninstall:
	rm -f $(MODULES_DIR)/athusbfw.$(MOD_EXT)
	rm -f $(MODULES_DIR)/athusbwlan.$(MOD_EXT)
	depmod -ae

clean:
	find . -name '*.[od]' -or -name '*.out' -or -name 'ar5523.h' | xargs rm -f
	find . -name '*.ko' -or -name '*.ver' -or -name '*.mod' | xargs rm -f
	find . -name '*.mod.[co]' -or -name '.*.o.cmd' | xargs rm -f
	find . -name '.*.o.d' -or -name '.*.ko.cmd' -or -name warn.log | xargs rm -f
	find . -name .tmp_versions -or -name .bin2h.cmd | xargs rm -rf

all2.6:
	cp -f $(HAL_LIB) $(WLAN_STA_DIR)
	cp -f $(CCX_LIB) $(WLAN_COMMON_DIR)
	make -C $(KERNELDIR) "DEFS=$(DEFS)" SUBDIRS=$(USB_FW_DIR) modules 2> warn.log
	@cp -f $(USB_FW_DIR)/athusbfw.ko .
	rm -f $(USB_DRV_DIR)/*.o
	make -C $(KERNELDIR) "DEFS=$(DEFS) -DDO_ZERO_TERM" SUBDIRS=$(WLAN_LINUX_DIR) modules 2>> warn.log
	@cp -f $(WLAN_LINUX_DIR)/athusbwlan.ko .


