[14546] | 1 | #
|
---|
[15816] | 2 | # Makefile for the VirtualBox Linux Guest Drivers.
|
---|
[14546] | 3 | #
|
---|
| 4 |
|
---|
| 5 | #
|
---|
[98103] | 6 | # Copyright (C) 2009-2023 Oracle and/or its affiliates.
|
---|
[14546] | 7 | #
|
---|
[96407] | 8 | # This file is part of VirtualBox base platform packages, as
|
---|
| 9 | # available from https://www.virtualbox.org.
|
---|
[14546] | 10 | #
|
---|
[96407] | 11 | # This program is free software; you can redistribute it and/or
|
---|
| 12 | # modify it under the terms of the GNU General Public License
|
---|
| 13 | # as published by the Free Software Foundation, in version 3 of the
|
---|
| 14 | # License.
|
---|
| 15 | #
|
---|
| 16 | # This program is distributed in the hope that it will be useful, but
|
---|
| 17 | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
| 19 | # General Public License for more details.
|
---|
| 20 | #
|
---|
| 21 | # You should have received a copy of the GNU General Public License
|
---|
| 22 | # along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
| 23 | #
|
---|
| 24 | # SPDX-License-Identifier: GPL-3.0-only
|
---|
| 25 | #
|
---|
[14546] | 26 |
|
---|
[78446] | 27 | ifneq ($(KERNELRELEASE),)
|
---|
[32183] | 28 |
|
---|
[78446] | 29 | # Building from kBuild (make -C <kernel_directory> M=`pwd`)
|
---|
| 30 | # or inside a kernel source tree.
|
---|
[32183] | 31 |
|
---|
| 32 | obj-m = vboxguest/ vboxsf/ vboxvideo/
|
---|
| 33 |
|
---|
[78446] | 34 | else # ! KERNELRELEASE
|
---|
[32183] | 35 |
|
---|
[14655] | 36 | KBUILD_VERBOSE =
|
---|
[77389] | 37 | ifeq ($(KBUILD_VERBOSE),)
|
---|
| 38 | VBOX_QUIET := @
|
---|
| 39 | VBOX_QUIET_SH := @
|
---|
| 40 | else
|
---|
| 41 | VBOX_QUIET :=
|
---|
| 42 | VBOX_QUIET_SH := set -x;
|
---|
| 43 | endif
|
---|
[14655] | 44 |
|
---|
[77956] | 45 | all: vboxguest vboxsf vboxvideo
|
---|
| 46 |
|
---|
[74731] | 47 | vboxguest:
|
---|
[66222] | 48 | @echo "=== Building 'vboxguest' module ==="
|
---|
[85404] | 49 | + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
|
---|
[77389] | 50 | $(VBOX_QUIET_SH)if [ -f vboxguest/vboxguest.ko ]; then \
|
---|
[21417] | 51 | cp vboxguest/vboxguest.ko .; \
|
---|
| 52 | else \
|
---|
| 53 | cp vboxguest/vboxguest.o .; \
|
---|
| 54 | fi
|
---|
[14546] | 55 | @echo
|
---|
[74731] | 56 |
|
---|
| 57 | vboxsf: vboxguest
|
---|
[85404] | 58 | + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
|
---|
[21412] | 59 | if [ -f vboxguest/Module.symvers ]; then \
|
---|
[28998] | 60 | cp vboxguest/Module.symvers vboxsf; \
|
---|
[14546] | 61 | fi; \
|
---|
[66222] | 62 | echo "=== Building 'vboxsf' module ==="; \
|
---|
[82695] | 63 | $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxsf/Module.symvers) -C vboxsf || exit 1; \
|
---|
[28998] | 64 | if [ -f vboxsf/vboxsf.ko ]; then \
|
---|
| 65 | cp vboxsf/vboxsf.ko .; \
|
---|
[21416] | 66 | else \
|
---|
[28998] | 67 | cp vboxsf/vboxsf.o .; \
|
---|
[21416] | 68 | fi; \
|
---|
[41448] | 69 | echo; \
|
---|
[14546] | 70 | fi
|
---|
[74731] | 71 |
|
---|
[85942] | 72 | vboxvideo:
|
---|
[85404] | 73 | + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
|
---|
[66222] | 74 | echo "=== Building 'vboxvideo' module ==="; \
|
---|
[85942] | 75 | $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo || exit 1; \
|
---|
[33183] | 76 | if [ -f vboxvideo/vboxvideo.ko ]; then \
|
---|
| 77 | cp vboxvideo/vboxvideo.ko .; \
|
---|
[66077] | 78 | elif [ -f vboxvideo/vboxvideo.o ]; then \
|
---|
[33183] | 79 | cp vboxvideo/vboxvideo.o .; \
|
---|
| 80 | fi; \
|
---|
[41448] | 81 | echo; \
|
---|
[33183] | 82 | fi
|
---|
[14546] | 83 |
|
---|
[85943] | 84 | install-vboxguest:
|
---|
[85404] | 85 | + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
|
---|
[85939] | 86 |
|
---|
[85943] | 87 | install-vboxsf:
|
---|
[85404] | 88 | + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
|
---|
[28998] | 89 | $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
|
---|
[14865] | 90 | fi
|
---|
[85939] | 91 |
|
---|
[85943] | 92 | install-vboxvideo:
|
---|
[85404] | 93 | + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
|
---|
[33183] | 94 | $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
|
---|
| 95 | fi
|
---|
[14865] | 96 |
|
---|
[85943] | 97 | install: install-vboxguest install-vboxsf install-vboxvideo
|
---|
[85939] | 98 |
|
---|
[85943] | 99 | clean-vboxguest:
|
---|
[85404] | 100 | + $(VBOX_QUIET)$(MAKE) -C vboxguest clean
|
---|
[85939] | 101 | rm -f vboxguest.*o
|
---|
[85395] | 102 |
|
---|
[85943] | 103 | clean-vboxsf:
|
---|
[85404] | 104 | + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
|
---|
[28998] | 105 | $(MAKE) -C vboxsf clean; \
|
---|
[14546] | 106 | fi
|
---|
[85939] | 107 | rm -f vboxsf.*o
|
---|
[85395] | 108 |
|
---|
[85943] | 109 | clean-vboxvideo:
|
---|
[85404] | 110 | + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
|
---|
[33183] | 111 | $(MAKE) -C vboxvideo clean; \
|
---|
| 112 | fi
|
---|
[85939] | 113 | rm -f vboxvideo.*o
|
---|
[85395] | 114 |
|
---|
[85943] | 115 | clean: clean-vboxguest clean-vboxsf clean-vboxvideo
|
---|
[14546] | 116 |
|
---|
[36190] | 117 | check:
|
---|
[77389] | 118 | $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
|
---|
[36190] | 119 |
|
---|
[85939] | 120 | unload:
|
---|
[77389] | 121 | $(VBOX_QUIET)/sbin/rmmod vboxvideo || true
|
---|
| 122 | $(VBOX_QUIET)/sbin/rmmod vboxvfs || true
|
---|
| 123 | $(VBOX_QUIET)/sbin/rmmod vboxsf || true
|
---|
| 124 | $(VBOX_QUIET)/sbin/rmmod vboxguest || true
|
---|
[85939] | 125 |
|
---|
| 126 | load: unload
|
---|
[77389] | 127 | $(VBOX_QUIET)/sbin/insmod vboxguest.ko
|
---|
| 128 | $(VBOX_QUIET)if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
|
---|
| 129 | $(VBOX_QUIET)if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
|
---|
[32183] | 130 |
|
---|
[85939] | 131 | .PHONY: all install clean check unload load \
|
---|
| 132 | vboxguest vboxsf vboxvideo \
|
---|
[85943] | 133 | install-vboxguest install-vboxsf install-vboxvideo \
|
---|
| 134 | clean-vboxguest clean-vboxsf clean-vboxvideo
|
---|
[74731] | 135 |
|
---|
[78446] | 136 | endif # ! KERNELRELEASE
|
---|