VirtualBox

source: vbox/trunk/src/VBox/Additions/linux/Makefile@ 93115

Last change on this file since 93115 was 93115, checked in by vboxsync, 3 years ago

scm --update-copyright-year

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 3.5 KB
Line 
1#
2# Makefile for the VirtualBox Linux Guest Drivers.
3#
4
5#
6# Copyright (C) 2009-2022 Oracle Corporation
7#
8# This file is part of VirtualBox Open Source Edition (OSE), as
9# available from http://www.virtualbox.org. This file is free software;
10# you can redistribute it and/or modify it under the terms of the GNU
11# General Public License (GPL) as published by the Free Software
12# Foundation, in version 2 as it comes in the "COPYING" file of the
13# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15#
16
17ifneq ($(KERNELRELEASE),)
18
19# Building from kBuild (make -C <kernel_directory> M=`pwd`)
20# or inside a kernel source tree.
21
22obj-m = vboxguest/ vboxsf/ vboxvideo/
23
24else # ! KERNELRELEASE
25
26KBUILD_VERBOSE =
27 ifeq ($(KBUILD_VERBOSE),)
28VBOX_QUIET := @
29VBOX_QUIET_SH := @
30 else
31VBOX_QUIET :=
32VBOX_QUIET_SH := set -x;
33 endif
34
35all: vboxguest vboxsf vboxvideo
36
37vboxguest:
38 @echo "=== Building 'vboxguest' module ==="
39 + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
40 $(VBOX_QUIET_SH)if [ -f vboxguest/vboxguest.ko ]; then \
41 cp vboxguest/vboxguest.ko .; \
42 else \
43 cp vboxguest/vboxguest.o .; \
44 fi
45 @echo
46
47vboxsf: vboxguest
48 + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
49 if [ -f vboxguest/Module.symvers ]; then \
50 cp vboxguest/Module.symvers vboxsf; \
51 fi; \
52 echo "=== Building 'vboxsf' module ==="; \
53 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxsf/Module.symvers) -C vboxsf || exit 1; \
54 if [ -f vboxsf/vboxsf.ko ]; then \
55 cp vboxsf/vboxsf.ko .; \
56 else \
57 cp vboxsf/vboxsf.o .; \
58 fi; \
59 echo; \
60 fi
61
62vboxvideo:
63 + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
64 echo "=== Building 'vboxvideo' module ==="; \
65 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo || exit 1; \
66 if [ -f vboxvideo/vboxvideo.ko ]; then \
67 cp vboxvideo/vboxvideo.ko .; \
68 elif [ -f vboxvideo/vboxvideo.o ]; then \
69 cp vboxvideo/vboxvideo.o .; \
70 fi; \
71 echo; \
72 fi
73
74install-vboxguest:
75 + $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
76
77install-vboxsf:
78 + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
79 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
80 fi
81
82install-vboxvideo:
83 + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
84 $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
85 fi
86
87install: install-vboxguest install-vboxsf install-vboxvideo
88
89clean-vboxguest:
90 + $(VBOX_QUIET)$(MAKE) -C vboxguest clean
91 rm -f vboxguest.*o
92
93clean-vboxsf:
94 + $(VBOX_QUIET_SH)if [ -d vboxsf ]; then \
95 $(MAKE) -C vboxsf clean; \
96 fi
97 rm -f vboxsf.*o
98
99clean-vboxvideo:
100 + $(VBOX_QUIET_SH)if [ -d vboxvideo ]; then \
101 $(MAKE) -C vboxvideo clean; \
102 fi
103 rm -f vboxvideo.*o
104
105clean: clean-vboxguest clean-vboxsf clean-vboxvideo
106
107check:
108 $(VBOX_QUIET)$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
109
110unload:
111 $(VBOX_QUIET)/sbin/rmmod vboxvideo || true
112 $(VBOX_QUIET)/sbin/rmmod vboxvfs || true
113 $(VBOX_QUIET)/sbin/rmmod vboxsf || true
114 $(VBOX_QUIET)/sbin/rmmod vboxguest || true
115
116load: unload
117 $(VBOX_QUIET)/sbin/insmod vboxguest.ko
118 $(VBOX_QUIET)if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
119 $(VBOX_QUIET)if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
120
121.PHONY: all install clean check unload load \
122 vboxguest vboxsf vboxvideo \
123 install-vboxguest install-vboxsf install-vboxvideo \
124 clean-vboxguest clean-vboxsf clean-vboxvideo
125
126endif # ! KERNELRELEASE
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette