205 lines
5.1 KiB
Makefile
205 lines
5.1 KiB
Makefile
|
#
|
||
|
# Build options:
|
||
|
#
|
||
|
#
|
||
|
|
||
|
HOSTAP := 1
|
||
|
|
||
|
|
||
|
KSP := /lib/modules/$(shell uname -r)/build \
|
||
|
/usr/src/linux-$(shell uname -r) \
|
||
|
/usr/src/linux-$(shell uname -r | sed 's/-.*//') \
|
||
|
/usr/src/kernel-headers-$(shell uname -r) \
|
||
|
/usr/src/kernel-source-$(shell uname -r) \
|
||
|
/usr/src/linux-$(shell uname -r | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
|
||
|
/usr/src/linux
|
||
|
|
||
|
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 = vntwusb.ko
|
||
|
|
||
|
else
|
||
|
TARGET = vntwusb.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 = main_usb.c card.c mac.c baseband.c wctl.c 80211mgr.c \
|
||
|
wcmd.c wmgr.c bssdb.c wpa2.c rxtx.c dpc.c power.c datarate.c \
|
||
|
mib.c rc4.c tether.c tcrc.c ioctl.c hostap.c wpa.c key.c \
|
||
|
tkip.c michael.c rf.c iwctl.c wpactl.c aes_ccmp.c \
|
||
|
usbpipe.c channel.c control.c firmware.c int.c
|
||
|
|
||
|
|
||
|
ifeq ($(HOSTAP), 1)
|
||
|
# CFLAGS += -DHOSTAP
|
||
|
EXTRA_CFLAGS += -DHOSTAP
|
||
|
endif
|
||
|
|
||
|
|
||
|
#CFLAGS += -I$(PWD) -I$(PWD)/../include -I$(PWD)/include
|
||
|
EXTRA_CFLAGS += -I$(PWD) -I$(PWD)/../include -I$(PWD)/include
|
||
|
|
||
|
# build rule
|
||
|
ifeq ($(KVER), 2.6)
|
||
|
# 2.6 kernel
|
||
|
|
||
|
ifndef KERNEL_CONF
|
||
|
KERNEL_CONF= $(KSRC)/.config
|
||
|
endif
|
||
|
|
||
|
include ${KERNEL_CONF}
|
||
|
|
||
|
obj-m += vntwusb.o
|
||
|
|
||
|
vntwusb-objs := main_usb.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 \
|
||
|
mib.o rc4.o tether.o tcrc.o ioctl.o hostap.o wpa.o key.o tkip.o \
|
||
|
michael.o rf.o iwctl.o wpactl.o wpa2.o aes_ccmp.o \
|
||
|
usbpipe.o channel.o control.o firmware.o int.o
|
||
|
|
||
|
.c.o:
|
||
|
# $(CC) $(CFLAGS) -o $@ $<
|
||
|
$(CC) $(EXTRA_CFLAGS) -o $@ $<
|
||
|
|
||
|
default:
|
||
|
make -C $(KSRC) SUBDIRS=$(shell pwd) modules
|
||
|
|
||
|
else
|
||
|
|
||
|
# 2.2/2.4 kernel
|
||
|
OBJS := main_usb.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 \
|
||
|
mib.o rc4.o tether.o tcrc.o ioctl.o hostap.o wpa.o key.o tkip.o \
|
||
|
michael.o rf.o iwctl.o wpactl.o wpa2.o aes_ccmp.o \
|
||
|
usbpipe.o channel.o control.o
|
||
|
|
||
|
VERSION_FILE := $(KSRC)/include/linux/version.h
|
||
|
CONFIG_FILE := $(KSRC)/include/linux/config.h
|
||
|
|
||
|
|
||
|
ifeq (,$(wildcard $(VERSION_FILE)))
|
||
|
$(error Linux kernel source not configured - missing version.h)
|
||
|
endif
|
||
|
|
||
|
ifeq (,$(wildcard $(CONFIG_FILE)))
|
||
|
$(error Linux kernel source not configured - missing config.h)
|
||
|
endif
|
||
|
|
||
|
ifneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version)))
|
||
|
CC := kgcc gcc cc
|
||
|
else
|
||
|
CC := gcc cc
|
||
|
endif
|
||
|
|
||
|
test_cc = $(shell which $(cc) > /dev/null 2>&1 && echo $(cc))
|
||
|
CC := $(foreach cc, $(CC), $(test_cc))
|
||
|
CC := $(firstword $(CC))
|
||
|
|
||
|
#CFLAGS += -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe
|
||
|
#CFLAGS += -I$(KSRC)/include -Wstrict-prototypes -fomit-frame-pointer -fno-strict-aliasing
|
||
|
#CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \
|
||
|
# echo "-DMODVERSIONS -include $(KSRC)/include/linux/modversions.h")
|
||
|
EXTRA_CFLAGS += -Wall -DLINUX -D__KERNEL__ -DMODULE -DEXPORT_SYMTAB -D__NO_VERSION__ -O2 -pipe
|
||
|
EXTRA_CFLAGS += -I$(KSRC)/include -Wstrict-prototypes -fomit-frame-pointer -fno-strict-aliasing
|
||
|
EXTRA_CFLAGS += $(shell [ -f $(KSRC)/include/linux/modversions.h ] && \
|
||
|
echo "-DMODVERSIONS -include $(KSRC)/include/linux/modversions.h")
|
||
|
|
||
|
.SILENT: $(TARGET) clean
|
||
|
|
||
|
|
||
|
# look for SMP in config.h
|
||
|
#SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
|
||
|
# grep CONFIG_SMP | awk '{ print $$3 }')
|
||
|
SMP := $(shell $(CC) $(EXTRA_CFLAGS) -E -dM $(CONFIG_FILE) | \
|
||
|
grep CONFIG_SMP | awk '{ print $$3 }')
|
||
|
ifneq ($(SMP),1)
|
||
|
SMP := 0
|
||
|
endif
|
||
|
|
||
|
|
||
|
ifeq ($(SMP), 1)
|
||
|
# CFLAGS += -D__SMP__
|
||
|
EXTRA_CFLAGS += -D__SMP__
|
||
|
endif
|
||
|
|
||
|
|
||
|
|
||
|
# check x86_64
|
||
|
SUBARCH := $(shell uname -m)
|
||
|
ifeq ($(SUBARCH),x86_64)
|
||
|
# CFLAGS += -mcmodel=kernel -mno-red-zone
|
||
|
EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
|
||
|
endif
|
||
|
|
||
|
|
||
|
$(TARGET): $(filter-out $(TARGET), $(SRC:.c=.o))
|
||
|
$(LD) -r $^ -o $@
|
||
|
echo; 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) *~ *.o
|
||
|
rm -f .*.o.d .*.o.cmd .*.ko.cmd *.mod.c *.mod.o
|
||
|
|
||
|
-include .depend.mak
|