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

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

KERNEL24=$(shell ls $(KERNELDIR)/Rules.make)
SMP=$(shell uname -r | grep "smp")

ifneq ($(SMP),)
ifeq ($(KERNEL24),)
all: all2.6
MOD_EXT=ko
CCX_LIB=ccx_ar5523_26.SMP.lib.uu
else
all: athusbfw athusbwlan
MOD_EXT=o
CCX_LIB=ccx_ar5523_24.SMP.lib.uu
endif
else
ifeq ($(KERNEL24),)
all: all2.6
MOD_EXT=ko
CCX_LIB=ccx_ar5523_26.lib.uu
else
all: athusbfw athusbwlan
MOD_EXT=o
CCX_LIB=ccx_ar5523_24.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) $(CCX_LIB)
	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 $(CCX_LIB) $(WLAN_COMMON_DIR)/ccx_ar5523_26.lib.uu
	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 .


