######################################################################
#	Module Name: Makefile
#	Abstract: Makefile for rt73 linux driver on kernel series 2.4
######################################################################


CC := gcc

include ./config.mk

#Enable for wpa_supplicant's spcific driver "driver_ralink.c", default enabled.
HAS_RALINK_WPA_SUPPLICANT_SUPPORT=y

#Enable for wpa_supplicant's generic driver "driver_wext.c", used for NetworkManager
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

# Support Block Net-If during TxSw queue full.
HAS_BLOCK_NET_IF=y

WFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs
#2007/12/11:KH add space after "ifeq"
ifeq ($(HAS_RALINK_WPA_SUPPLICANT_SUPPORT),y)
WFLAGS += -DRALINK_WPA_SUPPLICANT_SUPPORT
endif
#2007/12/11:KH add space after "ifeq"
ifeq ($(HAS_NATIVE_WPA_SUPPLICANT_SUPPORT),y)
WFLAGS += -DNATIVE_WPA_SUPPLICANT_SUPPORT
endif

ifeq ($(HAS_BLOCK_NET_IF),y)
WFLAGS += -DBLOCK_NET_IF
endif

CFLAGS := -D__KERNEL__ -I/home/linux-2.4.30/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -DMODULE -DMODVERSIONS -msoft-float -march=4kc -Wpacked -Wcast-align -w -fno-pic -mno-abicalls -mlong-calls -G 0
#!!!-mno-pic -mno-abicalls -G 0

## Comment/uncomment the following line to enable/disable debugging
CFLAGS += -DDBG

CFLAGS += $(WFLAGS)

OBJ = rt73.o
 
RT73OBJ := rtmp_main.o mlme.o connect.o rtusb_bulk.o rtusb_io.o sync.o assoc.o auth.o auth_rsp.o rtusb_data.o rtmp_init.o  sanity.o rtmp_wep.o rtmp_info.o rtmp_tkip.o wpa.o md5.o wireless.o

#2007/12/11:KH add space after "ifeq" 
ifeq ($(HAS_NATIVE_WPA_SUPPLICANT_SUPPORT),y)
RT73OBJ += rtmp_wext.o
endif

ifeq ($(HAS_BLOCK_NET_IF),y)
RT73OBJ += netif_block.o
endif

rt73.o:	$(RT73OBJ)   	
	$(LD) -r $^ -o $@


## NDDIR/ifcfg-rausb0
ND_CONF=/etc/sysconfig/network-scripts/ifcfg-rausb0

ifdef NDDIR
	NDDIR := $(NDDIR)
else
 	NDDIR := /etc/sysconfig/network-scripts
endif

ifdef MOD_CONF
	MOD_CONF := $(MOD_CONF)	
else
	MOD_CONF := /etc/modules.conf 
endif

ifdef MODDIR
 	MOD_ROOT := $(MODDIR)
else
 	MOD_ROOT := /lib/modules/$(shell uname -r)/extra
endif


all: $(OBJ)
	@touch config.mk
		
clean:
	rm -rf *.o *~ core .*.cmd *.ko *.mod.c .tmp_versions built-in.o

install:
	@touch config.mk
	install -m 755 -o 0 -g 0 -d $(MOD_ROOT)
	install -m 644 -o 0 -g 0 $(OBJ) $(MOD_ROOT)
 	
	@echo "Network device directory $(NDDIR)"; 
	@echo "Module configuration file $(MOD_CONF)";	
	
	@if [ -d "$(NDDIR)" ] ; then \
		if [ ! -f "$(ND_CONF)" ]; then \
			echo "Create 'ifcfg-rausb0' in $(NDDIR)/"; \
			cp ifcfg-rausb0 $(NDDIR)/ ; \
		fi; \
 	fi
	
	@if ! grep -q 'rausb0' $(MOD_CONF) ; then \
		echo "append 'alias rausb0 rt73' to $(MOD_CONF)"; \
		echo "alias rausb0 rt73" >> $(MOD_CONF) ; \
 	fi
	/sbin/depmod -a
	
#	auto copy *.bin to /etc/Wireless/RT73STA
#	mkdir /etc/Wireless ;
#	mkdir /etc/Wireless/RT73STA ;
#	cp $(shell pwd)/*.bin /etc/Wireless/RT73STA ;
#	cp $(shell pwd)/*.dat /etc/Wireless/RT73STA ;

#	Copy file on Mandriva 2007.1
#	cp $(shell pwd)/*.bin /lib/firmware/ ;

config:
	@touch config.mk
	@./Configure
