Makefile.kmk revision cafb2a317e62d2a683cf94997d60bd442194e33d
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync# Sub-Makefile for the IPRT (IPRT).
e64031e20c39650a7bc902a3e1aba613b9415deevboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# available from http://www.virtualbox.org. This file is free software;
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# you can redistribute it and/or modify it under the terms of the GNU
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# General Public License (GPL) as published by the Free Software
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# The contents of this file may alternatively be used under the terms
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# of the Common Development and Distribution License Version 1.0
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# VirtualBox OSE distribution, in which case the provisions of the
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# CDDL are applicable instead of those of the GPL.
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsync# You may elect to license modified versions of this file under the
43747b1f0bc8302a238fb35e55857a5e9aa1933dvboxsync# terms and conditions of either the GPL or the CDDL or both.
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
b0db50948c349fa76655abf252f7946b515e8204vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
2f0d866e126dd288169fed591c259c1c6b4016e5vboxsync# additional information or have any questions.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncDEPTH ?= ../../..
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncSUB_DEPTH = .
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
f5e53763b0a581b0299e98028c6c52192eb06785vboxsyncifdef VBOX_ONLY_ADDITIONS
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync # Only build the additions, sort out the legacy names first.
4569bf0ad094b40d2e177299a00d37e94d28616cvboxsync ifeq ($(KBUILD_TARGET),win)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES = RuntimeW32GuestR0 RuntimeW32GuestR3 RuntimeW32NT4GuestR0
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync LIBRARIES = RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync #LIBRARIES.os2 = RuntimeOS2Warp3GuestR0
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync #LIBRARIES.win = RuntimeW32NT4GuestR0
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync ifndef VBOX_WITH_ADDITION_DRIVERS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync # Normal build.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync BLDPROGS = uniread
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES = RuntimeR3 RuntimeR0 RuntimeGC RuntimeEFCPP RuntimeR3NoCRTGCC
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifdef VBOX_WITH_VBOXDRV
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES += RuntimeR0Drv
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifdef VBOX_WITH_ADDITIONS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifdef VBOX_WITH_WIN32_ADDITIONS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES += RuntimeW32GuestR0 RuntimeW32GuestR3 RuntimeW32NT4GuestR0
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifneq ($(KBUILD_TARGET),win)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync #LIBRARIES.os2 = RuntimeOS2Warp3GuestR0
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync #LIBRARIES.win = RuntimeW32NT4GuestR0
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync ifndef VBOX_WITH_ADDITION_DRIVERS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync endif # VBOX_WITH_ADDITIONS
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync LIBRARIES.l4 = RuntimeR3L4 RuntimeLnxHostR3
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync DLLS = VBoxRT
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync OTHER_CLEAN = \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $(PATH_TARGET)/errmsgdata.h \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $(PATH_TARGET)/errmsgcomdata.h \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $(PATH_TARGET)/Doxyfile \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync $(PATH_TARGET)/Doxyfile.dep \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(PATH_TARGET)/docs.iprt
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# Unicode Specification reader used to regenerate unidata.cpp.
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncuniread_TEMPLATE = VBOXBLDPROG
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncuniread_INCS = include
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Win64 assembly sources.
44a2ecaf2d0fc196ab76cab13b3f909299e386d1vboxsyncRuntimeWin64ASM_SOURCES = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# Win32 assembly sources.
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeWin32ASM_SOURCES = \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync# RuntimeR3 - Static Runtime for Ring-3 executables.
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_TEMPLATE = VBOXR3EXE
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_SDKS.win = WINPSDK W2K3DDK
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsyncifdef IPRT_WITH_KSTUFF
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsync RuntimeR3_DEFS += LDR_WITH_KLDR
eb8371e8297aff06a1982468835ff62e1ab77b30vboxsyncifdef VBOX_MAIN_RELEASE_LOG ## @todo (dmik): temporary, until RTThreadSelf/RTThreadAdopt are properly updated
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync RuntimeR3_DEFS += RTCRITSECT_STRICT
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_INCS = \
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsyncifdef IPRT_WITH_KSTUFF
a9f41cb889f53e8407561a6155052c441eb0fc5fvboxsync RuntimeR3_INCS += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(L4_INCDIR)
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_SOURCES = \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync# RuntimeR3_SOURCES += common/time/timesupA.asm
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync RuntimeR3_SOURCES += common/time/timesupref.cpp
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncifdef IPRT_WITH_KSTUFF
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync RuntimeR3_SOURCES += \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync# VBox specific stuff.
ead016c68c61b5f2e1fe4d237054eebea9327d4bvboxsyncRuntimeR3_SOURCES += \
96a7e06717e2d7398642eadb5ebab1bf13fbe2dbvboxsyncifneq ($(KBUILD_TARGET),win)
7ccfefe49db4cd93c3701d7b60873ebf404b5b87vboxsyncRuntimeR3_SOURCES += \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR3_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
f4aad55f8addd816ef005845842a2418bbdc3ea2vboxsyncifdef RT_NEW_LINUX_MUTEX_CODE
fc78e01f665145ab3641c5f8095e9ae984ddcb84vboxsync## @todo Make BSD sched.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync## PORTME: Porters add their selection of platform specific files for Ring-3 here.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# L4 RuntimeR3 subtarget since L4 headers won't work with VBOXR3.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3L4_TEMPLATE = VBOXR3NP
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3L4_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF LDR_WITH_PE
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncifneq ($(KBUILD_TARGET_ARCH),amd64)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3L4_DEFS += __PIC__
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3L4_INCS = \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(L4_INCDIR)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR3L4_SOURCES = \
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# RuntimeGuestR3 - Guest Additions Runtime (static).
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# (The KBUILD_HOST inheritance here is for l4 cross building the linux
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync# additions, while .x86 is for cross building x86 while targeting amd64.)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_TEMPLATE := VBOXGUESTR3LIB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncRuntimeGuestR3_INCS := $(RuntimeR3_INCS)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_SOURCES := $(filter-out \
36411046d85fccaa66061120a064225fd1b5ae01vboxsync , $(RuntimeR3_SOURCES))
d7125f3a1b435761c393f9ec406e85a73ae2a3e7vboxsyncRuntimeGuestR3_SOURCES += \
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST).x86 := $(RuntimeR3_SOURCES.$(KBUILD_HOST).x86)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
b0db50948c349fa76655abf252f7946b515e8204vboxsync# initialization and can be linked into an .so. Intended
b0db50948c349fa76655abf252f7946b515e8204vboxsync# for X11 drivers, GRADD and similar.
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_TEMPLATE := VBOXGUESTR3DLL
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS)) RT_MINI
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
b0db50948c349fa76655abf252f7946b515e8204vboxsyncRuntimeGuestR3Mini_SOURCES = \
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsync# VBox specific stuff.
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeGuestR3Mini_SOURCES += \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync# RuntimeW32GuestR3 - Win32 guest program runtime.
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeW32GuestR3_TEMPLATE = VBOXW32GUESTR3LIB
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeW32GuestR3_SDKS = WINPSDK W2K3DDK
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncRuntimeW32GuestR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsyncifdef IPRT_WITH_KSTUFF
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync RuntimeW32GuestR3_DEFS += LDR_WITH_KLDR
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeW32GuestR3_SOURCES = $(RuntimeR3_SOURCES.win) $(RuntimeR3_SOURCES)
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeW32GuestR3_INCS = $(RuntimeR3_INCS.win) $(RuntimeR3_INCS)
a39ea3668b7019c23a68936259545f9b71bce1aavboxsync# RuntimeLnxHostR3 Linux host program runtime
da3503c04ce76e653401396fe2795a9bc2427a1dvboxsyncRuntimeLnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncRuntimeLnxHostR3_DEFS = IN_RT_R3 IN_SUP_R3 RT_WITH_VBOX RT_NO_GIP
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeLnxHostR3_SOURCES = \
ee4d840f54fd2dcea8a73b1b86d5ec0db370b05dvboxsync $(RuntimeR3_SOURCES.linux.$(KBUILD_TARGET_ARCH)) \
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsync $(RuntimeR3_SOURCES)
cab115cfa31c584def7069312a1e23c3fc88533bvboxsyncRuntimeLnxHostR3_INCS = \
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync $(RuntimeR3_INCS.linux.$(KBUILD_TARGET_ARCH)) \
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync $(RuntimeR3_INCS)
cab115cfa31c584def7069312a1e23c3fc88533bvboxsync# VBoxRT - Shared Object / DLL version.
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_TEMPLATE = VBOXR3
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_SDKS.win = WINPSDK W2K3DDK VBOX_NTDLL
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncifeq ($(KBUILD_TARGET),darwin)
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_DEFS = $(RuntimeR3_DEFS) IN_SUP_R3 IN_SUP_R3
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_DEFS.$(KBUILD_TYPE) = $(RuntimeR3_DEFS.$(KBUILD_TYPE))
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_SOURCES = \
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $(RuntimeR3_SOURCES)
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_INCS = $(RuntimeR3_INCS)
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_INCS.$(KBUILD_TARGET) = $(RuntimeR3_INCS.$(KBUILD_TARGET))
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncVBoxRT_LIBS = \
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $(PATH_LIB)/SUPR3$(VBOX_SUFF_LIB) \
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $(PATH_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsyncifdef IPRT_WITH_KSTUFF
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync VBoxRT_LIBS += \
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync $(PATH_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsyncVBoxRT_LDFLAGS.darwin = -framework IOKit -install_name @executable_path/VBoxRT.dylib
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsyncifdef VBOX_USE_VCC80
0c4004948fca34f2db87e7b38013137e9472c306vboxsync -Wl,-whole-archive \
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB) \
0c4004948fca34f2db87e7b38013137e9472c306vboxsync -Wl,-no-whole-archive
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncifeq ($(KBUILD_TARGET),l4)
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncVBoxRT_LIBS += \
d4e9ccea0ea1ed303b5708ff94f6c202755f0dc6vboxsync $(L4_LIBDIR)/libl4sys.a \
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB)
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
71f6a34b72f9cc873da208630959de49df1a28a5vboxsync# This is used together with VBoxRT.
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncRuntimeR3NoCRTGCC_TEMPLATE = VBOXNOCRTGCC
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncRuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncRuntimeR3NoCRTGCC_INCS = include
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncRuntimeR3NoCRTGCC_SOURCES = \
0c4004948fca34f2db87e7b38013137e9472c306vboxsync## @todo stop using the old memcpy.c and memset.c code.
8f0fc87a72dee210b62acc9dd859a4bebf8bfb33vboxsync# RuntimeR0 - Ring0 library for VMMR0.
0c4004948fca34f2db87e7b38013137e9472c306vboxsyncRuntimeR0_TEMPLATE = VBOXR0
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncRuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncRuntimeR0_INCS = include
71f6a34b72f9cc873da208630959de49df1a28a5vboxsyncRuntimeR0_SOURCES = \
8cd2f2e64725096acb682f34a5568b7fb816eda7vboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
8cd2f2e64725096acb682f34a5568b7fb816eda7vboxsync# RuntimeR0_SOURCES += common/time/timesupA.asm
36411046d85fccaa66061120a064225fd1b5ae01vboxsync RuntimeR0_SOURCES += common/time/timesupref.cpp
9dca051a5f8ff457ef1692990f6ecfa280daf265vboxsyncRuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
26947320577c481b4afefdb0afbb855181e5b2e8vboxsyncRuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
26947320577c481b4afefdb0afbb855181e5b2e8vboxsyncifeq ($(filter-out darwin solaris freebsd,$(KBUILD_TARGET)),)
26947320577c481b4afefdb0afbb855181e5b2e8vboxsyncRuntimeR0_SOURCES += \
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncifeq ($(KBUILD_TARGET),l4)
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR0Drv_BLD_TRG = linux
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_BLD_TRG_ARCH = x86
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_BLD_TRG_CPU = i386
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsync# RuntimeR0Drv - Ring0 library for host drivers.
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_TEMPLATE = VBOXR0DRV
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_SDKS.win = W2K3DDK WINPSDKINCS
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
4c42ef40805493bd6d76103b90f71bcd6dbc0f00vboxsyncRuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 # why is IN_SUP_R0 here? because!
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncifdef VBOX_WITH_SOLARIS_VBI
36411046d85fccaa66061120a064225fd1b5ae01vboxsyncRuntimeR0Drv_SOURCES = \
0a3cfc177eb2cca0805ca23cf5f98b0080b2ec21vboxsync## @todo thread2-r0drv-linux.c, timer-r0drv-linux.c and assert-r0drv-linux.c
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR0Drv_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
ea779b55cc87f3e3fadddca4672c6697c82606edvboxsyncRuntimeR0Drv_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
# is in the backdoor logging and the lack of sup.h (which should be
RuntimeGuestR0_SDKS.win := W2K3DDKX86 WINPSDKINCS
RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
RuntimeGuestR0_SOURCES += VBox/logbackdoor.cpp
RuntimeGuestR0_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR0Drv_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
$(filter-out generic/RTLogWriteUser-generic.cpp,$(RuntimeR0Drv_SOURCES)) \
# RuntimeGC_SOURCES += common/time/timesupA.asm
RuntimeGC_SOURCES += common/time/timesupref.cpp
RuntimeGC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
RuntimeGC_SOURCES += os2/sys0.asm
RuntimeEFCPP_SOURCES = r3/alloc-ef-cpp.cpp
# errmsg.cpp depends on a generated header.
common/err/errmsg.cpp_INCS = $(PATH_TARGET)
win/errmsgwin.cpp_INCS = $(PATH_TARGET)
include $(KBUILD_PATH)/subfooter.kmk
ifneq ($(wildcard /usr/bin/chcon),)
$(PATH_BIN)/VBoxRT.so:
$(PATH_TARGET)/errmsgdata.h: common/err/errmsg.sed $(DEPTH)/include/iprt/err.h $(DEPTH)/include/VBox/err.h
# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
$(PATH_ROOT)/include/iprt \
$(PATH_ROOT)/include/iprt/nocrt \
$(PATH_ROOT)/include/iprt/nocrt/x86 \
$(PATH_ROOT)/include/iprt/nocrt/amd64 \
$(PATH_ROOT)/include/iprt/cdefs.h \
$(PATH_ROOT)/include/iprt/types.h \
$(PATH_ROOT)/include/iprt/runtime.h \
$(PATH_ROOT)/include/iprt/param.h \
$(PATH_ROOT)/include/iprt/assert.h \
$(PATH_ROOT)/include/iprt/asm.h \
$(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(DOXYGEN_INPUT_DIRS)))) ) \
DOXYGEN_OUTPUT = $(PATH_OUT)/docs/iprt
-include $(PATH_TARGET)/Doxyfile.dep
$(PATH_TARGET)/Doxyfile: Doxyfile Makefile.kmk \
$(RM) -f $@ $@.tmp $(PATH_TARGET)/Doxyfile.dep
$(APPEND) $@.tmp "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
$(APPEND) $@.tmp "INCLUDE_FILE_PATTERNS = *.cpp.h"
@$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_OUTPUT_PREV = $(DOXYGEN_OUTPUT)"
@$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_INPUT_PREV = $(DOXYGEN_INPUT)"
$(PATH_TARGET)/docs.iprt: $(PATH_TARGET)/Doxyfile $(DOXYGEN_INPUT) | $(call DIRDEP, $(DOXYGEN_OUTPUT))
$(RM) -f $(wildcard $(DOXYGEN_OUTPUT)/html/*) $(PATH_TARGET)/docs.iprt
$(APPEND) $(PATH_TARGET)/docs.iprt
docs: $(PATH_TARGET)/docs.iprt