Changeset 68682 in vbox for trunk/src/VBox/HostDrivers/VBoxNetFlt/linux
- Timestamp:
- Sep 6, 2017 2:54:29 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 117913
- Location:
- trunk/src/VBox/HostDrivers/VBoxNetFlt/linux
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/Makefile
r67293 r68682 1 1 # 2 2 # Makefile for the VirtualBox Linux Host Network Filter Driver. 3 # (For 2.6.x this file must be called 'Makefile'!)4 3 # 5 4 6 5 # 7 6 # 8 # Copyright (C) 2006-201 5Oracle Corporation7 # Copyright (C) 2006-2017 Oracle Corporation 9 8 # 10 9 # This file is part of VirtualBox Open Source Edition (OSE), as … … 17 16 # 18 17 19 ## @todo If you make non-trivial changes to this make file, please consider 20 # rewriting it to use Makefile.include.header and 21 # Makefile.include.footer. 18 # Linux kbuild sets this to our source directory if we are called from 19 # there 20 obj ?= $(CURDIR) 21 include $(obj)/Makefile.include.header 22 22 23 # 24 # First, figure out which architecture we're targeting and the build type. 25 # (We have to support basic cross building (ARCH=i386|x86_64).) 26 # While at it, warn about BUILD_* vars found to help with user problems. 27 # 28 ifeq ($(filter-out x86_64 amd64 AMD64,$(shell uname -m)),) 29 BUILD_TARGET_ARCH_DEF := amd64 30 else 31 BUILD_TARGET_ARCH_DEF := x86 32 endif 33 ifneq ($(filter-out amd64 x86,$(BUILD_TARGET_ARCH)),) 34 $(warning Ignoring unknown BUILD_TARGET_ARCH value '$(BUILD_TARGET_ARCH)'.) 35 BUILD_TARGET_ARCH := 36 endif 37 ifeq ($(BUILD_TARGET_ARCH),) 38 ifeq ($(ARCH),x86_64) 39 BUILD_TARGET_ARCH := amd64 40 else 41 ifeq ($(ARCH),i386) 42 BUILD_TARGET_ARCH := x86 43 else 44 BUILD_TARGET_ARCH := $(BUILD_TARGET_ARCH_DEF) 45 endif 46 endif 47 else 48 ifneq ($(BUILD_TARGET_ARCH),$(BUILD_TARGET_ARCH_DEF)) 49 $(warning Using BUILD_TARGET_ARCH='$(BUILD_TARGET_ARCH)' from the $(origin BUILD_TARGET_ARCH).) 50 endif 51 endif 52 53 ifneq ($(filter-out release profile debug strict,$(BUILD_TYPE)),) 54 $(warning Ignoring unknown BUILD_TYPE value '$(BUILD_TYPE)'.) 55 BUILD_TYPE := 56 endif 57 ifeq ($(BUILD_TYPE),) 58 BUILD_TYPE := release 59 else 60 ifneq ($(BUILD_TYPE),release) 61 $(warning Using BUILD_TYPE='$(BUILD_TYPE)' from the $(origin BUILD_TYPE).) 62 endif 63 endif 64 65 # override is required by the Debian guys 66 override MODULE = vboxnetflt 67 OBJS = \ 23 MOD_NAME = vboxnetflt 24 MOD_OBJS = \ 68 25 linux/VBoxNetFlt-linux.o \ 69 26 VBoxNetFlt.o \ … … 73 30 74 31 ifeq ($(BUILD_TARGET_ARCH),x86) 75 OBJS += math/gcc/divdi3.o \32 MOD_OBJS += math/gcc/divdi3.o \ 76 33 math/gcc/moddi3.o \ 77 34 math/gcc/qdivrem.o \ … … 82 39 endif 83 40 84 ifneq ($(MAKECMDGOALS),clean) 85 86 ifeq ($(KERNELRELEASE),) 87 88 # 89 # building from this directory 90 # 91 92 # kernel base directory 93 ifndef KERN_DIR 94 # build for the current kernel, version check 95 KERN_DIR := /lib/modules/$(shell uname -r)/build 96 ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes) 97 KERN_DIR := /usr/src/linux 98 ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes) 99 $(error Error: unable to find the sources of your current Linux kernel. \ 100 Specify KERN_DIR=<directory> and run Make again) 101 endif 102 $(warning Warning: using /usr/src/linux as the source directory of your \ 103 Linux kernel. If this is not correct, specify \ 104 KERN_DIR=<directory> and run Make again.) 105 endif 106 else 107 ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes) 108 $(error Error: KERN_DIR does not point to a directory) 109 endif 110 endif 111 112 # includes 113 ifndef KERN_INCL 114 KERN_INCL = $(KERN_DIR)/include 115 endif 116 ifneq ($(shell if test -d $(KERN_INCL); then echo yes; fi),yes) 117 $(error Error: unable to find the include directory for your current Linux \ 118 kernel. Specify KERN_INCL=<directory> and run Make again) 119 endif 120 121 # module install dir, only for current kernel 122 ifneq ($(filter install install_rpm,$(MAKECMDGOALS)),) 123 ifndef MODULE_DIR 124 MODULE_DIR_TST := /lib/modules/$(shell uname -r) 125 ifeq ($(shell if test -d $(MODULE_DIR_TST); then echo yes; fi),yes) 126 MODULE_DIR := $(MODULE_DIR_TST)/misc 127 else 128 $(error Unable to find the folder to install the support driver to) 129 endif 130 endif # MODULE_DIR unspecified 131 endif 132 133 else # neq($(KERNELRELEASE),) 134 135 # 136 # building from kbuild (make -C <kernel_directory> M=`pwd`) 137 # 138 139 endif # neq($(KERNELRELEASE),) 140 141 # debug - show guesses. 142 ifdef DEBUG 143 $(warning dbg: KERN_DIR = $(KERN_DIR)) 144 $(warning dbg: KERN_INCL = $(KERN_INCL)) 145 $(warning dbg: MODULE_DIR = $(MODULE_DIR)) 146 endif 147 148 KBUILD_VERBOSE ?= 1 149 150 # 151 # Compiler options 152 # 153 ifndef INCL 154 INCL := $(addprefix -I,$(KERN_INCL) $(EXTRA_INCL)) 155 ifndef KBUILD_EXTMOD 156 KBUILD_EXTMOD := $(shell pwd) 157 endif 158 INCL += $(addprefix -I$(KBUILD_EXTMOD),/ /include /r0drv/linux) 159 INCL += $(addprefix -I$(KBUILD_EXTMOD)/vboxnetflt,/ /include /r0drv/linux) 160 export INCL 161 endif 162 ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetflt),) 163 MANGLING := $(KBUILD_EXTMOD)/vboxnetflt/include/VBox/SUPDrvMangling.h 41 MOD_INCL = $(addprefix -I$(KBUILD_EXTMOD),/ /include /r0drv/linux) 42 MOD_DEFS = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \ 43 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING \ 44 -Wno-declaration-after-statement 45 ifeq ($(BUILD_TARGET_ARCH),amd64) 46 MOD_DEFS += -DRT_ARCH_AMD64 164 47 else 165 MANGLING := $(KBUILD_EXTMOD)/include/VBox/SUPDrvMangling.h 166 endif 167 KFLAGS := -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \ 168 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING \ 169 -Wno-declaration-after-statement 170 ifdef VBOX_REDHAT_KABI 171 KFLAGS += -DVBOX_REDHAT_KABI 172 endif 173 ifeq ($(BUILD_TARGET_ARCH),amd64) 174 KFLAGS += -DRT_ARCH_AMD64 175 else 176 KFLAGS += -DRT_ARCH_X86 48 MOD_DEFS += -DRT_ARCH_X86 177 49 endif 178 50 # must be consistent with Config.kmk! 179 KFLAGS += -DVBOX_WITH_64_BITS_GUESTS 180 ifeq ($(BUILD_TYPE),debug) 181 KFLAGS += -DDEBUG -DDEBUG_$(USER) -g 182 # IPRT_DEBUG_SEMS indicates thread wrt sems state via the comm field. 183 #KFLAGS += -DIPRT_DEBUG_SEMS 184 endif 51 MOD_DEFS += -DVBOX_WITH_64_BITS_GUESTS 185 52 186 53 # By default we use remap_pfn_range() kernel API to make kernel pages … … 196 63 endif 197 64 198 MODULE_EXT := ko 199 $(MODULE)-y := $(OBJS) 65 # build defs 66 MOD_CFLAGS = -include $(KBUILD_EXTMOD)/include/VBox/SUPDrvMangling.h -fno-pie 200 67 201 # build defs 202 EXTRA_CFLAGS += -include $(MANGLING) $(INCL) $(KFLAGS) $(KDEBUG) -fno-pie 203 204 all: $(MODULE) 205 206 obj-m += $(MODULE).o 207 208 JOBS := $(shell (getconf _NPROCESSORS_ONLN || grep -Ec '^processor|^CPU[0-9]' /proc/cpuinfo) 2>/dev/null) 209 ifeq ($(JOBS),0) 210 JOBS := 1 211 endif 212 213 # OL/UEK: disable module signing for external modules -- we don't have any private key 214 $(MODULE): 215 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) SUBDIRS=$(CURDIR) SRCROOT=$(CURDIR) CONFIG_MODULE_SIG= -C $(KERN_DIR) -j$(JOBS) modules 216 217 install: $(MODULE) 218 @mkdir -p $(MODULE_DIR); \ 219 install -m 0644 -o root -g root $(MODULE).$(MODULE_EXT) $(MODULE_DIR); \ 220 PATH="$(PATH):/bin:/sbin" depmod -a; \ 221 rm -f /etc/vbox/module_not_compiled 222 223 install_rpm: $(MODULE) 224 @mkdir -p $(MODULE_DIR); \ 225 install -m 0644 $(MODULE).$(MODULE_EXT) $(MODULE_DIR) 226 227 else # eq ($(MAKECMDGOALS),clean) 228 229 ifndef KERN_DIR 230 KERN_DIR := /lib/modules/$(shell uname -r)/build 231 ifeq ($(wildcard $(KERN_DIR)/Makefile),) 232 KERN_DIR := /usr/src/linux 233 endif 234 endif 235 ifeq ($(wildcard $(KERN_DIR)/Makefile),) 236 237 clean: 238 find . \( -name \*.o -o -name \*.cmd \) -print0 | xargs -0 rm -f 239 rm -rf .tmp_ver* $(MODULE).* Module.symvers Modules.symvers modules.order 240 241 else 242 243 clean: 244 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) SUBDIRS=$(CURDIR) SRCROOT=$(CURDIR) -C $(KERN_DIR) clean 245 246 endif 247 248 endif # eq($(MAKECMDGOALS),clean) 68 include $(obj)/Makefile.include.footer -
trunk/src/VBox/HostDrivers/VBoxNetFlt/linux/files_vboxnetflt
r67295 r68682 74 74 ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h=>SUPR0IdcClientInternal.h \ 75 75 ${PATH_ROOT}/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c=>linux/SUPR0IdcClient-linux.c \ 76 ${PATH_ROOT}/src/VBox/Installer/linux/Makefile.include.footer=>Makefile.include.footer \ 77 ${PATH_ROOT}/src/VBox/Installer/linux/Makefile.include.header=>Makefile.include.header \ 76 78 ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/divdi3.c=>math/gcc/divdi3.c \ 77 79 ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/moddi3.c=>math/gcc/moddi3.c \
Note:
See TracChangeset
for help on using the changeset viewer.