
#-----------------------------------------------
#Specify kernel version and include path
#-----------------------------------------------
KERNELRELEASE=2.4.18-3
INCLUDEPATH=-I /usr/src/linux-$(KERNELRELEASE)/include/


#-----------------------------------------------
#Specify compiler and compile flags.
#-----------------------------------------------
XCC = gcc
LD = ld
MODCFLAGS := -O6 -Wall -DMODULE -D__KERNEL__ -DLINUX


#-----------------------------------------------
#IO_FLAGS
#Specify pci I/O space mapping
#if High memory configuration has been turned on,
#RTL_IO_MAP is the suggestion since ioremap 
#would fail. 
#-----------------------------------------------
#IO_FLAGS = RTL_MEM_MAP
IO_FLAGS = RTL_IO_MAP

#-----------------------------------------------
#ENDIAN_FLAGS
#Specify memory access mothed. 
#RTL_LITTLE_ENDIAN is the suggestion on i386.
#-----------------------------------------------
#ENDIAN_FLAGS = RTL_BIG_ENDIAN
ENDIAN_FLAGS = RTL_LITTLE_ENDIAN


#-----------------------------------------------
#This is the driver act as wlan client. 
#-----------------------------------------------
DRV_FLAGS = RTL_ACT_AS_STA


#-----------------------------------------------
#Specify rtl8180 driver name 
#-----------------------------------------------
RTL8180_TARGET = rtl8180_24x.o


#-----------------------------------------------
#module initialization and interface.
#-----------------------------------------------
OPEN_SRCS = r8180_pci_init.c r8180_if.c

OPEN_OBJS = ${OPEN_SRCS:.c=.o}



# SUFFIXES fules
.SUFFIXES: .c .o
.c.o:
	$(XCC) $(MODCFLAGS) $(INCLUDEPATH) -D$(IO_FLAGS) -D$(ENDIAN_FLAGS) -D${DRV_FLAGS} -c -o $*.o $<


#.PHONY: all clean

all: $(RTL8180_TARGET)


$(RTL8180_TARGET): open_part
	@echo "--- Generate rtl8180 linux driver  $(RTL8180_TARGET) on $(KERNELRELEASE) ---"
	@$(LD) -r -o $@ ${^:=.o} priv_part.o
	@rm -f ${^:=.o};
	@echo ""

open_part: ${OPEN_OBJS}
	@echo "--- Generate open part open_part.o ---"
	@$(LD) -r -o $@.o ${OPEN_OBJS}
	@rm -f ${OPEN_OBJS}
	@echo ""


${OPEN_OBJS}: %.o: %.h r8180_type.h r8180_export.h

clean:
	mv priv_part.o priv_part;\
	rm -f *.o;\
	mv priv_part priv_part.o

