
#-----------------------------------------------
#Specify kernel version and include path
#-----------------------------------------------
KERNELRELEASE=$(shell uname -r)
INCLUDEPATH=-I /usr/src/linux-$(KERNELRELEASE)/include/
INSTALLPATH=/lib/modules/$(KERNELRELEASE)/kernel/drivers/net/wireless


#-----------------------------------------------
#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


#-----------------------------------------------
# Wireless LAN operation mode. 
#-----------------------------------------------
#OP_MODE_FLAGS = RTL_ACT_AS_AP
OP_MODE_FLAGS = RTL_ACT_AS_STA



#-----------------------------------------------
# Wireless LAN driver flags.
#-----------------------------------------------
DRV_FLAGS = -D$(IO_FLAGS) -D$(ENDIAN_FLAGS) -D${OP_MODE_FLAGS} -DRTL8180_DRV_ON_PC -DENABLE_DBG_PRINT


#-----------------------------------------------
# Driver Target
#-----------------------------------------------
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) ${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

install:
	cp $(RTL8180_TARGET) $(INSTALLPATH)


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

