📄 makefile
字号:
## Build options:# # HOSTAP := 1KSP := /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/linuxtest_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 versionKVER := $(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 kernelTARGET = vntwusb.koelseTARGET = vntwusb.oendifINSTDIR := $(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 endifendifSRC = 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.cifeq ($(HOSTAP), 1)# CFLAGS += -DHOSTAP EXTRA_CFLAGS += -DHOSTAPendif#CFLAGS += -I$(PWD) -I$(PWD)/../include -I$(PWD)/includeEXTRA_CFLAGS += -I$(PWD) -I$(PWD)/../include -I$(PWD)/include# build ruleifeq ($(KVER), 2.6)# 2.6 kernelifndef KERNEL_CONFKERNEL_CONF= $(KSRC)/.configendifinclude ${KERNEL_CONF}obj-m += vntwusb.ovntwusb-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) moduleselse# 2.2/2.4 kernelOBJS := 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.oVERSION_FILE := $(KSRC)/include/linux/version.hCONFIG_FILE := $(KSRC)/include/linux/config.hifeq (,$(wildcard $(VERSION_FILE))) $(error Linux kernel source not configured - missing version.h)endififeq (,$(wildcard $(CONFIG_FILE))) $(error Linux kernel source not configured - missing config.h)endififneq (,$(findstring egcs-2.91.66, $(shell cat /proc/version))) CC := kgcc gcc ccelse CC := gcc ccendiftest_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 -pipeEXTRA_CFLAGS += -I$(KSRC)/include -Wstrict-prototypes -fomit-frame-pointer -fno-strict-aliasingEXTRA_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 := 0endififeq ($(SMP), 1)# CFLAGS += -D__SMP__ EXTRA_CFLAGS += -D__SMP__ endif# check x86_64SUBARCH := $(shell uname -m)ifeq ($(SUBARCH),x86_64)# CFLAGS += -mcmodel=kernel -mno-red-zone EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zoneendif$(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"; fiendif # ifeq ($(KVER),2.6)ifeq ($(KVER), 2.6)install: defaultelseinstall: clean $(TARGET)endif mkdir -p $(MOD_ROOT)$(INSTDIR) install -m 644 -o root $(TARGET) $(MOD_ROOT)$(INSTDIR)ifeq (,$(MOD_ROOT)) /sbin/depmod -a || trueelse /sbin/depmod -b $(MOD_ROOT) -a || trueendifuninstall: rm -f $(INSTDIR)/$(TARGET) /sbin/depmod -aclean: rm -f $(TARGET) $(SRC:.c=.o) *~ *.o rm -f .*.o.d .*.o.cmd .*.ko.cmd *.mod.c *.mod.o-include .depend.mak
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -