summaryrefslogtreecommitdiff
path: root/src/VBox/HostDrivers/linux/Makefile
blob: 8c5fa1cb4bf16f189416e902f187dcae03ef91a8 (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
104
105
106
107
108
109
110
111
112
113
114
115
#
# Makefile for the VirtualBox Linux Host Drivers.
#

#
#
# Copyright (C) 2008-2011 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),)

# DKMS

obj-m = vboxdrv/
ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetflt/Makefile),)
 obj-m += vboxnetflt/
endif
ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetadp/Makefile),)
 obj-m += vboxnetadp/
endif
ifneq ($(wildcard $(KBUILD_EXTMOD)/vboxpci/Makefile),)
 obj-m += vboxpci/
endif
else # ! KBUILD_EXTMOD

# convenience Makefile without DKMS

KBUILD_VERBOSE =

all:
	@echo "*** Building 'vboxdrv' module ***"
	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv
	@cp vboxdrv/vboxdrv.ko .
	@echo
	@if [ -d vboxnetflt ]; then \
	    if [ -f vboxdrv/Module.symvers ]; then \
	        cp vboxdrv/Module.symvers vboxnetflt; \
	    fi; \
	    echo "*** Building 'vboxnetflt' module ***"; \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt; \
	    cp vboxnetflt/vboxnetflt.ko .; \
	    echo; \
	fi
	@if [ -d vboxnetadp ]; then \
	    if [ -f vboxdrv/Module.symvers ]; then \
	        cp vboxdrv/Module.symvers vboxnetadp; \
	    fi; \
	    echo "*** Building 'vboxnetadp' module ***"; \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp; \
	    cp vboxnetadp/vboxnetadp.ko .; \
	    echo; \
	fi
	@if [ -d vboxpci ]; then \
	    if [ -f vboxdrv/Module.symvers ]; then \
	        cp vboxdrv/Module.symvers vboxpci; \
	    fi; \
	    echo "*** Building 'vboxpci' module ***"; \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci; \
	    cp vboxpci/vboxpci.ko .; \
	    echo; \
	fi

install:
	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install
	@if [ -d vboxnetflt ]; then \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \
	fi
	@if [ -d vboxnetadp ]; then \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \
	fi
	@if [ -d vboxpci ]; then \
	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \
	fi

clean:
	@$(MAKE) -C vboxdrv clean
	@if [ -d vboxnetflt ]; then \
	    $(MAKE) -C vboxnetflt clean; \
	fi
	@if [ -d vboxnetadp ]; then \
	    $(MAKE) -C vboxnetadp clean; \
	fi
	@if [ -d vboxpci ]; then \
	    $(MAKE) -C vboxpci clean; \
	fi
	rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko vboxpci.ko 

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

unload:
	@for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do \
		if grep "^$$module " /proc/modules >/dev/null; then \
			echo "Removing previously installed $$module module"; \
			/sbin/rmmod $$module; \
		fi; \
	done

load: unload
	@for module in vboxdrv vboxnetflt vboxnetadp vboxpci; do \
		if test -f $$module.ko; then \
			echo "Installing $$module module"; \
			/sbin/insmod $$module.ko; \
		fi; \
	done

endif # ! KBUILD_EXTMOD