summaryrefslogtreecommitdiffstats
path: root/src/VBox/Additions/linux/Makefile
blob: 113ac48ee6113e8bb96aa8b89bb35c4c9bd769b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#
# Makefile for the VirtualBox Linux Guest Drivers.
#

#
# Copyright (C) 2009-2019 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#

ifneq ($(KBUILD_EXTMOD),)

# Building from kBuild (make -C <kernel_directory> M=`pwd`).
# KBUILD_EXTMOD is set to $(M) in this case.

obj-m = vboxguest/ vboxsf/ vboxvideo/

else # ! KBUILD_EXTMOD

KBUILD_VERBOSE =

vboxguest:
	@echo "=== Building 'vboxguest' module ==="
	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
	@if [ -f vboxguest/vboxguest.ko ]; then \
	    cp vboxguest/vboxguest.ko .; \
	 else \
	    cp vboxguest/vboxguest.o .; \
	 fi
	@echo

vboxsf: vboxguest
	@if [ -d vboxsf ]; then \
	    if [ -f vboxguest/Module.symvers ]; then \
	        cp vboxguest/Module.symvers vboxsf; \
	    fi; \
	    echo "=== Building 'vboxsf' module ==="; \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf || exit 1; \
	    if [ -f vboxsf/vboxsf.ko ]; then \
	        cp vboxsf/vboxsf.ko .; \
	    else \
	        cp vboxsf/vboxsf.o .; \
	    fi; \
	    echo; \
	fi

vboxvideo:
	@if [ -d vboxvideo ]; then \
	    if [ -f vboxguest/Module.symvers ]; then \
	        cp vboxguest/Module.symvers vboxvideo; \
	    fi; \
	    echo "=== Building 'vboxvideo' module ==="; \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo || exit 1; \
	    if [ -f vboxvideo/vboxvideo.ko ]; then \
	        cp vboxvideo/vboxvideo.ko .; \
	    elif [ -f vboxvideo/vboxvideo.o ]; then \
	        cp vboxvideo/vboxvideo.o .; \
	    fi; \
	    echo; \
	fi

all: vboxguest vboxsf vboxvideo

install:
	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
	@if [ -d vboxsf ]; then \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
	fi
	@if [ -d vboxvideo ]; then \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
	fi

clean:
	@$(MAKE) -C vboxguest clean
	@if [ -d vboxsf ]; then \
	    $(MAKE) -C vboxsf clean; \
	fi
	@if [ -d vboxvideo ]; then \
	    $(MAKE) -C vboxvideo clean; \
	fi
	rm -f vboxguest.*o vboxsf.*o vboxvideo.*o

check:
	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check

load:
	@/sbin/rmmod vboxvideo || true
	@/sbin/rmmod vboxvfs || true
	@/sbin/rmmod vboxsf || true
	@/sbin/rmmod vboxguest || true
	@/sbin/insmod vboxguest.ko
	@if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
	@if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi

.PHONY: vboxguest vboxsf vboxvideo all install clean check load

endif # ! KBUILD_EXTMOD