#EXTRA_CFLAGS += -DCONFIG_IEEE80211_NOWEP=y
#EXTRA_CFLAGS += -DCONFIG_RTL8180_PM=y
#EXTRA_CFLAGS += -DCONIFG_RTL8180_IOMAP
EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless
PWD = $(shell pwd)
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
include $(KSRC)/.config
INSTALL_PREFIX :=
EXTRA_CFLAGS += -std=gnu89
EXTRA_CFLAGS += -O2
EXTRA_CFLAGS += -mhard-float -DCONFIG_FORCE_HARD_FLOAT=y

# if Rules.make exists in the kernel tree, we assume 2.4 style modules
# if it doesn't assume 2.6 style
OLDMAKE = $(wildcard $(KSRC)/Rules.make)

ifneq (,$(OLDMAKE))
export-objs:= ieee80211_rx.o ieee80211_tx.o ieee80211_wx.o ieee80211_module.o
export-objs+= ieee80211_crypt.o ieee80211_crypt_wep.o
export-objs+= r8180_core.o r8180_sa2400.o r8180_93cx6.o r8180_wx.o r8180_max2820.o r8180_gct.o
endif
ieee80211-r8180-objs := ieee80211_rx.o ieee80211_tx.o ieee80211_wx.o ieee80211_module.o 
ieee80211_crypt-r8180-objs := ieee80211_crypt.o 
ieee80211_crypt_wep-r8180-objs := ieee80211_crypt_wep.o
r8180-objs := r8180_core.o r8180_sa2400.o r8180_93cx6.o r8180_wx.o r8180_pm.o r8180_max2820.o r8180_gct.o

obj-m += ieee80211-r8180.o
obj-m += r8180.o
obj-m += ieee80211_crypt-r8180.o
obj-m += ieee80211_crypt_wep-r8180.o

ifeq (,$(OLDMAKE))
# Build for kernel 2.6
all: modules

modules: 2.6

else
# Build for kernel 2.4
all: 2.4

ieee80211_crypt-r8180.o: $(ieee80211_crypt-r8180-objs)
	$(LD) $(LD_RFLAGS) -r -o $@ $(ieee80211_crypt-r8180-objs)

ieee80211_crypt_wep-r8180.o: $(ieee80211_crypt_wep-r8180-objs)
	$(LD) $(LD_RFLAGS) -r -o $@ $(ieee80211_crypt_wep-r8180-objs)
	
r8180.o: $(r8180-objs)
	$(LD) $(LD_RFLAG) -r -o $@ $(r8180-objs)

ieee80211-r8180.o: $(ieee80211-r8180-objs)
	$(LD) $(LD_RFLAG) -r -o $@ $(ieee80211-r8180-objs)

-include $(OLDMAKE)
endif

2.4: 
	make -C $(KSRC) SUBDIRS=$(PWD) modules

2.6:
	$(MAKE) -C $(KSRC) SUBDIRS=$(PWD) MODVERDIR=$(PWD) modules

clean:
	rm -f *.mod.c *.mod *.o .*.cmd *.ko .*.flags
	rm -rf $(PWD)/tmp

ifeq (,$(OLDMAKE))
MODDESTDIR := $(INSTALL_PREFIX)/lib/modules/$(KVER)/kernel/drivers/net/wireless
MOD_ALGDESTDIR := $(INSTALL_PREFIX)/lib/modules/$(KVER)/kernel/drivers/net/wireless/alg
install: all
	mkdir -p $(MODDESTDIR)
	mkdir -p $(MOD_ALGDESTDIR)
	install -p -m 644 r8180.ko ieee80211-r8180.ko ieee80211_crypt-r8180.ko $(MODDESTDIR)
	install -p -m 644 ieee80211_crypt_wep-r8180.ko $(MOD_ALGDESTDIR)
else
MODDESTDIR := $(INSTALL_PREFIX)/lib/modules/$(KVER)/kernel/net/wireless
MOD_ALGDESTDIR := $(INSTALL_PREFIX)/lib/modules/$(KVER)/kernel/net/wireless/alg
install: all
	mkdir -p $(MODDESTDIR)
	mkdir -p $(MOD_ALGDESTDIR)
	install -p -m 644 r8180.o ieee80211-r8180.o ieee80211_crypt-r8180.o $(MODDESTDIR)
	install -p -m 644 ieee80211_crypt_wep-r8180.o $(MOD_ALGDESTDIR)
endif
