Makefile revision 210db75d2af02f67370c4a1be6570484d29eb394
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# $Revision$
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen## @file
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# VirtualBox Guest Additions Module Makefile.
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen#
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen#
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# Copyright (C) 2006-2014 Oracle Corporation
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen#
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# This file is part of VirtualBox Open Source Edition (OSE), as
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# available from http://www.virtualbox.org. This file is free software;
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# you can redistribute it and/or modify it under the terms of the GNU
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# General Public License (GPL) as published by the Free Software
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# Foundation, in version 2 as it comes in the "COPYING" file of the
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen#
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen# Linux kbuild sets this to our source directory if we are called from there
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlenobj ?= $(CURDIR)
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatleninclude $(obj)/Makefile.include.header
47f8b701702955b901c0fbbb5f8b4217016bb853Lubos Kosco
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders HatlenMOD_NAME = vboxguest
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders HatlenMOD_OBJS = \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen VBoxGuest-linux.o \
c89e30e197b074b11a97a612f071604923fcc168Trond Norbye VBoxGuest.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik VBoxGuest2.o \
c89e30e197b074b11a97a612f071604923fcc168Trond Norbye GenericRequest.o \
c89e30e197b074b11a97a612f071604923fcc168Trond Norbye HGCMInternal.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen Init.o \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco PhysHeap.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik SysHlp.o \
c89e30e197b074b11a97a612f071604923fcc168Trond Norbye VMMDev.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/alloc-r0drv.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik r0drv/initterm-r0drv.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik r0drv/memobj-r0drv.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/mpnotification-r0drv.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/powernotification-r0drv.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/linux/alloc-r0drv-linux.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/linux/assert-r0drv-linux.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik r0drv/linux/initterm-r0drv-linux.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen r0drv/linux/memobj-r0drv-linux.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen r0drv/linux/memuserkernel-r0drv-linux.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen r0drv/linux/mp-r0drv-linux.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen r0drv/linux/mpnotification-r0drv-linux.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen r0drv/linux/process-r0drv-linux.o \
2aef10a5d2ebeaeb6b9cb6fed41933d19a76292fTrond Norbye r0drv/linux/semevent-r0drv-linux.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner r0drv/linux/semeventmulti-r0drv-linux.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner r0drv/linux/semfastmutex-r0drv-linux.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner r0drv/linux/semmutex-r0drv-linux.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner r0drv/linux/spinlock-r0drv-linux.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner r0drv/linux/thread-r0drv-linux.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik r0drv/linux/thread2-r0drv-linux.o \
f60d84bfe9ece4779c642dfe4849acd35ade9388Trond Norbye r0drv/linux/time-r0drv-linux.o \
f60d84bfe9ece4779c642dfe4849acd35ade9388Trond Norbye r0drv/linux/timer-r0drv-linux.o \
010ed6481353f3665275befa12f58212b248f15bTrond Norbye r0drv/linux/RTLogWriteDebugger-r0drv-linux.o \
f60d84bfe9ece4779c642dfe4849acd35ade9388Trond Norbye r0drv/generic/semspinmutex-r0drv-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik common/alloc/alloc.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik common/err/RTErrConvertFromErrno.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik common/err/RTErrConvertToErrno.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner common/log/log.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner common/log/logellipsis.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner common/log/logrel.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner common/log/logrelellipsis.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner common/log/logcom.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik common/log/logformat.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik common/misc/RTAssertMsg1Weak.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2Add.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2AddWeak.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2AddWeakV.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2Weak.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/RTAssertMsg2WeakV.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/assert.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/misc/thread.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/RTStrCopy.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/RTStrCopyEx.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/RTStrCopyP.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/strformat.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/strformatrt.o \
9088add4cb246b415c19479e94c10f0281d6c92fLubos Kosco common/string/strformattype.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/strprintf.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen common/string/strtonum.o \
9088add4cb246b415c19479e94c10f0281d6c92fLubos Kosco common/table/avlpv.o \
9088add4cb246b415c19479e94c10f0281d6c92fLubos Kosco common/time/time.o \
d8686bd0a12811810b7cf93beda3c01b635c1a81Knut Anders Hatlen generic/RTAssertShouldPanic-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTLogWriteStdErr-stub-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTLogWriteStdOut-stub-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTSemEventWait-2-ex-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTSemEventWaitNoResume-2-ex-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTSemEventMultiWait-2-ex-generic.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik generic/RTSemEventMultiWaitNoResume-2-ex-generic.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner generic/errvars-generic.o \
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens Elkner VBox/log-vbox.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik VBox/logbackdoor.o
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvikifeq ($(BUILD_TARGET_ARCH),x86)
772d81ed3968926175c33c799196ba28082f0de6Jorgen AustvikMOD_OBJS += \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik common/math/gcc/divdi3.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik common/math/gcc/moddi3.o \
772d81ed3968926175c33c799196ba28082f0de6Jorgen Austvik common/math/gcc/udivdi3.o \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik common/math/gcc/umoddi3.o \
499692667e24778cf85bd08d2572f8bbd320ef19Lubos Kosco common/math/gcc/qdivrem.o
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoendif
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikifeq ($(BUILD_TARGET_ARCH),amd64)
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen AustvikMOD_OBJS += common/alloc/heapsimple.o
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikendif
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen AustvikMOD_DEFS = -DVBOX -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_GUEST \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik -DIN_GUEST_R0 -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST \
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik -DVBOX_WITH_HGCM
56c70b1779694ab3e83d294e3dcb839fe4374c97Patrick Higginsifeq ($(BUILD_TARGET_ARCH),amd64)
56c70b1779694ab3e83d294e3dcb839fe4374c97Patrick Higgins MOD_DEFS += -DRT_ARCH_AMD64
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikelse
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik MOD_DEFS += -DRT_ARCH_X86
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikendif
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikifeq ($(BUILD_TARGET_ARCH),amd64)
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik MOD_DEFS += -DVBOX_WITH_64_BITS_GUESTS
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvikendif
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens ElknerMOD_INCL = $(addprefix -I$(KBUILD_EXTMOD),/ /include /r0drv/linux)
8ea4b8d9796de43443cdf7b66e3f185aedf7b570Jens ElknerMOD_INCL += $(addprefix -I$(KBUILD_EXTMOD)/vboxguest,/ /include /r0drv/linux)
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik
b9f591b5eae280782a5927f84206e1a04303d832Lubos Koscoifneq ($(wildcard $(KBUILD_EXTMOD)/vboxguest),)
c5ad3d8c26756adff5057ea2dc89fa3f6a2b79c3Jorgen Austvik MANGLING := $(KBUILD_EXTMOD)/vboxguest/include/VBox/VBoxGuestMangling.h
499692667e24778cf85bd08d2572f8bbd320ef19Lubos Koscoelse
499692667e24778cf85bd08d2572f8bbd320ef19Lubos Kosco MANGLING := $(KBUILD_EXTMOD)/include/VBox/VBoxGuestMangling.h
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoendif
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoifeq ($(KERN_VERSION),24)
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco ## @todo move to MOD_DEFS when we have finished refactoring
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco MOD_CFLAGS = -DEXPORT_SYMTAB
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoelse
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco MOD_CFLAGS = -Wno-declaration-after-statement -include $(MANGLING)
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoendif
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos KoscoMOD_CLEAN = . linux r0drv generic r0drv/linux r0drv/generic VBox \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco common/alloc common/err common/log common/math/gcc common/misc \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco common/string common/time
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscoinclude $(obj)/Makefile.include.footer
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Koscocheck: $(MOD_NAME)
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco @if ! readelf -p __ksymtab_strings vboxguest.ko | grep -E "\[.*\] *(RT|g_..*RT.*)"; then \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco echo "All exported IPRT symbols are properly renamed!"; \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco else \
3ad4470221a3aaf1bd926f382f0ac8fc2eee7fa6Lubos Kosco echo "error: Some exported IPRT symbols was not properly renamed! See above." >&2; \
a58cca690026b290ec7edea9f97951da3dcba3fdLubos Kosco false; \
499692667e24778cf85bd08d2572f8bbd320ef19Lubos Kosco fi
00c78048c658bae03904b3e59e8e7640eb93572dLubos Kosco