VirtualBox

source: vbox/trunk/src/VBox/HostDrivers/Makefile.kmk@ 32189

Last change on this file since 32189 was 32183, checked in by vboxsync, 14 years ago

Linux Installer/Additions: attempt to properly register the host/guest kernel modules at DKMS and use the setup function of the service script to compile the modules instead of doing this separately in the installer scripts

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1# $Id: Makefile.kmk 32183 2010-09-01 15:53:42Z vboxsync $
2## @file
3# Top-level makefile for the VBox Host drivers.
4#
5
6#
7# Copyright (C) 2006-2010 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21# Include sub-makefiles.
22include $(PATH_SUB_CURRENT)/Support/Makefile.kmk
23
24if !defined(VBOX_ONLY_DOCS) && !defined(VBOX_ONLY_TESTSUITE)
25 ifdef VBOX_WITH_USB
26 include $(PATH_SUB_CURRENT)/VBoxUSB/Makefile.kmk
27 endif
28 if1of ($(KBUILD_TARGET), darwin solaris win linux freebsd)
29 ifdef VBOX_WITH_NETFLT
30 include $(PATH_SUB_CURRENT)/VBoxNetFlt/Makefile.kmk
31 endif
32 endif
33 if1of ($(KBUILD_TARGET), darwin solaris linux freebsd)
34 ifdef VBOX_WITH_NETADP
35 include $(PATH_SUB_CURRENT)/VBoxNetAdp/Makefile.kmk
36 endif
37 endif
38 ifeq ($(KBUILD_TARGET),darwin)
39 include $(PATH_SUB_CURRENT)/darwin/Makefile.kmk
40 endif
41
42 if1of ($(KBUILD_TARGET),linux freebsd)
43 #
44 # Install the Makefile for module compliation on Linux and FreeBSD hosts
45 #
46 INSTALLS += HostDrivers-src
47 HostDrivers-src_INST = bin/src/
48 HostDrivers-src_MODE = a+r,u+w
49 HostDrivers-src_SOURCES.linux = linux/Makefile
50 HostDrivers-src_SOURCES.freebsd = freebsd/Makefile
51 endif
52
53 if1of ($(KBUILD_TARGET),linux)
54 INSTALLS += HostDrivers-dkms-sh
55 HostDrivers-dkms-sh_INST = bin/src/
56 HostDrivers-dkms-sh_MODE = a+rx,u+w
57 HostDrivers-dkms-sh_SOURCES = $(PATH_HostDrivers-dkms-sh)/do_dkms
58 HostDrivers-dkms-sh_CLEAN = $(PATH_HostDrviers-dkms-sh)/do_dkms
59
60 INSTALLS += HostDrivers-dkms-src
61 HostDrivers-dkms-src_INST = bin/src/
62 HostDrivers-dkms-src_MODE = a+r,u+w
63 HostDrivers-dkms-src_SOURCES = $(PATH_HostDrivers-dkms-src)/dkms.conf
64 HostDrivers-dkms-src_CLEAN = $(PATH_HostDrivers-dkms-src)/dkms.conf
65 endif
66
67 if1of ($(KBUILD_TARGET),freebsd)
68 #
69 # Install the export_modules script for tar'ing the module sources on FreeBSD hosts
70 #
71 INSTALLS += HostDrivers-sh
72 HostDrivers-sh_INST = bin/
73 HostDrivers-sh_MODE = a+rx,u+w
74 HostDrivers-sh_SOURCES.freebsd = freebsd/export_modules
75 endif
76endif # !defined(VBOX_ONLY_DOCS) && !defined(VBOX_ONLY_TESTSUITE)
77
78# Scripts needed for building the kernel modules
79
80$$(PATH_HostDrivers-dkms-src)/dkms.conf: \
81 $(PATH_SUB_CURRENT)/linux/dkms.conf \
82 $(VBOX_VERSION_STAMP) \
83 | $$(dir $$@)
84 $(call MSG_TOOL,Creating,,$@)
85 $(QUIET)$(SED) \
86 -e "s;_VERSION_;${VBOX_VERSION_STRING};g" \
87 -e "s;_OMIT_VBOXNETFLT_;$(if $(VBOX_WITH_NETFLT),,#);g" \
88 -e "s;_OMIT_VBOXNETADP_;$(if $(VBOX_WITH_NETADP),,#);g" \
89 --output $@ $<
90
91$$(PATH_HostDrivers-dkms-sh)/do_dkms: \
92 $(PATH_SUB_CURRENT)/linux/do_dkms \
93 $(VBOX_VERSION_STAMP) \
94 | $$(dir $$@)
95 $(call MSG_TOOL,Creating,,$@)
96 $(QUIET)$(SED) \
97 -e "s;_VERSION_;${VBOX_VERSION_STRING};g" \
98 -e "s;_MODULE_;vboxhost;g" \
99 -e "s;_OLDMODULES_;vboxhost vboxdrv vboxnetflt vboxnetadp;g" \
100 --output $@ $<
101
102# Let kBuild generate the rules.
103include $(KBUILD_PATH)/subfooter.kmk
104
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