Makefile.kmk revision 35ba8dd726cb4f7a1fc7c6c3a3bc8f8f7bb653eb
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Sub-Makefile for the IPRT (IPRT).
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# available from http://www.virtualbox.org. This file is free software;
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# you can redistribute it and/or modify it under the terms of the GNU
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# General Public License (GPL) as published by the Free Software
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# The contents of this file may alternatively be used under the terms
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# of the Common Development and Distribution License Version 1.0
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# VirtualBox OSE distribution, in which case the provisions of the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# CDDL are applicable instead of those of the GPL.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# You may elect to license modified versions of this file under the
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# terms and conditions of either the GPL or the CDDL or both.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# additional information or have any questions.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef VBOX_KBUILD_HACKING
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncSUB_DEPTH = ../../..
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncSUB_DEPTH = .
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncDEPTH ?= ../../..
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef VBOX_ONLY_ADDITIONS
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync # Only build the additions, sort out the legacy names first.
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync #LIBRARIES.os2 = RuntimeGuestR0OS2Warp3
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsync LIBRARIES.win.x86 += RuntimeGuestR0NT4
5c127165d63f95b1763b4af2a2c6ae1025fc84fevboxsync ifndef VBOX_WITH_ADDITION_DRIVERS
5c127165d63f95b1763b4af2a2c6ae1025fc84fevboxsync if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
5c127165d63f95b1763b4af2a2c6ae1025fc84fevboxsync LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync # Normal build.
82391de567696f10b21a762fde6a06fe3c266d28vboxsync include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync BLDPROGS += uniread
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES += RuntimeR3 RuntimeR0 RuntimeGC RuntimeEFCPP RuntimeR3NoCRTGCC
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync ifdef VBOX_WITH_VBOXDRV
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES += RuntimeR0Drv
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync ifdef VBOX_WITH_ADDITIONS
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES.win.x86 += RuntimeGuestR0NT4
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync ifndef VBOX_WITH_ADDITION_DRIVERS
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync endif # VBOX_WITH_ADDITIONS
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync LIBRARIES.l4 += RuntimeR3L4 RuntimeLnxHostR3
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync DLLS += VBoxRT
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync OTHER_CLEAN += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_TARGET)/errmsgdata.h \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_TARGET)/errmsgcomdata.h \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_TARGET)/Doxyfile.iprt \
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync $(PATH_TARGET)/Doxyfile.iprt.dep \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_TARGET)/docs.iprt
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBOX_PATH_RUNTIME_SRC := $(PATH_SUB_CURRENT)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Unicode Specification reader used to regenerate unidata.cpp.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncuniread_TEMPLATE = VBOXBLDPROG
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncuniread_INCS = include
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Win64 assembly sources.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeWin64ASM_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# Win32 assembly sources.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeWin32ASM_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeR3 - Static Runtime for Ring-3 executables.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3_TEMPLATE = VBOXR3EXE
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncRuntimeR3_SDKS.win = WINPSDK W2K3DDK
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef IPRT_WITH_KSTUFF
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync RuntimeR3_DEFS += LDR_WITH_KLDR
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef VBOX_MAIN_RELEASE_LOG ## @todo (dmik): temporary, until RTThreadSelf/RTThreadAdopt are properly updated
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync RuntimeR3_DEFS += RTCRITSECT_STRICT
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3_INCS = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef IPRT_WITH_KSTUFF
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync RuntimeR3_INCS += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(L4_INCDIR)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeR3_SOURCES += common/time/timesupA.asm
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync RuntimeR3_SOURCES += common/time/timesupref.cpp
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef IPRT_WITH_KSTUFF
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync RuntimeR3_SOURCES += \
822e11c896dd36c9dc3609dff676059576b7d3devboxsync# VBox specific stuff.
822e11c896dd36c9dc3609dff676059576b7d3devboxsyncRuntimeR3_SOURCES += \
82391de567696f10b21a762fde6a06fe3c266d28vboxsyncifneq ($(KBUILD_TARGET),win)
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncRuntimeR3_SOURCES += \
822e11c896dd36c9dc3609dff676059576b7d3devboxsyncRuntimeR3_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
822e11c896dd36c9dc3609dff676059576b7d3devboxsyncRuntimeR3_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
a597f00ac8a71003621fe61c58fe32706ca941b3vboxsyncifdef RT_NEW_LINUX_MUTEX_CODE
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync## @todo Make BSD sched.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync## PORTME: Porters add their selection of platform specific files for Ring-3 here.
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync# L4 RuntimeR3 subtarget since L4 headers won't work with VBOXR3.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3L4_TEMPLATE = VBOXR3NP
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3L4_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF LDR_WITH_PE
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifneq ($(KBUILD_TARGET_ARCH),amd64)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3L4_DEFS += __PIC__
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3L4_INCS = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(L4_INCDIR)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3L4_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeGuestR3 - Guest Additions Runtime (static).
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# (The KBUILD_HOST inheritance here is for l4 cross building the linux
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# additions, while .x86 is for cross building x86 while targeting amd64.)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_TEMPLATE := VBOXGUESTR3LIB
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync## @todo change this to EXTEND the RuntimeR3 target.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_INCS := $(RuntimeR3_INCS)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES := $(filter-out \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync , $(RuntimeR3_SOURCES))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# initialization and can be linked into an .so. Intended
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# for X11 drivers, GRADD and similar.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3Mini_TEMPLATE := VBOXGUESTR3DLL
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync## @todo change this to EXTEND the RuntimeGuestR3 target.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeGuestR3Mini_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS)) RT_MINI
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# VBox specific stuff.
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeGuestR3Mini_SOURCES += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeLnxHostR3 Linux host program runtime
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# (Only used when building L4.)
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeLnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeLnxHostR3_DEFS = IN_RT_R3 IN_SUP_R3 RT_WITH_VBOX RT_NO_GIP
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeLnxHostR3_SOURCES = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(RuntimeR3_SOURCES.linux.$(KBUILD_TARGET_ARCH)) \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(RuntimeR3_SOURCES)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeLnxHostR3_INCS = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(RuntimeR3_INCS.linux.$(KBUILD_TARGET_ARCH)) \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(RuntimeR3_INCS)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# VBoxRT - Shared Object / DLL version.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_TEMPLATE = VBOXR3
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_SDKS.win = WINPSDK W2K3DDK VBOX_NTDLL
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifeq ($(KBUILD_TARGET),darwin)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncVBoxRT_DEFS = $(RuntimeR3_DEFS) IN_SUP_R3 IN_SUP_R3
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_DEFS.$(KBUILD_TYPE) = $(RuntimeR3_DEFS.$(KBUILD_TYPE))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_SOURCES = \
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync $(RuntimeR3_SOURCES)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_INCS = $(RuntimeR3_INCS)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_INCS.$(KBUILD_TARGET) = $(RuntimeR3_INCS.$(KBUILD_TARGET))
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncVBoxRT_LIBS = \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_LIB)/SUPR3$(VBOX_SUFF_LIB) \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef IPRT_WITH_KSTUFF
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync VBoxRT_LIBS += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_LDFLAGS.darwin = -framework IOKit -install_name @executable_path/VBoxRT.dylib
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef VBOX_USE_VCC80
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync -Wl,-whole-archive \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB) \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync -Wl,-no-whole-archive
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifeq ($(KBUILD_TARGET),l4)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncVBoxRT_LIBS += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(L4_LIBDIR)/libl4sys.a \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# This is used together with VBoxRT.
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3NoCRTGCC_TEMPLATE = VBOXNOCRTGCC
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3NoCRTGCC_INCS = include
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR3NoCRTGCC_SOURCES = \
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync## @todo stop using the old memcpy.c and memset.c code.
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync# RuntimeR0 - Ring0 library for VMMR0.
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0_TEMPLATE = VBOXR0
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0_INCS = include
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0_SOURCES = \
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
82391de567696f10b21a762fde6a06fe3c266d28vboxsync# RuntimeR0_SOURCES += common/time/timesupA.asm
82391de567696f10b21a762fde6a06fe3c266d28vboxsync RuntimeR0_SOURCES += common/time/timesupref.cpp
82391de567696f10b21a762fde6a06fe3c266d28vboxsyncRuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncifeq ($(filter-out darwin solaris freebsd,$(KBUILD_TARGET)),)
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0_SOURCES += \
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync# RuntimeR0Drv - Ring0 library for host drivers.
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0Drv_TEMPLATE = VBOXR0DRV
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0Drv_SDKS.win = W2K3DDK WINPSDKINCS
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsyncRuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 # why is IN_SUP_R0 here? because!
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncifdef VBOX_WITH_SOLARIS_VBI
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsyncRuntimeR0Drv_SOURCES = \
99f33ab590a3a65e0cd082dd8d67779efb9cc6c9vboxsync## @todo thread2-r0drv-linux.c and assert-r0drv-linux.c
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncRuntimeR0Drv_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncRuntimeR0Drv_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
2ad9f8a731c73f6ac74044d42d47bbaf6f44a566vboxsyncifdef VBOX_WITH_SOLARIS_VBI
2a171646d32f8a15e9820d6fb3bf3f9b9990ca3fvboxsync r0drv/solaris/vbi/RTLogWriteDebugger-r0drv-solaris.c \
7b4c4bb29760b28b5727231ad446462a5b0cc01avboxsyncelse # !VBOX_WITH_SOLARIS_VBI
# Don't use mp-r0drv-solaris.c because it will cause crashes due to incorrect memobj-r0drv-solaris.c code.
# Use mp-r0drv-solaris.c.
# is in the backdoor logging and the lack of sup.h (which should be
RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
RuntimeGuestR0_SOURCES += VBox/logbackdoor.cpp
# 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: \
$(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
$(PATH_ROOT)/include/iprt/err.h \
$(PATH_ROOT)/include/VBox/err.h
$(PATH_TARGET)/errmsgcomdata.h: \
$(VBOX_PATH_RUNTIME_SRC)/common/err/errmsgcom.sed \
$$(PATH_SDK_WINPSDK_INC)/WinError.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 \
$(VBOX_PATH_RUNTIME_SRC)/include/internal \
$(VBOX_PATH_RUNTIME_SRC)/common/alloc \
$(VBOX_PATH_RUNTIME_SRC)/common/checksum \
$(VBOX_PATH_RUNTIME_SRC)/common/err \
$(VBOX_PATH_RUNTIME_SRC)/common/ldr \
$(VBOX_PATH_RUNTIME_SRC)/common/log \
$(VBOX_PATH_RUNTIME_SRC)/common/misc \
$(VBOX_PATH_RUNTIME_SRC)/common/string \
$(VBOX_PATH_RUNTIME_SRC)/common/table \
$(VBOX_PATH_RUNTIME_SRC)/common/time \
$(foreach dir, $(VBOX_PATH_RUNTIME_SRC) $(VBOX_PATH_RUNTIME_SRC)/r3 $(VBOX_PATH_RUNTIME_SRC)/r0drv,\
$(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, $(IPRT_DOXYFILE_INPUT_DIRS)))) ) \
IPRT_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/iprt
-include $(PATH_TARGET)/Doxyfile.iprt.dep
$(PATH_TARGET)/Doxyfile.iprt: \
$(VBOX_PATH_RUNTIME_SRC)/Makefile.kmk \
$(RM) -f $@ $@.tmp $(PATH_TARGET)/Doxyfile.iprt.dep
$(APPEND) $@.tmp "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
$(APPEND) $@.tmp "INCLUDE_FILE_PATTERNS = *.cpp.h"
@$(APPEND) $(PATH_TARGET)/Doxyfile.iprt.dep "DOXYGEN_OUTPUT_PREV = $(IPRT_DOXYFILE_OUTPUT)"
@$(APPEND) $(PATH_TARGET)/Doxyfile.iprt.dep "DOXYGEN_INPUT_PREV = $(IPRT_DOXYFILE_INPUT)"
$(PATH_TARGET)/docs.iprt: $(PATH_TARGET)/Doxyfile.iprt $(IPRT_DOXYFILE_INPUT) | $(call DIRDEP, $(IPRT_DOXYFILE_OUTPUT))
$(RM) -f $(wildcard $(IPRT_DOXYFILE_OUTPUT)/html/*) $(PATH_TARGET)/docs.iprt
doxygen $(PATH_TARGET)/Doxyfile.iprt
$(APPEND) $(PATH_TARGET)/docs.iprt
docs: $(PATH_TARGET)/docs.iprt