Changeset 68682 in vbox for trunk/src/VBox/HostDrivers/VBoxPci/linux
- Timestamp:
- Sep 6, 2017 2:54:29 PM (7 years ago)
- Location:
- trunk/src/VBox/HostDrivers/VBoxPci/linux
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/VBoxPci/linux/Makefile
r67293 r68682 1 1 # 2 2 # Makefile for the VirtualBox Linux Host PCI Driver. 3 # (For 2.6.x this file must be called 'Makefile'!)4 3 # 5 4 6 5 # 7 6 # 8 # Copyright (C) 2011-201 5Oracle Corporation7 # Copyright (C) 2011-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. 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 18 # Linux kbuild sets this to our source directory if we are called from there 19 obj ?= $(CURDIR) 20 include $(obj)/Makefile.include.header 64 21 65 22 # override is required by the Debian guys 66 override MODULE = vboxpci67 OBJS= \23 MOD_NAME = vboxpci 24 MOD_OBJS = \ 68 25 linux/VBoxPci-linux.o \ 69 26 VBoxPci.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)/vboxpci,/ /include /r0drv/linux) 160 export INCL 161 endif 162 ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxpci),) 163 MANGLING := $(KBUILD_EXTMOD)/vboxpci/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 -DIN_SUP_R0 -DVBOX \ 43 -DRT_WITH_VBOX -DVBOX_WITH_HARDENING 44 ifeq ($(BUILD_TARGET_ARCH),amd64) 45 MOD_DEFS += -DRT_ARCH_AMD64 164 46 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 ifdef VBOX_REDHAT_KABI 170 KFLAGS += -DVBOX_REDHAT_KABI 171 endif 172 ifeq ($(BUILD_TARGET_ARCH),amd64) 173 KFLAGS += -DRT_ARCH_AMD64 174 else 175 KFLAGS += -DRT_ARCH_X86 176 endif 177 # must be consistent with Config.kmk! 178 KFLAGS += -DVBOX_WITH_64_BITS_GUESTS 179 ifeq ($(BUILD_TYPE),debug) 180 KFLAGS += -DDEBUG -DDEBUG_$(USER) -g 181 # IPRT_DEBUG_SEMS indicates thread wrt sems state via the comm field. 182 #KFLAGS += -DIPRT_DEBUG_SEMS 47 MOD_DEFS += -DRT_ARCH_X86 183 48 endif 184 49 … … 192 57 # concerns, not enabled by default yet. 193 58 ifdef VBOX_USE_INSERT_PAGE 194 KFLAGS+= -DVBOX_USE_INSERT_PAGE59 MOD_DEFS += -DVBOX_USE_INSERT_PAGE 195 60 endif 196 61 197 MODULE_EXT := ko 198 $(MODULE)-y := $(OBJS) 62 # build defs 63 MOD_CFLAGS = -include $(KBUILD_EXTMOD)/include/VBox/SUPDrvMangling.h -fno-pie 199 64 200 # build defs 201 EXTRA_CFLAGS += -include $(MANGLING) $(INCL) $(KFLAGS) $(KDEBUG) -fno-pie 202 203 all: $(MODULE) 204 205 obj-m += $(MODULE).o 206 207 JOBS := $(shell (getconf _NPROCESSORS_ONLN || grep -Ec '^processor|^CPU[0-9]' /proc/cpuinfo) 2>/dev/null) 208 ifeq ($(JOBS),0) 209 JOBS := 1 210 endif 211 212 # OL/UEK: disable module signing for external modules -- we don't have any private key 213 $(MODULE): 214 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) SUBDIRS=$(CURDIR) SRCROOT=$(CURDIR) CONFIG_MODULE_SIG= -C $(KERN_DIR) -j$(JOBS) modules 215 216 install: $(MODULE) 217 @mkdir -p $(MODULE_DIR); \ 218 install -m 0644 -o root -g root $(MODULE).$(MODULE_EXT) $(MODULE_DIR); \ 219 PATH="$(PATH):/bin:/sbin" depmod -a; 220 221 install_rpm: $(MODULE) 222 @mkdir -p $(MODULE_DIR); \ 223 install -m 0644 $(MODULE).$(MODULE_EXT) $(MODULE_DIR) 224 225 else # eq ($(MAKECMDGOALS),clean) 226 227 ifndef KERN_DIR 228 KERN_DIR := /lib/modules/$(shell uname -r)/build 229 ifeq ($(wildcard $(KERN_DIR)/Makefile),) 230 KERN_DIR := /usr/src/linux 231 endif 232 endif 233 ifeq ($(wildcard $(KERN_DIR)/Makefile),) 234 235 clean: 236 find . \( -name \*.o -o -name \*.cmd \) -print0 | xargs -0 rm -f 237 rm -rf .tmp_ver* $(MODULE).* Module.symvers Modules.symvers modules.order 238 239 else 240 241 clean: 242 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) SUBDIRS=$(CURDIR) SRCROOT=$(CURDIR) -C $(KERN_DIR) clean 243 244 endif 245 246 endif # eq($(MAKECMDGOALS),clean) 65 include $(obj)/Makefile.include.footer -
trunk/src/VBox/HostDrivers/VBoxPci/linux/files_vboxpci
r67295 r68682 72 72 ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPR0IdcClientInternal.h=>SUPR0IdcClientInternal.h \ 73 73 ${PATH_ROOT}/src/VBox/HostDrivers/Support/linux/SUPR0IdcClient-linux.c=>linux/SUPR0IdcClient-linux.c \ 74 ${PATH_ROOT}/src/VBox/Installer/linux/Makefile.include.footer=>Makefile.include.footer \ 75 ${PATH_ROOT}/src/VBox/Installer/linux/Makefile.include.header=>Makefile.include.header \ 74 76 ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/divdi3.c=>math/gcc/divdi3.c \ 75 77 ${PATH_ROOT}/src/VBox/Runtime/common/math/gcc/moddi3.c=>math/gcc/moddi3.c \
Note:
See TracChangeset
for help on using the changeset viewer.