blob: 2d2ccaded6ac34ccbcd2464089d3f41b22a4f066 [file] [log] [blame]
#
#
# Build options:
# PRIV_OBJ := 1 for object version
# BIG_ENDIAN := 1 for big-endian mode
#
# arm-linux-tools chain are located at:
# /usr/local/bin/arm-linux-gcc
# /usr/local/bin/arm-linux-ld
#
IO_MAP := 0
HOSTAP := 1
PRIV_OBJ := 1
BIG_ENDIAN := 1
test_dir = $(shell [ -e $(dir)/include/linux ] && echo $(dir))
KSP := $(foreach dir, $(KSP), $(test_dir))
KSRC := $(firstword $(KSP))
#ifeq (,$(KSRC))
# $(error Linux kernel source not found)
#endif
# check kernel version
KVER := $(shell uname -r | cut -c1-3 | sed 's/2\.[56]/2\.6/')
KERVER2=$(shell uname -r | cut -d. -f2)
ifeq ($(KVER), 2.6)
# 2.6 kernel
TARGET = viawget.ko
else
TARGET = viawget.o
endif
INSTDIR := $(shell find /lib/modules/$(shell uname -r) -name $(TARGET) -printf "%h\n" | sort | head -1)
ifeq (,$(INSTDIR))
ifeq (,$(KERVER2))
ifneq (,$(wildcard /lib/modules/$(shell uname -r)/kernel))
INSTDIR := /lib/modules/$(shell uname -r)/kernel/drivers/net
else
INSTDIR := /lib/modules/$(shell uname -r)/net
endif
else
ifneq ($(KERVER2),2)
INSTDIR := /lib/modules/$(shell uname -r)/kernel/drivers/net
else
INSTDIR := /lib/modules/$(shell uname -r)/net
endif
endif
endif
SRC = device_main.c card.c mac.c baseband.c wctl.c 80211mgr.c \
wcmd.c wmgr.c bssdb.c rxtx.c dpc.c power.c datarate.c srom.c \
mib.c rc4.c tether.c tcrc.c ioctl.c hostap.c wpa.c key.c tkip.c \
michael.c wroute.c rf.c iwctl.c wpactl.c wpa2.c aes_ccmp.c
ifeq ($(IO_MAP), 1)
CFLAGS += -DIO_MAP
endif
ifeq ($(HOSTAP), 1)
CFLAGS += -DHOSTAP
endif
ifeq ($(PRIV_OBJ), 1)
CFLAGS += -DPRIVATE_OBJ
endif
ifeq ($(BIG_ENDIAN), 1)
CFLAGS += -D__BIG_ENDIAN
CFLAGS += -mbig-endian
LDOPTS += -EB
else
CFLAGS += -mlittle-endian
LDOPTS += -EL
endif
CFLAGS += -I$(PWD) -I$(PWD)/../include -I$(PWD)/../solomon
# build rule
ifeq ($(KVER), 2.6)
# 2.6 kernel
ifndef KERNEL_CONF
KERNEL_CONF= $(KSRC)/.config
endif
include ${KERNEL_CONF}
obj-m += viawget.o
viawget-objs := device_main.o card.o mac.o baseband.o wctl.o 80211mgr.o \
wcmd.o wmgr.o bssdb.o rxtx.o dpc.o power.o datarate.o srom.o \
mib.o rc4.o tether.o tcrc.o ioctl.o hostap.o wpa.o key.o tkip.o \
michael.o wroute.o rf.o iwctl.o wpactl.o wpa2.o aes_ccmp.o
.c.o:
$(CC) $(CFLAGS) -o $@ $<
default:
make -C $(KSRC) SUBDIRS=$(shell pwd) modules
else
# 2.2/2.4 kernel
OBJS := device_main.o card.o mac.o baseband.o wctl.o 80211mgr.o \
wcmd.o wmgr.o bssdb.o rxtx.o dpc.o power.o datarate.o srom.o \
mib.o rc4.o tether.o tcrc.o ioctl.o hostap.o wpa.o key.o tkip.o \
michael.o wroute.o rf.o iwctl.o wpactl.o wpa2.o
CC := /usr/local/bin/arm-linux-gcc
LD := /usr/local/bin/arm-linux-ld
CFLAGS += -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe
#CFLAGS += -Wstrict-prototypes -fomit-frame-pointer
COPTS+= -march=armv4 -fno-strict-aliasing -fno-common
#COPTS+= -mapcs-32 -mtune=xscale -mshort-load-bytes -msoft-float -mfp=2
#COPTS+= -mthumb -mcpu=arm9 -ffunction-sections -fdata-sections
.SILENT: $(TARGET) clean
ifeq ($(PRIV_OBJ), 1)
ifeq ($(BIG_ENDIAN), 1)
TARGET = arm_be_g.o
else
TARGET = arm_le_g.o
endif
endif
$(TARGET): $(filter-out $(TARGET), $(SRC:.c=.o))
$(LD) $(LDOPTS) -r $^ -o $@
echo
echo "***********************************"
echo "Build options:"
echo " VERSION $(KVER)"
echo -n " SMP "
if [ "$(SMP)" = "1" ]; \
then echo "Enabled"; else echo "Disabled"; fi
endif # ifeq ($(KVER),2.6)
ifeq ($(KVER), 2.6)
install: default
else
install: clean $(TARGET)
endif
mkdir -p $(MOD_ROOT)$(INSTDIR)
install -m 644 -o root $(TARGET) $(MOD_ROOT)$(INSTDIR)
ifeq (,$(MOD_ROOT))
/sbin/depmod -a || true
else
/sbin/depmod -b $(MOD_ROOT) -a || true
endif
uninstall:
rm -f $(INSTDIR)/$(TARGET)
/sbin/depmod -a
clean:
rm -f $(TARGET) $(SRC:.c=.o) *~
rm -f .*.o.d .*.o.cmd .*.ko.cmd *.mod.c *.mod.o
-include .depend.mak