include .lastbuild
include $(TOPDIR)/.config
ARCH=$(shell uname -m)
MODULE := usbvnet.o
CDEBUG := -DUSBDBG
DEFS := -fno-strict-aliasing -fno-common -pipe -I/opt/devel/zaurus/SDK/cacko-1.23-kernel-2.4.20/linux/include -DMODVERSIONS -include /opt/devel/zaurus/SDK/cacko-1.23-kernel-2.4.20/linux/include/linux/modversions.h -DMODULE=1
#conflicted with gcc's < 2.96:	-fno-optimize-sibling-calls 
USB_DES := $(MODULES_DES)/kernel/drivers/net
CC=arm-linux-gcc
CFLAGS_$(CONFIG_MODVERSIONS):= -DMODULE -DMODVERSIONS -include $(KERNEL_SRC)/include/linux/modversions.h
CFLAGS :=-D__KERNEL__ -Wall  -Wno-trigraphs -O2 $(DEFS) -I$(KERNEL_SRC)/include -I$(INC) -I$(INC)/usb 

$(CFLAGS_y)
# Add extra compilation flags if under version 2.5 or higher


fws:=$(wildcard external*.h) $(wildcard internal*.h)

srcs := callbacks.c command.c common.o rx.c tx.c vnet.c vnet_kernel.c linux_usb.c vnetusba.c
objs := $(srcs:.c=.o)
#objs := $(patsubst %.c,%.o,$(wildcard *.c))
objs := $(patsubst vnetusba.o, ,$(objs))

USB-y:=

USB-$(CONFIG_USB_503A_RFMD) += rfmd$(DEBUG)
USB-$(CONFIG_USB_505) += r505$(DEBUG)
USB-$(CONFIG_USB_505A) += r505A$(DEBUG)
USB-$(CONFIG_USB_505AMX) += r505AMX$(DEBUG)
USB-$(CONFIG_USB_505_2958) += r505_2958$(DEBUG)
USB-$(CONFIG_USB_CUSTOMPIDVID) += PidVidC$(DEBUG)

usage:
	@echo "Usage is :"
	@echo "rfmd for RFMD,        rfmdD for rfmd debug version"
	@echo "r505 for 505,         r505 for  505 debug version"
	@echo "r505_2958 for 2958 + 505,         r505_2958 for  2958 + 505 debug version"

all:
	for i in $(USB-y); do make $$i || exit 1; done

final:$(objs) vnetusba.o
	arm-linux-ld -r -o $(OBJDIR)/$(MODULE).o vnetusba.o $(objs)
	@nm $(OBJDIR)/$(MODULE).o |sort >../$(patsubst %.o,%.map, $(MODULE).o);


rfmd:
ifneq ($(LB),rfmd)
	@make clean
	@echo "LB := rfmd" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DRFMD -DATMEL_WLAN' MODULE:='usbvnetr'

rfmdD:
ifneq ($(LB),rfmdD)
	@make clean
	@echo "LB := rfmdD" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DRFMD -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnetr' 

r505:
ifneq ($(LB),r505)
	@make clean
	@echo "LB := r505" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505 -DATMEL_WLAN' MODULE:='usbvnet5'

r505D:
ifneq ($(LB),r505D)
	@make clean
	@echo "LB := r505D" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505 -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnet5' 

r505AMX:
ifneq ($(LB),r505AMX)
	@make clean
	@echo "LB := r505AMX" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505AMX -DATMEL_WLAN' MODULE:='usbvnet5AMX'

r505AMXD:
ifneq ($(LB),r505AMXD)
	@make clean
	@echo "LB := r505AMXD" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505AMX -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnet5AMX' 


r505A:
ifneq ($(LB),r505A)
	@make clean
	@echo "LB := r505A" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505A -DATMEL_WLAN' MODULE:='usbvnet5A'

r505AD:
ifneq ($(LB),r505AD)
	@make clean
	@echo "LB := r505AD" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505A -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnet5A' 

r505_2958:
ifneq ($(LB),r505_2958)
	@make clean
	@echo "LB := r505_2958" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505_2958 -DATMEL_WLAN' MODULE:='usbvnet5_2958'

r505_2958D:
ifneq ($(LB),r505_2958D)
	@make clean
	@echo "LB := r505_2958D" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -DR505_2958 -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnet5_2958' 

PidVidC:
ifneq ($(LB),PVC)
	@make clean
	@echo "LB := PVC" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -D$(BoardDefine) -DCUSTOM_PIDVID -DATMEL_WLAN' MODULE:='usbvnetp'

PidVidCD:
ifneq ($(LB),PVCD)
	@make clean
	@echo "LB := PVCD" >.lastbuild
endif
	make final CFLAGS:='$(CFLAGS) -D$(BoardDefine) -DCUSTOM_PIDVID -DATMEL_WLAN $(CDEBUG)' MODULE:='usbvnetp'

clean:
	@find . -name '*.o' -o -name '*.map' |xargs rm -f

.lastbuild:
	@touch .lastbuild
	@echo "LB:=aa" >.lastbuild

#dependencies
$(objs): $(INC)/usb/vnetusba.h 
rx.o : $(INC)/usb/rx.h
tx.o : $(INC)/usb/rx.h
callbacks.o : $(INC)/usb/$(fws)
vnetusba.o : vnetusba.c $(INC)/usb/vnetusba.h


#ifeq	'$(NEW_KERN)' 'y' 
#	$(CC) $(CFLAGS) $(NEWKERNFLAGS) $(KMODNAMEFLAG)$(MODULE) -DMODULE -c vnetusba.c -o vnetusba.o
#else
#	$(CC) $(CFLAGS) -DMODULE -c vnetusba.c
#	
#endif
