include .lastbuild
include $(TOPDIR)/.config

MODULE := usbvnet.o
CDEBUG := -DUSBDBG
DEFS := -fno-strict-aliasing -fomit-frame-pointer -pipe        
USB_DES := $(MODULES_DES)/kernel/drivers/net
CC=gcc
CFLAGS_$(CONFIG_MODVERSIONS):= -DMODULE -DMODVERSIONS -include $(KERNEL_SRC)/include/linux/modversions.h
CFLAGS :=-D__KERNEL__ -O3 $(DEFS) -I$(KERNEL_SRC)/include -I$(INC) -I$(INC)/usb -Wall $(CFLAGS_y)

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

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_503A_I) += i$(DEBUG)
USB-$(CONFIG_USB_503A_I3863) += i3$(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"

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

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


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

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

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

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

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

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

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
	$(CC) $(CFLAGS) -DMODULE -c vnetusba.c

