Makefile revision 71e61358090b8d7bad611a6d38786ebd63ed04e1
5d92fff82718cd018f0b61a10b9ad4d2b8064c95rpluem#
bf52162f2d05c1fb1a107c7ef108de73f739b3edpquerna# Makefile for the VirtualBox Linux Host Network Filter Driver.
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim# (For 2.6.x this file must be called 'Makefile'!)
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim#
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf#
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf#
00f8426677a7975dc809e4ccb11241c543ec8a0esf# Copyright (C) 2006-2007 Sun Microsystems, Inc.
00f8426677a7975dc809e4ccb11241c543ec8a0esf#
00f8426677a7975dc809e4ccb11241c543ec8a0esf# This file is part of VirtualBox Open Source Edition (OSE), as
3ef519991d73cff6763052b5a44c206bda01541dsf# available from http://www.virtualbox.org. This file is free software;
3ef519991d73cff6763052b5a44c206bda01541dsf# you can redistribute it and/or modify it under the terms of the GNU
3ef519991d73cff6763052b5a44c206bda01541dsf# General Public License (GPL) as published by the Free Software
3ef519991d73cff6763052b5a44c206bda01541dsf# Foundation, in version 2 as it comes in the "COPYING" file of the
3ef519991d73cff6763052b5a44c206bda01541dsf# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
512bc8626ede860ea2ef329e6c2ffbd6ceba3903sf# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
512bc8626ede860ea2ef329e6c2ffbd6ceba3903sf#
f82baabbe731507742af2f7ba41463dbbc7911e9sf# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
f82baabbe731507742af2f7ba41463dbbc7911e9sf# Clara, CA 95054 USA or visit http://www.sun.com if you need
f82baabbe731507742af2f7ba41463dbbc7911e9sf# additional information or have any questions.
26d07dbe57cb2c8f49df541329a1653635988dbbsf#
26d07dbe57cb2c8f49df541329a1653635988dbbsf
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim#
686555019e71b355e835166dfefbec33f7fb6f90rjung# First, figure out which architecture we're targeting and the build type.
686555019e71b355e835166dfefbec33f7fb6f90rjung# (We have to support basic cross building (ARCH=i386|x86_64).)
686555019e71b355e835166dfefbec33f7fb6f90rjung# While at it, warn about BUILD_* vars found to help with user problems.
eda40bb2debf78c913552346127358797665cf7frjung#
eda40bb2debf78c913552346127358797665cf7frjungifneq ($(filter-out amd64 x86,$(BUILD_TARGET_ARCH)),)
eda40bb2debf78c913552346127358797665cf7frjung $(warning Ignoring unknown BUILD_TARGET_ARCH value '$(BUILD_TARGET_ARCH)'.)
eda40bb2debf78c913552346127358797665cf7frjung BUILD_TARGET_ARCH :=
eda40bb2debf78c913552346127358797665cf7frjungendif
eda40bb2debf78c913552346127358797665cf7frjungifeq ($(BUILD_TARGET_ARCH),)
53b3e9f9937ca992fb149d02d19223674c81c5a4rjung ifeq ($(ARCH),x86_64)
53b3e9f9937ca992fb149d02d19223674c81c5a4rjung BUILD_TARGET_ARCH := amd64
53b3e9f9937ca992fb149d02d19223674c81c5a4rjung else
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung ifeq ($(ARCH),i386)
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung BUILD_TARGET_ARCH := x86
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung else
5b43275cebfb0ff9961ac462f3a96f7fe612d327rjung ifeq ($(filter-out x86_64 amd64 AMD64,$(shell uname -m)),)
5b43275cebfb0ff9961ac462f3a96f7fe612d327rjung BUILD_TARGET_ARCH := amd64
5b43275cebfb0ff9961ac462f3a96f7fe612d327rjung else
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung BUILD_TARGET_ARCH := x86
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung endif
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung endif
4acb0cd5536553055c7c6996414cec00b0191e1djim endif
4acb0cd5536553055c7c6996414cec00b0191e1djimelse
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsf $(warning Using BUILD_TARGET_ARCH='$(BUILD_TARGET_ARCH)' from the $(origin BUILD_TARGET_ARCH).)
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsfendif
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsf
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsfifneq ($(filter-out release profile debug strict,$(BUILD_TYPE)),)
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf $(warning Ignoring unknown BUILD_TYPE value '$(BUILD_TYPE)'.)
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf BUILD_TYPE :=
70f553c56eda63b353598193c3afc238db9b3c78sfendif
70f553c56eda63b353598193c3afc238db9b3c78sfifeq ($(BUILD_TYPE),)
70f553c56eda63b353598193c3afc238db9b3c78sf BUILD_TYPE := release
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsfelse
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsf $(warning Using BUILD_TYPE='$(BUILD_TYPE)' from the $(origin BUILD_TYPE).)
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsfendif
0c2193f47081b894ed16f4fc371f44564d28b334jorton
950e3163cb42ba1e9c8f9d93f4505f580cbc71f4jorton# override is required by the Debian guys
950e3163cb42ba1e9c8f9d93f4505f580cbc71f4jortonoverride MODULE = vboxnetflt
0c2193f47081b894ed16f4fc371f44564d28b334jortonOBJS = \
55929f765b95e354092ac17238718e471c252ebbsf linux/VBoxNetFlt-linux.o \
55929f765b95e354092ac17238718e471c252ebbsf VBoxNetFlt.o \
2ce2fc3287632e20f1b8759aa17e571f68c6fe6dsf SUPR0IdcClient.o \
2ce2fc3287632e20f1b8759aa17e571f68c6fe6dsf SUPR0IdcClientComponent.o \
2ce2fc3287632e20f1b8759aa17e571f68c6fe6dsf SUPR0IdcClient-linux.o \
49aa87d735a13ae3d04012ee0df91ddb51f7c36esf r0drv/alloc-r0drv.o \
49aa87d735a13ae3d04012ee0df91ddb51f7c36esf r0drv/initterm-r0drv.o \
49aa87d735a13ae3d04012ee0df91ddb51f7c36esf r0drv/memobj-r0drv.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/mpnotification-r0drv.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/powernotification-r0drv.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/linux/assert-r0drv-linux.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/linux/alloc-r0drv-linux.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/linux/initterm-r0drv-linux.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/linux/memobj-r0drv-linux.o \
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf r0drv/linux/mp-r0drv-linux.o \
0ab15ffa17f588723d0c310af78b505bf4e8a953sf r0drv/linux/mpnotification-r0drv-linux.o \
0ab15ffa17f588723d0c310af78b505bf4e8a953sf r0drv/linux/process-r0drv-linux.o \
0ab15ffa17f588723d0c310af78b505bf4e8a953sf r0drv/linux/semevent-r0drv-linux.o \
1dee19645438f8e3cb80fe86e1aaade04d093e45sf r0drv/linux/semeventmulti-r0drv-linux.o \
1dee19645438f8e3cb80fe86e1aaade04d093e45sf r0drv/linux/semfastmutex-r0drv-linux.o \
1dee19645438f8e3cb80fe86e1aaade04d093e45sf r0drv/linux/spinlock-r0drv-linux.o \
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf r0drv/linux/thread-r0drv-linux.o \
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf r0drv/linux/thread2-r0drv-linux.o \
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf r0drv/linux/time-r0drv-linux.o \
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf common/err/RTErrConvertFromErrno.o \
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf common/err/RTErrConvertToErrno.o \
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf common/log/log.o \
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin common/log/logellipsis.o \
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin common/log/logrel.o \
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin common/log/logrelellipsis.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/log/logcom.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/log/logformat.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/string/strformat.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/string/strformatrt.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/string/strformattype.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/string/strprintf.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf common/string/strtonum.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf r0drv/linux/RTLogWriteDebugger-r0drv-linux.o \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf generic/RTAssertShouldPanic-generic.o \
6b15044d54a096e6323ff1540f1a491e8de7622dsf generic/RTLogWriteStdErr-stub-generic.o \
6b15044d54a096e6323ff1540f1a491e8de7622dsf generic/RTLogWriteStdOut-stub-generic.o \
6b15044d54a096e6323ff1540f1a491e8de7622dsf generic/RTLogWriteUser-generic.o \
287b17b746df229d6211c624b8a3e1edda21cecdsf generic/uuid-generic.o \
287b17b746df229d6211c624b8a3e1edda21cecdsf VBox/log-vbox.o \
287b17b746df229d6211c624b8a3e1edda21cecdsf VBox/strformat-vbox.o
de2d327e43e0f17cdb64851beafecba96a0ed962sfifeq ($(BUILD_TARGET_ARCH),x86)
de2d327e43e0f17cdb64851beafecba96a0ed962sfOBJS += math/gcc/divdi3.o \
de2d327e43e0f17cdb64851beafecba96a0ed962sf math/gcc/moddi3.o \
de2d327e43e0f17cdb64851beafecba96a0ed962sf math/gcc/qdivrem.o \
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf math/gcc/udivdi3.o \
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf math/gcc/divdi3.o \
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf math/gcc/umoddi3.o
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfendif
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfifeq ($(BUILD_TARGET_ARCH),amd64)
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfOBJS += alloc/heapsimple.o
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esfendif
b44565f239485673d9486068588a5fb3af008be9sf
b44565f239485673d9486068588a5fb3af008be9sfifneq ($(MAKECMDGOALS),clean)
b44565f239485673d9486068588a5fb3af008be9sf
b44565f239485673d9486068588a5fb3af008be9sfifeq ($(KERNELRELEASE),)
bf99d597a964add76124fc185892e04733a02969sf
bf99d597a964add76124fc185892e04733a02969sf #
bf99d597a964add76124fc185892e04733a02969sf # building from this directory
876167dba234e2c7065895c87b77a8c57bdcf754sf #
876167dba234e2c7065895c87b77a8c57bdcf754sf
876167dba234e2c7065895c87b77a8c57bdcf754sf # kernel base directory
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf ifndef KERN_DIR
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf # build for the current kernel, version check
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf KERN_DIR := /lib/modules/$(shell uname -r)/build
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim KERN_DIR := /usr/src/linux
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim $(error Error: unable to find the sources of your current Linux kernel. \
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin Specify KERN_DIR=<directory> and run Make again)
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin endif
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin $(warning Warning: using /usr/src/linux as the source directory of your \
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin Linux kernel. If this is not correct, specify \
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin KERN_DIR=<directory> and run Make again.)
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin endif
b3e63c395d671f14a096d7e888dbfd2caf93a663sf # check if versions match -- works only for later 2.6 kernels
b3e63c395d671f14a096d7e888dbfd2caf93a663sf VBOX_KERN_VER := $(shell $(MAKE) -sC $(KERN_DIR) kernelrelease 2> /dev/null || true)
b3e63c395d671f14a096d7e888dbfd2caf93a663sf ifneq ($(VBOX_KERN_VER),)
b3e63c395d671f14a096d7e888dbfd2caf93a663sf ifneq ($(VBOX_KERN_VER),$(shell uname -r))
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf $(error Error: /usr/src/linux (version $(VBOX_KERN_VER)) does not match \
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf the current kernel (version $(shell uname -r)))
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf endif
83c89da783ba8bdaef50ec1912443f7fad3556acjim endif
83c89da783ba8bdaef50ec1912443f7fad3556acjim else
83c89da783ba8bdaef50ec1912443f7fad3556acjim # build for a dedicated kernel, no version check
5152ceef718c8d39291557205cb2a98f436ce87frjung ifneq ($(shell if test -d $(KERN_DIR); then echo yes; fi),yes)
5152ceef718c8d39291557205cb2a98f436ce87frjung $(error Error: KERN_DIR does not point to a directory)
4acb0cd5536553055c7c6996414cec00b0191e1djim endif
9c67ffea79ab184351b5d554b57814e13285e758jim endif
9c67ffea79ab184351b5d554b57814e13285e758jim
3eb3f27d2d93942bd4230c231aab4eb16a316384jim # includes
3eb3f27d2d93942bd4230c231aab4eb16a316384jim ifndef KERN_INCL
3eb3f27d2d93942bd4230c231aab4eb16a316384jim KERN_INCL = $(KERN_DIR)/include
0a2424312d9f02479a38e96dcbb170a77c218852rjung endif
0a2424312d9f02479a38e96dcbb170a77c218852rjung ifneq ($(shell if test -d $(KERN_INCL); then echo yes; fi),yes)
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covener $(error Error: unable to find the include directory for your current Linux \
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covener kernel. Specify KERN_INCL=<directory> and run Make again)
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covener endif
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalic
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalic # module install dir, only for current kernel
80a98c87d804ac7c0ea52d3f3b4676e559b49087igalic ifneq ($(filter install install_rpm,$(MAKECMDGOALS)),)
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick ifndef MODULE_DIR
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick MODULE_DIR_TST := /lib/modules/$(shell uname -r)
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick ifeq ($(shell if test -d $(MODULE_DIR_TST); then echo yes; fi),yes)
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick MODULE_DIR := $(MODULE_DIR_TST)/misc
e19d3a1e487aa73e0850658d3773f748aefba7f7sf else
e19d3a1e487aa73e0850658d3773f748aefba7f7sf $(error Unable to find the folder to install the support driver to)
e19d3a1e487aa73e0850658d3773f748aefba7f7sf endif
e19d3a1e487aa73e0850658d3773f748aefba7f7sf endif # MODULE_DIR unspecified
e19d3a1e487aa73e0850658d3773f748aefba7f7sf endif
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esfelse # neq($(KERNELRELEASE),)
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf #
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sf # building from kbuild (make -C <kernel_directory> M=`pwd`)
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sf #
b1677ce80314e41b74bdd8d50c13ac159f3c09f4sf
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawickendif # neq($(KERNELRELEASE),)
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawick
31eeb74b832eea054c7a42081c1afdeccd987e5etrawick# debug - show guesses.
31eeb74b832eea054c7a42081c1afdeccd987e5etrawickifdef DEBUG
31eeb74b832eea054c7a42081c1afdeccd987e5etrawick$(warning dbg: KERN_DIR = $(KERN_DIR))
e9bf808f770605c1f54a9d0fb1c560115c91fd71sf$(warning dbg: KERN_INCL = $(KERN_INCL))
e9bf808f770605c1f54a9d0fb1c560115c91fd71sf$(warning dbg: MODULE_DIR = $(MODULE_DIR))
e9bf808f770605c1f54a9d0fb1c560115c91fd71sfendif
575cc52562c51c0c8bb8de0c6eaa55a60f7f895bsf
575cc52562c51c0c8bb8de0c6eaa55a60f7f895bsfKBUILD_VERBOSE ?= 1
575cc52562c51c0c8bb8de0c6eaa55a60f7f895bsf
490993ea2eda52d4fdacff247eb2657296c86f71trawick#
490993ea2eda52d4fdacff247eb2657296c86f71trawick# Compiler options
03502de2853fcebaf853ed3bcfd5033894c238bbjim#
03502de2853fcebaf853ed3bcfd5033894c238bbjimifndef INCL
03502de2853fcebaf853ed3bcfd5033894c238bbjim INCL := $(addprefix -I,$(KERN_INCL) $(EXTRA_INCL))
03502de2853fcebaf853ed3bcfd5033894c238bbjim ifndef KBUILD_EXTMOD
afee7998d5045107a7673f09bc3448a5dc1b6612jim KBUILD_EXTMOD := $(shell pwd)
afee7998d5045107a7673f09bc3448a5dc1b6612jim endif
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf INCL += $(addprefix -I$(KBUILD_EXTMOD),/ /include /r0drv/linux)
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf export INCL
6ec154950417d0b32082f6590ffa3acc3e0c3d49sfendif
6ec154950417d0b32082f6590ffa3acc3e0c3d49sfKFLAGS := -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING
b38e1e2f118f67818f88faee827f4b3a2881e908sfifdef VBOX_REDHAT_KABI
3d636d91428f2c0a74012c89a94ec7d5b40aa52esf KFLAGS += -DVBOX_REDHAT_KABI
b38e1e2f118f67818f88faee827f4b3a2881e908sfendif
33e53d7c6aa5d004d96ea11d7f3ca35b30e82544trawickifeq ($(BUILD_TARGET_ARCH),amd64)
33e53d7c6aa5d004d96ea11d7f3ca35b30e82544trawick KFLAGS += -DRT_ARCH_AMD64
20e0c71be778348516719e1e58a9f55c8e78c570trawickelse
027f7b141f164258b254c38319d06452b25d7660trawick KFLAGS += -DRT_ARCH_X86
027f7b141f164258b254c38319d06452b25d7660trawickendif
977c4527be5a21182f24fc22a40a79d576a52f86trawick# must be consistent with Config.kmk!
977c4527be5a21182f24fc22a40a79d576a52f86trawickKFLAGS += -DVBOX_WITH_64_BITS_GUESTS
977c4527be5a21182f24fc22a40a79d576a52f86trawickifeq ($(BUILD_TYPE),debug)
7fef9f66804ea10d5bf343cdd3d607465e8340cajim KFLAGS += -DDEBUG -DDEBUG_$(USER) -g
7fef9f66804ea10d5bf343cdd3d607465e8340cajim # IPRT_DEBUG_SEMS indicates thread wrt sems state via the comm field.
7fef9f66804ea10d5bf343cdd3d607465e8340cajim KFLAGS += -DIPRT_DEBUG_SEMS
3770ed746d69c7a4111cba9966169bd5d7a509a6poirierendif
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier# By default we use remap_pfn_range() kernel API to make kernel pages
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier# visible for userland. Unfortuately, it leads to situation that
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier# during debug session all structures on that page (such as PVM pointer)
7bd92b29516bc4bf7351d35aa447dbe68f1e8bb4jorton# are not accessible to the debugger (see #3214).
7bd92b29516bc4bf7351d35aa447dbe68f1e8bb4jorton# This code enables experimental support
7bd92b29516bc4bf7351d35aa447dbe68f1e8bb4jorton# for vm_insert_page() kernel API, allowing to export kernel pages
a81c0c1ae464b2063a21b45f80c9da8d89bb840ecovener# to the userland in more debugger-friendly way. Due to stability
a81c0c1ae464b2063a21b45f80c9da8d89bb840ecovener# concerns, not enabled by default yet.
a81c0c1ae464b2063a21b45f80c9da8d89bb840ecovenerifdef VBOX_USE_INSERT_PAGE
ffae06377667a5d8f9699ac7512134de7000a83dminfrin KFLAGS += -DVBOX_USE_INSERT_PAGE
ffae06377667a5d8f9699ac7512134de7000a83dminfrinendif
ffae06377667a5d8f9699ac7512134de7000a83dminfrin
ffae06377667a5d8f9699ac7512134de7000a83dminfrinMODULE_EXT := ko
efc81fe729a2b7401028387da184b4a98f0b854atrawick$(MODULE)-y := $(OBJS)
efc81fe729a2b7401028387da184b4a98f0b854atrawick
efc81fe729a2b7401028387da184b4a98f0b854atrawick# build defs
efc81fe729a2b7401028387da184b4a98f0b854atrawickEXTRA_CFLAGS += $(INCL) $(KFLAGS) $(KDEBUG)
9c67ffea79ab184351b5d554b57814e13285e758jim
8f066564bfc0fd6ddc6ca4b2f2410615554597d1jimall: $(MODULE)
8f066564bfc0fd6ddc6ca4b2f2410615554597d1jim
d56f48e6d861159b42b8f6eadd66e9e03086ceb9fuankgobj-m += $(MODULE).o
cfd376e3e25eb609c30773a0897c97b2a9a76130fuankg
cfd376e3e25eb609c30773a0897c97b2a9a76130fuankg$(MODULE):
cfd376e3e25eb609c30773a0897c97b2a9a76130fuankg $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C $(KERN_DIR) SUBDIRS=$(CURDIR) SRCROOT=$(CURDIR) modules
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jim
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jiminstall: $(MODULE)
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jim @mkdir -p $(MODULE_DIR); \
29ecbd9db1622e74964264d078336f7604d65093jim install -m 0664 -o root -g root $(MODULE).$(MODULE_EXT) $(MODULE_DIR); \
29ecbd9db1622e74964264d078336f7604d65093jim PATH="$(PATH):/bin:/sbin" depmod -ae; \
29ecbd9db1622e74964264d078336f7604d65093jim rm -f /etc/vbox/module_not_compiled
a503caacf7ab36d5bc42cb7c78256e1221642656jim
a503caacf7ab36d5bc42cb7c78256e1221642656jiminstall_rpm: $(MODULE)
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin @mkdir -p $(MODULE_DIR); \
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin install -m 0664 $(MODULE).$(MODULE_EXT) $(MODULE_DIR)
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrin
da40dfabefd6f8eb8450e9a097c594ee2ab13e3eminfrinendif # eq($(MAKECMDGOALS),clean)
59d316b83d42d2a07e25c20d8c35a07b369618bdsf
59d316b83d42d2a07e25c20d8c35a07b369618bdsf# important: Don't remove Module.symvers! DKMS does 'make clean' before building ...
59d316b83d42d2a07e25c20d8c35a07b369618bdsfclean:
59d316b83d42d2a07e25c20d8c35a07b369618bdsf for f in . linux r0drv r0drv/linux VBox common/err common/string common/log generic math/gcc; \
8602c898d4e06a7e7b9d6b7cf4b172a8e7310987sf do rm -f $$f/*.o $$f/.*.cmd $$f/.*.flags; done
8602c898d4e06a7e7b9d6b7cf4b172a8e7310987sf rm -rf .vboxnetflt* .tmp_ver* vboxnetflt.* Modules.symvers modules.order
8602c898d4e06a7e7b9d6b7cf4b172a8e7310987sf