edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# Makefile for the VirtualBox Linux Host Drivers.
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2008-2011 Oracle Corporation
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# available from http://www.virtualbox.org. This file is free software;
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# you can redistribute it and/or modify it under the terms of the GNU
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# General Public License (GPL) as published by the Free Software
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync#
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncifneq ($(KBUILD_EXTMOD),)
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# DKMS
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncobj-m = vboxdrv/
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetflt/Makefile),)
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync obj-m += vboxnetflt/
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncendif
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncifneq ($(wildcard $(KBUILD_EXTMOD)/vboxnetadp/Makefile),)
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync obj-m += vboxnetadp/
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncendif
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsyncifneq ($(wildcard $(KBUILD_EXTMOD)/vboxpci/Makefile),)
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync obj-m += vboxpci/
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsyncendif
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncelse # ! KBUILD_EXTMOD
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# convenience Makefile without DKMS
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
01ea175f55740168d1dd0af3277d3b86a30b4f91vboxsyncKBUILD_VERBOSE =
01ea175f55740168d1dd0af3277d3b86a30b4f91vboxsync
edd67c61375d89ff863e754caff339cd1ac77b38vboxsyncall:
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @echo "*** Building 'vboxdrv' module ***"
01ea175f55740168d1dd0af3277d3b86a30b4f91vboxsync @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @cp vboxdrv/vboxdrv.ko .
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @echo
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @if [ -d vboxnetflt ]; then \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync if [ -f vboxdrv/Module.symvers ]; then \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync cp vboxdrv/Module.symvers vboxnetflt; \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync fi; \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync echo "*** Building 'vboxnetflt' module ***"; \
01ea175f55740168d1dd0af3277d3b86a30b4f91vboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt; \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync cp vboxnetflt/vboxnetflt.ko .; \
9040f019271f91b98e1320c0a8c38a42636e3979vboxsync echo; \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync fi
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync @if [ -d vboxnetadp ]; then \
1b959a8e2774712c95bd7628282e9e41f0c5f03evboxsync if [ -f vboxdrv/Module.symvers ]; then \
1b959a8e2774712c95bd7628282e9e41f0c5f03evboxsync cp vboxdrv/Module.symvers vboxnetadp; \
1b959a8e2774712c95bd7628282e9e41f0c5f03evboxsync fi; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync echo "*** Building 'vboxnetadp' module ***"; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync cp vboxnetadp/vboxnetadp.ko .; \
9040f019271f91b98e1320c0a8c38a42636e3979vboxsync echo; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync fi
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync @if [ -d vboxpci ]; then \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync if [ -f vboxdrv/Module.symvers ]; then \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync cp vboxdrv/Module.symvers vboxpci; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync fi; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync echo "*** Building 'vboxpci' module ***"; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync cp vboxpci/vboxpci.ko .; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync echo; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync fi
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsyncinstall:
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsync @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsync @if [ -d vboxnetflt ]; then \
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsync fi
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync @if [ -d vboxnetadp ]; then \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync fi
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync @if [ -d vboxpci ]; then \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync fi
f6bee36bd88580a116ce05e7c58e7799c599a782vboxsync
edd67c61375d89ff863e754caff339cd1ac77b38vboxsyncclean:
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @$(MAKE) -C vboxdrv clean
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync @if [ -d vboxnetflt ]; then \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync $(MAKE) -C vboxnetflt clean; \
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync fi
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync @if [ -d vboxnetadp ]; then \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync $(MAKE) -C vboxnetadp clean; \
6a008ce8150c1391d9e0dda0cdf9485b3c806034vboxsync fi
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync @if [ -d vboxpci ]; then \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync $(MAKE) -C vboxpci clean; \
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync fi
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync rm -f vboxdrv.ko vboxnetflt.ko vboxnetadp.ko vboxpci.ko
edd67c61375d89ff863e754caff339cd1ac77b38vboxsync
715e49c31b15c23c17a9ce3be42a75e7c48d4b78vboxsynccheck:
715e49c31b15c23c17a9ce3be42a75e7c48d4b78vboxsync @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv check
715e49c31b15c23c17a9ce3be42a75e7c48d4b78vboxsync
339a5a0150dcebd28f8aab6f2e3c293d95405ca9vboxsyncunload:
df8125e892bb3613b87c0852affe4578a8edb749vboxsync @for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync if grep "^$$module " /proc/modules >/dev/null; then \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync echo "Removing previously installed $$module module"; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync /sbin/rmmod $$module; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync fi; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync done
339a5a0150dcebd28f8aab6f2e3c293d95405ca9vboxsync
339a5a0150dcebd28f8aab6f2e3c293d95405ca9vboxsyncload: unload
c285785ffc9f35513e0c6e7e2a05df3090dc919cvboxsync @for module in vboxdrv vboxnetflt vboxnetadp vboxpci; do \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync if test -f $$module.ko; then \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync echo "Installing $$module module"; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync /sbin/insmod $$module.ko; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync fi; \
fe0826de96da565f5a285504b2210f269b8a2de9vboxsync done
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncendif # ! KBUILD_EXTMOD