Makefile revision 8ac4ac6569dd1377414fbf9369516addbb47b789
333fe280eb574439ef3f828d8755dd9e243ec855Andreas Gustafsson#
276e28f813ffef042d5a6e9f3373ef4e2ad37996Mark Andrews# Makefile for the VirtualBox Linux Guest Drivers.
a6a23642eaf383add7a0be045c01e7dd8278ccafAndreas Gustafsson#
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafsson
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Copyright (C) 2009-2010 Oracle Corporation
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# This file is part of VirtualBox Open Source Edition (OSE), as
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# available from http://www.virtualbox.org. This file is free software;
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# you can redistribute it and/or modify it under the terms of the GNU
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# General Public License (GPL) as published by the Free Software
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Foundation, in version 2 as it comes in the "COPYING" file of the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsifneq ($(KBUILD_EXTMOD),)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# DKMS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsobj-m = vboxguest/ vboxsf/ vboxvideo/
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewselse # ! KBUILD_EXTMOD
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsKBUILD_VERBOSE =
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsall:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @echo "*** Building 'vboxguest' module ***"
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @if [ -f vboxguest/vboxguest.ko ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxguest/vboxguest.ko .; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews else \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxguest/vboxguest.o .; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @echo
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @if [ -d vboxsf ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews if [ -f vboxguest/Module.symvers ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxguest/Module.symvers vboxsf; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews echo "*** Building 'vboxsf' module ***"; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews if [ -f vboxsf/vboxsf.ko ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxsf/vboxsf.ko .; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews else \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxsf/vboxsf.o .; \
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater fi; \
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater echo; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @if [ -d vboxvideo ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews if [ -f vboxguest/Module.symvers ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxguest/Module.symvers vboxvideo; \
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafsson fi; \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews echo "*** Building 'vboxvideo' module ***"; \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo; \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews if [ -f vboxvideo/vboxvideo.ko ]; then \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews cp vboxvideo/vboxvideo.ko .; \
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updater else \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews cp vboxvideo/vboxvideo.o .; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi; \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews echo; \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews fi
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsinstall:
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest install
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @if [ -d vboxsf ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxsf install; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews @if [ -d vboxvideo ]; then \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxvideo install; \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews fi
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsclean:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @$(MAKE) -C vboxguest clean
0ddeab91cf922fd977f37318620b4c69dccf8364Automatic Updater @if [ -d vboxsf ]; then \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews $(MAKE) -C vboxsf clean; \
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater fi
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater @if [ -d vboxvideo ]; then \
7a7a44400d49122d4cc207b43922a7b9c5afe443Automatic Updater $(MAKE) -C vboxvideo clean; \
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson fi
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews rm -f vboxguest.*o vboxsf.*o vboxvideo.*o
e2e4d321999340802f77adaacd19c797d04b4b95Automatic Updater
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewscheck:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxguest check
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsload:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @/sbin/rmmod vboxvideo || true
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @/sbin/rmmod vboxvfs || true
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews @/sbin/rmmod vboxsf || true
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews @/sbin/rmmod vboxguest || true
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews @/sbin/insmod vboxguest.ko
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson @if [ -f vboxsf.ko ]; then /sbin/insmod vboxsf.ko; fi
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson @if [ -f vboxvideo.ko ]; then /sbin/insmod vboxvideo.ko; fi
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updaterendif # ! KBUILD_EXTMOD
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater