Makefile.kmk revision c0b87dff0bb4ff4d4547b4ecd781da507f338ea8
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Sub-Makefile for the IPRT.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Copyright (C) 2006-2013 Oracle Corporation
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# available from http://www.virtualbox.org. This file is free software;
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# you can redistribute it and/or modify it under the terms of the GNU
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# General Public License (GPL) as published by the Free Software
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# The contents of this file may alternatively be used under the terms
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# of the Common Development and Distribution License Version 1.0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VirtualBox OSE distribution, in which case the provisions of the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# CDDL are applicable instead of those of the GPL.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# You may elect to license modified versions of this file under the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# terms and conditions of either the GPL or the CDDL or both.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncSUB_DEPTH = ../../..
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_ONLY_ADDITIONS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # Only build the additions, sort out the legacy names first.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_ADDITION_DRIVERS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeGuestR0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.x86 += RuntimeGuestR0NT4
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifneq ($(VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE),)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3-x86 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3Mini-x86 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3Shared-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncelse ifdef VBOX_ONLY_TESTSUITE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # Only build the testsuite.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsync LIBRARIES.solaris += RuntimeR0Stub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win += RuntimeR0Stub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.x86 += RuntimeR3VccTricks
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncelse ifdef VBOX_ONLY_DOCS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # Build docs only - need just regular R3 runtime.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeR3 RuntimeBldProg
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncelse ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsync # Build docs only - need just regular R3 runtime.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeBldProg
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.solaris += RuntimeR0Stub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncelse # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_TESTSUITE && !VBOX_ONLY_DOCS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # Normal build.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifndef VBOX_ONLY_EXTPACKS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync BLDPROGS += uniread
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeR3 RuntimeBldProg RuntimeR0 RuntimeEFCPP RuntimeR3NoCRTGCC
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.solaris += RuntimeR0Stub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win += RuntimeR0Stub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_RAW_MODE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeRC
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win += RuntimeRCStub
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_VBOXDRV
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeR0Drv
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_ADDITIONS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifneq ($(VBOX_WITH_COMPATIBLE_LINUX_GUEST_PACKAGE),)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3-x86 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3Mini-x86 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeGuestR3Shared-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_ADDITION_DRIVERS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES += RuntimeGuestR0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.x86 += RuntimeGuestR0NT4
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync endif # VBOX_WITH_ADDITIONS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win.x86 += RuntimeR3VccTricks
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync DLLS += VBoxRT
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef VBOX_WITH_32_ON_64_MAIN_API
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync DLLS += VBoxRT-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Always build the ntdll import libraries on windows.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLIBRARIES.win += RuntimeR3NtDll-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of (amd64, $(KBUILD_TARGET_ARCH) $(KBUILD_HOST_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync LIBRARIES.win += RuntimeR3NtDll-amd64
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Always build the import library.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIMPORT_LIBS += VBoxRTImp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Where the generated stuff goes.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_OUT_DIR := $(PATH_TARGET)/Runtime
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncBLDDIRS += $(IPRT_OUT_DIR)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncOTHER_CLEAN += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/errmsgdata.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/errmsgcomdata.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/errmsgvboxcomdata.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/Doxyfile.iprt \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/Doxyfile.iprt.dep \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/docs.iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBOX_PATH_RUNTIME_SRC := $(PATH_SUB_CURRENT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Set the defines that buildconfig.cpp needs. Its used by several targets.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_SCM_REV=$(VBOX_SVN_REV) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Unicode Specification reader used to regenerate unidata.cpp.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncuniread_TEMPLATE = VBOXBLDPROG
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncuniread_INCS = include
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Win64 assembly sources.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeWin64ASM_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Win32 assembly sources.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeWin32ASM_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# NoCRT sources (minus math stuff).
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeNoCrt_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR3 - Static Runtime for Ring-3 executables.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_TEMPLATE = VBoxR3Static
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_SDKS = VBOX_OPENSSL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX RT_NO_GIP
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#RuntimeR3_DEFS += RTMEM_WRAP_TO_EF_APIS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_KSTUFF
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_DEFS += LDR_WITH_KLDR
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_LZJB
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_DEFS += RTZIP_USE_LZJB
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_LZO
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_DEFS += RTZIP_USE_LZO
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET), win)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_DEFS += RT_WITH_ICONV_CACHE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_FUTEX_BASED_SEMS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_DEFS.linux += IPRT_WITH_FUTEX_BASED_SEMS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_INCS = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(SDK_VBOX_ZLIB_INCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_INCS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_KSTUFF
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3_INCS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_SOURCES = \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
bf7ab711aa3580b3a587dcbc4653fe78c99fff37vboxsync# RuntimeR3_SOURCES += common/time/timesupA.asm
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync RuntimeR3_SOURCES += common/time/timesupref.cpp
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncifdef IPRT_WITH_LZJB
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync RuntimeR3_SOURCES += common/misc/lzjb.c
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync# Some versions of GCC might require this.
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncifdef IPRT_WITH_KSTUFF
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync RuntimeR3_SOURCES += \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync# VBox specific stuff.
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncRuntimeR3_SOURCES += \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncifneq ($(KBUILD_TARGET),win)
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncRuntimeR3_SOURCES += \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncif1of ($(KBUILD_TARGET),freebsd linux netbsd openbsd solaris)
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncRuntimeR3_SOURCES += \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync $(if $(VBOX_WITH_DBUS),VBox/dbus.cpp,)
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsync $(if-expr defined(VBOX_WITH_NT_DIRENUM),r3/nt/direnum-r3-nt.cpp,r3/win/direnum-win.cpp) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_FUTEX_BASED_SEMS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifdef RT_NEW_LINUX_MUTEX_CODE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo Make BSD sched, implement RTMP*.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),ockless-,)generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## PORTME: Porters add their selection of platform specific files for Ring-3 here.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeBldProg - Static Runtime for build programs.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Note! This is a bit of hacky since kBuild doesn't support building libraries
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# for build programs.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeBldProg_TEMPLATE := VBoxAdvBldProg
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeBldProg_EXTENDS := RuntimeR3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeBldProg_BLD_TRG := $(KBUILD_HOST)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3 - Guest Additions Runtime (static/exe).
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# (The KBUILD_HOST inheritance here is for cross building the linux
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# additions, while .x86 is for cross building x86 while targeting amd64.)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_TEMPLATE := VBoxGuestR3Lib
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo change this to EXTEND the RuntimeR3 target.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP, $(RuntimeR3_DEFS))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_INCS := $(RuntimeR3_INCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES := $(filter-out \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync , $(RuntimeR3_SOURCES))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).amd64:= $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3-x86 - Same as RuntimeGuestR3, except that it's targeting x86.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3-x86_EXTENDS := RuntimeGuestR3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3-x86_BLD_TRG_ARCH := x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3Shared - Guest Additions Runtime (static/dll).
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Shared_TEMPLATE := VBoxGuestR3Dll
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Shared_EXTENDS := RuntimeGuestR3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Shared_INST = $(INST_ADDITIONS_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3Shared-x86 - Same as RuntimeGuestR3Shared, except that it's targeting x86.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Shared-x86_EXTENDS := RuntimeGuestR3Shared
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Shared-x86_BLD_TRG_ARCH := x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# initialization and can be linked into an .so. Intended
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# for X11 drivers, GRADD and similar.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_TEMPLATE := VBoxGuestR3Dll
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo change this to EXTEND the RuntimeGuestR3 target.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_DEFS := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(filter-out RTCRITSECT_STRICT RT_NO_GIP RT_WITH_ICONV_CACHE, $(RuntimeR3_DEFS)) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RT_MINI IN_RT_STATIC RTMEM_NO_WRAP_TO_EF_APIS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR3Mini-x86 - Same as RuntimeGuestR3Mini, except that it's targeting x86.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini-x86_EXTENDS := RuntimeGuestR3Mini
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini-x86_BLD_TRG_ARCH := x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VBox specific stuff.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR3Mini_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VBoxRT - Shared Object / DLL version.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_TEMPLATE = VBoxR3DllNoPic
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SDKS = VBOX_LIBXML2 VBOX_BOOST
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_WITH_LIBCURL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_SDKS += VBOX_LIBCURL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SDKS += VBOX_OPENSSL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_DEFS := $(filter-out RT_NO_GIP,$(RuntimeR3_DEFS)) IN_SUP_R3 IN_SUP_R3 IPRT_WITH_XAR
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_DEFS += RT_NO_GIP
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_WITH_LIBCURL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_DEFS += IPRT_WITH_HTTP
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_DEFS.$(KBUILD_TYPE) := $(RuntimeR3_DEFS.$(KBUILD_TYPE))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(filter-out common/checksum/crc32.cpp, $(RuntimeR3_SOURCES)) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_WITH_LIBCURL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_SOURCES += common/misc/s3.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_SOURCES += common/misc/http.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET).amd64 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBoxRT_0_OUTDIR)/VBoxRT.def
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_INCS := $(RuntimeR3_INCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_LIBS = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_KSTUFF
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifndef SDK_VBOX_LIBXML2_LIBS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libxml2$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(SDK_VBOX_ZLIB_LIBS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifndef SDK_VBOX_OPENSSL_LIBS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libssl$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_LZO
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT_LIBS += lzo2
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
9cdd4d805ecb43126372f7cf12e4032836cb738avboxsync # SMBIOS not available on Solaris SPARC.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT_LDFLAGS.darwin = -framework IOKit -framework CoreFoundation -framework CoreServices -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(DLLS), VBoxRT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$$(VBoxRT_0_OUTDIR)/VBoxRT.def: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SUB_CURRENT)/r3/win/VBoxRT-$$(if-expr $$(KBUILD_TARGET_ARCH) == amd64,win64,win32).def \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RM) -f -- $@
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# HACK ALERT! Make testcase run during build on SELinux boxes.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Create a dummy DLL that ensure that VBoxRT is installed
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# during the DLL pass and cleaned up later.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifeq ($(KBUILD_TARGET),linux)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync if1of (VBoxRT, $(DLLS))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifneq ($(wildcard /usr/bin/chcon),)
340ee06f35257fee1bd68223ab3504cf2b1d0c3evboxsyncVBoxRT_INSTTYPE = none
5793d23a719d4902824a3649b6fef3822ddd5fc7vboxsyncVBoxRT_DEBUG_INSTTYPE = both
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDLLS += VBoxRTDummy
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRTDummy_TEMPLATE = VBOXR3
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRTDummy_INSTTYPE = none
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRTDummy_LIBS = $(PATH_STAGE_BIN)/VBoxRT.so
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRTDummy_CLEAN = $(PATH_STAGE_BIN)/VBoxRT.so
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncBLDDIRS += $(PATH_STAGE_BIN)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(PATH_STAGE_BIN)/VBoxRT.so: $$(VBoxRT_1_TARGET) | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(INSTALL) $< $@
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync chcon -t texrel_shlib_t $@ || true
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT:: VBoxRTDummy
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync endif # chcon present.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync endif # building VBoxRT
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncendif # linux
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VBoxRT-x86 - 32-bit version of VBoxRT
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_EXTENDS = VBoxRT
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_TEMPLATE = VBoxR3Dll-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_SDKS = VBOX_LIBXML2 VBOX_BOOST
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_WITH_LIBCURL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT-x86_SDKS += VBOX_LIBCURL-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_SDKS += VBOX_OPENSSL-x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_LIBS = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/SUPR3-x86$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_KSTUFF
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT-x86_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-kStuff-x86$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifndef SDK_VBOX_LIBXML2_LIBS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT-x86_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libxml2-x86$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncVBoxRT-x86_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(SDK_VBOX_ZLIB_LIBS-x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifndef SDK_VBOX_OPENSSL_LIBS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT-x86_LIBS += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef IPRT_WITH_LZO
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync VBoxRT-x86_LIBS += lzo2
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # SMBIOS not available on Solaris SPARC.
eb2d4958f7faf812c3bdb2d7587d815022f0bd55vboxsyncVBoxRT-x86_SOURCES.win = $(filter-out %.def,$(VBoxRT_SOURCES.win)) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(DLLS), VBoxRT-x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$$(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SUB_CURRENT)/r3/win/VBoxRT-win32.def \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RM) -f -- $@
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# VBoxRTImp - Import library/hack.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win64.def)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncelse ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def r3/win/VBoxRT-win32.def)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-openssl-ose.def)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# This is used together with VBoxRT.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo the *_alias.c stuff is busted, remove and use RT_WITH_NOCRT_ALIASES instead.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NoCRTGCC_TEMPLATE = VBOXNOCRTGCC
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR3NoCRTGCC_DEFS += RT_NO_GIP
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NoCRTGCC_INCS = include
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NoCRTGCC_SOURCES := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RuntimeNoCrt_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NoCRTGCC_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo stop using the old memcpy.c and memset.c code.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR0 - Ring-0 library for VMMR0.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_TEMPLATE = VBoxR0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR0_DEFS += RT_NO_GIP
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_INCS = include
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_SOURCES := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RuntimeNoCrt_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(KBUILD_TARGET), darwin solaris freebsd)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR0_SOURCES += common/time/timesupA.asm
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeR0_SOURCES += common/time/timesupref.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR0Stub - Ring-0 context startup stub for Windows and Solaris.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Stub_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "solaris",VBoxR0DrvLib,VBoxR0)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeR0Drv - Ring-0 library for host drivers.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_TEMPLATE = VBoxR0DrvLib
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(PATH_STAGE)/gen-sys-hdrs
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR0Drv_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
9cdd4d805ecb43126372f7cf12e4032836cb738avboxsyncRuntimeR0Drv_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
9cdd4d805ecb43126372f7cf12e4032836cb738avboxsyncRuntimeR0Drv_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR0 - Guest driver runtime.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# This is almost the same as the RuntimeR0Drv, the main difference
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# is in the backdoor logging and the lack of sup.h (which should be
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# made irrelevant even for RuntimeR0Drv).
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0_EXTENDS = RuntimeR0Drv
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# RuntimeGuestR0NT4 - Win32 NT4 guest driver runtime.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0NT4_EXTENDS = RuntimeGuestR0
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0NT4_EXTENDS_BY = appending
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeGuestR0NT4_DEFS = IPRT_TARGET_NT4
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncifdef VBOX_WITH_RAW_MODE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # RuntimeRC - Raw-mode context library.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_TEMPLATE = VBoxRc
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_DEFS = IN_RT_RC RT_WITH_VBOX
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_INCS = include
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_SOURCES := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RuntimeNoCrt_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync #if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # RuntimeRC_SOURCES += common/time/timesupA.asm
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_SOURCES += common/time/timesupref.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync ifeq ($(VBOX_LDR_FMT32),lx)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRC_SOURCES += os2/sys0.asm
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync if1of ($(KBUILD_TARGET), darwin solaris freebsd)
9cdd4d805ecb43126372f7cf12e4032836cb738avboxsync RuntimeRC_SOURCES += \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync # RuntimeRCStub - Raw-mode context startup stub for Windows.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync RuntimeRCStub_TEMPLATE = VBoxRc
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncendif # VBOX_WITH_RAW_MODE
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Static library for new & delete for the electric fence.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_TEMPLATE := $(VBoxRT_TEMPLATE)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_SDKS := $(RuntimeR3_SDKS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_SDKS.$(KBUILD_TARGET) := $(RuntimeR3_SDKS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_DEFS := $(RuntimeR3_DEFS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_INCS := $(RuntimeR3_INCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeEFCPP_SOURCES := r3/alloc-ef-cpp.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# The NTDLL mini import library.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Note! The reason for doing this is to avoid importing CRT symbols from the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# NTDLL. We do not wish to do this because:
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# - Our compiler is usually a different one and we should use the
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# matching CRT,
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# - Older versions of NTDLL may not sport all the exports our w2k3 or
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# later WINDDK ntdll.lib have and thus we may easily end up with
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# images that does not load on older windows versions.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-amd64_TEMPLATE = VBoxR3Dll
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-amd64_BLD_TRG_ARCH = amd64
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-amd64_ARFLAGS = /NODEFAULTLIB /MACHINE:amd64
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-amd64_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-x86_EXTENDS = RuntimeR3NtDll-amd64
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-x86_BLD_TRG_ARCH = x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3NtDll-x86_ARFLAGS = /NODEFAULTLIB /MACHINE:x86
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Bag of tricks required for making VCC100 output binaries work on NT4, W2K
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# early XP and early W2K3.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3VccTricks_TEMPLATE = VBoxR3Dll
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncRuntimeR3VccTricks_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# errmsg.cpp depends on a generated header.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsynccommon/err/errmsg.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgdata.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncwin/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgcomdata.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncwin/errmsgwin.cpp_INCS = $(IPRT_OUT_DIR)
d64aa881df34a86dd70ab0e1b7b94ffa41be9731vboxsync# Our COM errors only for R3 libraries on the host
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncdefine def_errmsgwin_deps
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(lib)_win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(lib)_common/err/errmsgxpcom.cpp_INCS = $(IPRT_OUT_DIR)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(lib)_common/err/errmsgxpcom.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT VBoxRT-x86,$(eval $(def_errmsgwin_deps)))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Generate the status code data.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(IPRT_OUT_DIR)/errmsgdata.h: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_GENERATE,,$@,$(filter %.h,$^))
d64aa881df34a86dd70ab0e1b7b94ffa41be9731vboxsync $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(IPRT_OUT_DIR)/errmsgcomdata.h: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsgcom.sed \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $$(PATH_SDK_$(VBOX_WINPSDK)_INC)/WinError.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_GENERATE,,$@,$(filter %.h,$^))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts +| $(IPRT_OUT_DIR)/errmsgvboxcomdata.h: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/VBox/errmsgvboxcom.xsl \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_XIDL_FILE_SRC) \
d64aa881df34a86dd70ab0e1b7b94ffa41be9731vboxsync | $$(dir $$@)
d64aa881df34a86dd70ab0e1b7b94ffa41be9731vboxsync $(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(VBOX_XSLTPROC) -o $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $< $(filter %.xidl,$^)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(CP) --changed -fv $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif "$(KBUILD_TARGET)" == "freebsd"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# FreeBSDGeneratedKernelHeaders - Generate some kernel interface headers.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# These are used by:
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# - The RTMp* API in IPRT.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# - VBoxGuest
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Note! We cannot give a output path to the awk program, it will always
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# generate the header next to the source. So, we'll have to temporarily copy
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# the source file to the destination directory to work.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncINSTALLS += FreeBSDGeneratedKernelHeaders
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncFreeBSDGeneratedKernelHeaders_INST = gen-sys-hdrs/
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncFreeBSDGeneratedKernelHeaders_SOURCES = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncFreeBSDGeneratedKernelHeaders_CLEAN = $(FreeBSDGeneratedKernelHeaders_SOURCES)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(CP) -f $< $(@D)/bus_if.m
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/bus_if.m -h -p
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(RM) $(@D)/bus_if.m
d64aa881df34a86dd70ab0e1b7b94ffa41be9731vboxsync$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(CP) -f $< $(@D)/device_if.m
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/device_if.m -h -p
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(RM) $(@D)/device_if.m
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(CP) -f $< $(@D)/pci_if.m
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/pci_if.m -h -p
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(RM) $(@D)/pci_if.m
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncendif # FreeBSD
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Doxygen documentation.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_DOXYFILE_INPUT_DIRS = \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/include/internal \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/alloc \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/asm \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/checksum \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/dbg \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/err \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/ldr \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/log \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/math \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/math/amd64 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/math/gcc \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/math/x86 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/misc \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/path \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/rand \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/string \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/table \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/common/time \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/VBox \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(foreach dir, $(VBOX_PATH_RUNTIME_SRC) $(VBOX_PATH_RUNTIME_SRC)/r3 $(VBOX_PATH_RUNTIME_SRC)/r0drv,\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/darwin \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/haiku \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/linux \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/nt \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/os2 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/solaris \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/win \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/win32 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/win64 \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(dir)/generic \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# These must come first in order to make things look nice.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_DOXYFILE_INPUT_FIRST =\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_DOXYFILE_INPUT := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(IPRT_DOXYFILE_INPUT_DIRS)))) ) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(foreach dir, $(IPRT_DOXYFILE_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_DOXYFILE_INPUT := \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_DOXYFILE_INPUT_FIRST) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(filter-out $(IPRT_DOXYFILE_INPUT_FIRST), $(IPRT_DOXYFILE_INPUT))
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncIPRT_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncBLDDIRS += $(IPRT_DOXYFILE_OUTPUT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncincludedep $(IPRT_OUT_DIR)/Doxyfile.iprt.dep
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Generate the Doxyfile
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(IPRT_OUT_DIR)/Doxyfile.iprt: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/Doxyfile \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(VBOX_PATH_RUNTIME_SRC)/Makefile.kmk \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(comp-vars IPRT_DOXYFILE_INPUT,DOXYGEN_INPUT_PREV,FORCE) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync | $$(dir $$@)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RM) -f $@ $@.tmp $@.dep
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(CP) -f $(VBOX_PATH_RUNTIME_SRC)/Doxyfile $@.tmp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "OUTPUT_DIRECTORY = $(IPRT_DOXYFILE_OUTPUT)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "WARN_LOGFILE = $(IPRT_DOXYFILE_OUTPUT)/errors"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "INCLUDE_FILE_PATTERNS = *.cpp.h"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "PREDEFINED += $(ARCH_BITS_DEFS)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp "INPUT = $(IPRT_DOXYFILE_INPUT)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $@.tmp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(MV) -f $@.tmp $@
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @$(APPEND) $@.dep "DOXYGEN_OUTPUT_PREV = $(IPRT_DOXYFILE_OUTPUT)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @$(APPEND) $@.dep "DOXYGEN_INPUT_PREV = $(IPRT_DOXYFILE_INPUT)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Do the actual job.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync$(IPRT_OUT_DIR)/docs.iprt: $(IPRT_OUT_DIR)/Doxyfile.iprt $$(IPRT_DOXYFILE_INPUT) | $(IPRT_DOXYFILE_OUTPUT)/
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(RM) -f $(wildcard $(IPRT_DOXYFILE_OUTPUT)/html/*) $(IPRT_OUT_DIR)/docs.iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync doxygen $(IPRT_OUT_DIR)/Doxyfile.iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(APPEND) $(IPRT_OUT_DIR)/docs.iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncdocs: $(IPRT_OUT_DIR)/docs.iprt
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsynctest-doxygen::
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @echo test-$(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @echo $(IPRT_DOXYFILE_OUTPUT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @echo $(DOXYGEN_OUTPUT_PREV)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @echo $(IPRT_DOXYFILE_INPUT)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Test mangling.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif1of ($(LIBRARIES),RuntimeR3 RuntimeR0 RuntimeR0Drv RuntimeRC)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync test-mangling:: $(IPRT_OUT_DIR)/mangling.run
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync OTHERS += $(IPRT_OUT_DIR)/mangling.run
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync CLEANS += $(IPRT_OUT_DIR)/mangling.run
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(IPRT_OUT_DIR)/mangling.run: \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $$(RuntimeR3_1_TARGET) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $$(RuntimeR0_1_TARGET) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $$(RuntimeR0Drv_1_TARGET) \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $$(RuntimeRC_1_TARGET)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync if1of ($(KBUILD_TARGET), win os2)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_L1,IPRT: skipped mangling test.)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Generate a SED script from mangling.h that checks for known symbols.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/# *define.*RT_MANGLER/!d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^.*RT_MANGLER(\([^)][^)]*\)).*$(DOLLAR)/\/^\1$(DOLLAR)\/b ok/' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync --output "$@"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @$(APPEND) -n '$@' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync 's/^\(.*\)$(DOLLAR)/error: Missing # define \1 RT_MANGLER(\1)/' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Find the best way to generate a symbol list and subject it to mangling.h.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync if $(intersects $(KBUILD_TARGET), linux) && "$(VBOX_GCC_fvisibility-hidden)"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(call MSG_L1,IPRT: Testing mangling and visiblity...)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync @readelf -Ws $^ \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^ *[[:digit:]]\+:/!d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^ \+[[:digit:]]\+: \+[[:xdigit:]]\+ \+[[:digit:]]\+ \+//' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^SECTION/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^FILE/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^[[:alpha:]]\+ \+//' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/LOCAL/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^[[:alpha:]]\+ \+//' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^HIDDEN/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^[[:alpha:]]\+ \+//' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^UND/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e 's/^[[:digit:]]\+ \+//' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^nocrt_/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^memchr/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^memcmp/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^memcpy/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^mempcpy/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^memmove/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^memset/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strchr/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strpbrk/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_Z7strpbrk/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strcmp/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strcpy/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strncpy/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^strlen/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_ZNSt9bad_allocC1Ev/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_ZNSt9exceptionC2Ev/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_Z[[:digit:]]\+dbus/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^_Z13RTDBusLoadLibv/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^VBoxHost_/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^VBoxGuest_/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync | $(SED) -nf "$@"
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync $(call MSG_L1,IPRT: Testing mangling...)
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync nm $^ | $(SED) -n \
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync -e 's/^[0-9a-f][0-9a-f]* //' \
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync -e '/^[TUDB] /!d' \
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync -e 's/^. //' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_cchrt/d'\
a21a14c99f2698c3a8b6dc0a3086e087701fe719vboxsync -e '/^g_frt/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_offrt/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_pfnrt/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_rt/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_szrt/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_ProcessSelf/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_u64ProgramStart/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_enmProcessPriority/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_hDbgModStrCache/d'\
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^RTDBusLoadLib/d' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^RT/p' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync -e '/^g_/p' \
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync | $(SED) -nf "$@"
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync $(QUIET)$(APPEND) -t $@
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncif !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_TESTSUITE) && !defined(VBOX_ONLY_DOCS)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Windows build tool.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncntBldSymDb_TEMPLATE = VBoxAdvBldProg
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncntBldSymDb_INCS = .
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncntBldSymDb_SOURCES = r0drv/nt/ntBldSymDb.cpp
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync# Generate the rules (we're the to sub-makefile).
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncinclude $(FILE_KBUILD_SUB_FOOTER)