VirtualBox

source: vbox/trunk/src/VBox/Runtime/Makefile.kmk@ 71797

Last change on this file since 71797 was 71492, checked in by vboxsync, 7 years ago

Runtime: Introduce RTTraceLog* API for creating and parsing binary trace log files. The format and API is designed with the

following goals in mind:

  1. Allow streaming the data via network or write it to a file.
  2. Embed the structure of the traced data into the log allowing arbitrary structured data to be embedded without requiring adaptions on the parsing side.
  3. Allow grouping of traced data belonging together to easily follow chains of events later on.
  4. Trace events can have a parent assigned to check where an event originally originated from.
  5. Low overhead on the creation side.

The current state implements the absolute basics on the creation and parsing side and is work in progress. This will
be used later on in the device emulation fuzzer to capture device and examine device states and changes.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 108.6 KB
Line 
1# $Id: Makefile.kmk 71492 2018-03-24 22:23:10Z vboxsync $
2## @file
3# Sub-Makefile for the IPRT.
4#
5
6#
7# Copyright (C) 2006-2017 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17# The contents of this file may alternatively be used under the terms
18# of the Common Development and Distribution License Version 1.0
19# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20# VirtualBox OSE distribution, in which case the provisions of the
21# CDDL are applicable instead of those of the GPL.
22#
23# You may elect to license modified versions of this file under the
24# terms and conditions of either the GPL or the CDDL or both.
25#
26
27SUB_DEPTH = ../../..
28include $(KBUILD_PATH)/subheader.kmk
29
30ifdef VBOX_ONLY_ADDITIONS
31 #
32 # Only build the additions, sort out the legacy names first.
33 #
34 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared
35 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
36 ifdef VBOX_WITH_ADDITION_DRIVERS
37 LIBRARIES += RuntimeGuestR0
38 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
39 endif
40 ifndef VBOX_ONLY_ADDITIONS_WITHOUT_RTISOMAKER
41 LIBRARIES += RuntimeBldProg
42 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
43 endif
44
45else ifdef VBOX_ONLY_VALIDATIONKIT
46 #
47 # Only build the Validation Kit.
48 #
49 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeR3 RuntimeR0 RuntimeBldProg
50 LIBRARIES.solaris += RuntimeR0Stub
51 LIBRARIES.win += RuntimeR0Stub
52 LIBRARIES.win.x86 += RuntimeR3VccTricks
53 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
54
55else ifdef VBOX_ONLY_DOCS
56 #
57 # Build docs only - need just regular R3 runtime.
58 #
59 LIBRARIES += RuntimeR3 RuntimeBldProg
60 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
61
62else ifdef VBOX_ONLY_EXTPACKS_USE_IMPLIBS
63 #
64 # Build extension packs using import libraries as much as possible (VBoxDTrace
65 # needs Ring-0 IPRT, though).
66 #
67 LIBRARIES += RuntimeBldProg RuntimeR0
68 LIBRARIES.solaris += RuntimeR0Stub
69 LIBRARIES.win += RuntimeR0Stub RuntimeRCStub
70 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
71
72else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_VALIDATIONKIT && !VBOX_ONLY_DOCS
73
74 #
75 # Normal build.
76 #
77 ifndef VBOX_ONLY_EXTPACKS
78 include $(PATH_SUB_CURRENT)/testcase/Makefile.kmk
79 endif
80 include $(PATH_SUB_CURRENT)/tools/Makefile.kmk
81
82 BLDPROGS += uniread
83 LIBRARIES += RuntimeR3 RuntimeBldProg RuntimeR0 RuntimeEFCPP RuntimeR3NoCRTGCC
84 LIBRARIES.solaris += RuntimeR0Stub
85 LIBRARIES.win += RuntimeR0Stub
86 ifdef VBOX_WITH_RAW_MODE
87 LIBRARIES += RuntimeRC
88 LIBRARIES.win += RuntimeRCStub
89 endif
90 ifdef VBOX_WITH_VBOXDRV
91 LIBRARIES += RuntimeR0Drv
92 endif
93 ifdef VBOX_WITH_ADDITIONS
94 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared
95 LIBRARIES.win.amd64 += RuntimeGuestR3-x86 RuntimeGuestR3Shared-x86
96 ifdef VBOX_WITH_ADDITION_DRIVERS
97 LIBRARIES += RuntimeGuestR0
98 endif
99 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
100 endif # VBOX_WITH_ADDITIONS
101 LIBRARIES.win.x86 += RuntimeR3VccTricks
102 DLLS += VBoxRT
103 ifdef VBOX_WITH_32_ON_64_MAIN_API
104 DLLS += VBoxRT-x86
105 endif
106endif
107
108
109# Always build the ntdll import libraries on windows.
110LIBRARIES.win += RuntimeR3NtDll-x86
111if1of (amd64, $(KBUILD_TARGET_ARCH) $(KBUILD_HOST_ARCH))
112 LIBRARIES.win += RuntimeR3NtDll-amd64
113endif
114
115
116# Always build the import library.
117IMPORT_LIBS += VBoxRTImp
118
119
120# Where the generated stuff goes.
121IPRT_OUT_DIR := $(PATH_TARGET)/Runtime
122BLDDIRS += $(IPRT_OUT_DIR)
123OTHER_CLEAN += \
124 $(IPRT_OUT_DIR)/errmsgdata.h \
125 $(IPRT_OUT_DIR)/errmsgcomdata.h \
126 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h \
127 $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts \
128 $(IPRT_OUT_DIR)/odi2name.h \
129 $(IPRT_OUT_DIR)/odi2name.h.ts \
130 $(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt \
131 $(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt.dep \
132 $(IPRT_DOXYFILE_OUTPUT)/docs.iprt
133
134
135#
136# Globals
137#
138VBOX_PATH_RUNTIME_SRC := $(PATH_SUB_CURRENT)
139
140
141#
142# Set the defines that buildconfig.cpp needs. Its used by several targets.
143#
144common/misc/buildconfig.cpp_DEFS = \
145 IPRT_BLDCFG_SCM_REV=$(VBOX_SVN_REV) \
146 IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
147 IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
148 IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
149 IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD) \
150 IPRT_BLDCFG_TARGET=\"$(KBUILD_TARGET)\" \
151 IPRT_BLDCFG_TARGET_ARCH=\"$(KBUILD_TARGET_ARCH)\" \
152 IPRT_BLDCFG_TYPE=\"$(KBUILD_TYPE)\"
153
154#
155# OID to C table conversion program.
156#
157BLDPROGS += oiddb2c
158oiddb2c_TEMPLATE = VBoxBldProg
159oiddb2c_SOURCES = common/asn1/oiddb2c.cpp
160common/asn1/asn1-dump.cpp_DEPS = $(IPRT_OUT_DIR)/oiddb.h
161common/asn1/asn1-dump.cpp_INCS = $(IPRT_OUT_DIR)
162
163$(IPRT_OUT_DIR)/oiddb.h.ts +| $(IPRT_OUT_DIR)/oiddb.h: \
164 $(VBOX_PATH_RUNTIME_SRC)/common/asn1/oiddb.cfg \
165 $(VBOX_EXTRA_OID_CFG_FILES) \
166 $$(oiddb2c_1_TARGET) \
167 | $$(dir $$@)
168 $(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
169 $(QUIET)$(oiddb2c_1_TARGET) "$@" $(filter %.cfg,$^)
170 $(QUIET)$(CP) --changed -fv "$@" "$(IPRT_OUT_DIR)/oiddb.h"
171
172
173#
174# Unicode Specification reader used to regenerate unidata-*.cpp.
175#
176uniread_TEMPLATE = VBoxBldProg
177uniread_SOURCES = common/string/uniread.cpp
178uniread_INCS = include
179
180#
181# Win64 assembly sources.
182#
183RuntimeWin64ASM_SOURCES = \
184 win/amd64/ASMAtomicBitClear.asm \
185 win/amd64/ASMAtomicBitTestAndToggle.asm \
186 win/amd64/ASMAtomicBitToggle.asm \
187 win/amd64/ASMAtomicReadU64.asm \
188 win/amd64/ASMAtomicXchgU8.asm \
189 win/amd64/ASMGetCS.asm \
190 win/amd64/ASMGetDS.asm \
191 win/amd64/ASMGetES.asm \
192 win/amd64/ASMGetFlags.asm \
193 win/amd64/ASMGetFS.asm \
194 win/amd64/ASMGetGS.asm \
195 win/amd64/ASMGetSS.asm \
196 win/amd64/ASMProbeReadByte.asm \
197 win/amd64/ASMSetFlags.asm \
198 win/amd64/ASMGetDR0.asm \
199 win/amd64/ASMGetDR1.asm \
200 win/amd64/ASMGetDR2.asm \
201 win/amd64/ASMGetDR3.asm \
202 win/amd64/ASMGetDR6.asm \
203 win/amd64/ASMGetDR7.asm \
204 common/asm/ASMAtomicCmpXchgU8.asm \
205 common/asm/ASMAtomicCmpXchgU16.asm \
206 common/asm/ASMAtomicXchgU16.asm \
207 common/asm/ASMBitFirstClear.asm \
208 common/asm/ASMBitFirstSet.asm \
209 common/asm/ASMBitNextClear.asm \
210 common/asm/ASMBitNextSet.asm \
211 common/asm/ASMMultU32ByU32DivByU32.asm \
212 common/asm/ASMMultU64ByU32DivByU32.asm \
213 common/asm/ASMCpuId_Idx_ECX.asm \
214 common/asm/ASMNopPause.asm \
215 common/asm/ASMGetIDTR.asm \
216 common/asm/ASMGetIdtrLimit.asm \
217 common/asm/ASMSetIDTR.asm \
218 common/asm/ASMGetGDTR.asm \
219 common/asm/ASMSetGDTR.asm \
220 common/asm/ASMGetLDTR.asm \
221 common/asm/ASMGetSegAttr.asm \
222 common/asm/ASMGetTR.asm
223
224#
225# Win32 assembly sources.
226#
227RuntimeWin32ASM_SOURCES = \
228 common/asm/ASMAtomicCmpXchgU8.asm \
229 common/asm/ASMAtomicCmpXchgU16.asm \
230 common/asm/ASMAtomicXchgU16.asm \
231 common/asm/ASMMultU32ByU32DivByU32.asm \
232 common/asm/ASMMultU64ByU32DivByU32.asm \
233 common/asm/ASMCpuId_Idx_ECX.asm \
234 common/asm/ASMGetSegAttr.asm
235
236#
237# NoCRT sources (minus math stuff).
238#
239if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
240RuntimeNoCrt_SOURCES = \
241 common/misc/setjmp.asm \
242 common/string/bzero.asm \
243 common/string/memchr.asm \
244 common/string/memcmp.asm \
245 common/string/memcpy.asm \
246 common/string/mempcpy.asm \
247 common/string/memmove.asm \
248 common/string/memset.asm \
249 common/string/strchr.asm \
250 common/string/strcpy.asm \
251 common/string/strncpy.asm \
252 common/string/strcmp.asm \
253 common/string/strlen.asm
254endif
255
256
257#
258# RuntimeR3 - Static Runtime for Ring-3 executables.
259#
260RuntimeR3_TEMPLATE = VBoxR3Static
261RuntimeR3_SDKS = VBOX_OPENSSL VBOX_LIBXML2
262RuntimeR3_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK)
263RuntimeR3_DEFS = \
264 IN_RT_R3 \
265 IN_SUP_R3 \
266 LDR_WITH_NATIVE \
267 LDR_WITH_ELF32 \
268 LDR_WITH_PE \
269 RT_WITH_VBOX \
270 RT_NO_GIP \
271 RT_WITHOUT_NOCRT_WRAPPERS \
272 IPRT_WITH_OPENSSL \
273 NOFILEID
274#RuntimeR3_DEFS += RTMEM_WRAP_TO_EF_APIS
275ifdef IPRT_WITH_KSTUFF
276 RuntimeR3_DEFS += LDR_WITH_KLDR
277endif
278ifdef IPRT_WITH_LZJB
279 RuntimeR3_DEFS += RTZIP_USE_LZJB
280endif
281ifdef IPRT_WITH_LZO
282 RuntimeR3_DEFS += RTZIP_USE_LZO
283endif
284ifn1of ($(KBUILD_TARGET), win)
285 RuntimeR3_DEFS += RT_WITH_ICONV_CACHE
286endif
287ifdef IPRT_WITH_FUTEX_BASED_SEMS
288 RuntimeR3_DEFS.linux += IPRT_WITH_FUTEX_BASED_SEMS
289endif
290RuntimeR3_INCS = \
291 include \
292 $(SDK_VBOX_ZLIB_INCS)
293RuntimeR3_INCS += \
294 $(PATH_ROOT)/src/libs/liblzf-3.4
295ifdef IPRT_WITH_KSTUFF
296 RuntimeR3_INCS += \
297 $(PATH_ROOT)/src/libs/kStuff/kStuff/include
298endif
299
300# RuntimeR3_INCS.solaris = \
301# /usr/include
302
303RuntimeR3_SOURCES = \
304 common/alloc/alloc.cpp \
305 common/alloc/heapsimple.cpp \
306 common/alloc/heapoffset.cpp \
307 common/alloc/memcache.cpp \
308 common/alloc/memtracker.cpp \
309 common/asn1/asn1-basics.cpp \
310 common/asn1/asn1-cursor.cpp \
311 common/asn1/asn1-default-allocator.cpp \
312 common/asn1/asn1-efence-allocator.cpp \
313 common/asn1/asn1-dump.cpp \
314 common/asn1/asn1-encode.cpp \
315 common/asn1/asn1-ut-bitstring.cpp \
316 common/asn1/asn1-ut-bitstring-decode.cpp \
317 common/asn1/asn1-ut-boolean.cpp \
318 common/asn1/asn1-ut-boolean-decode.cpp \
319 common/asn1/asn1-ut-core.cpp \
320 common/asn1/asn1-ut-core-decode.cpp \
321 common/asn1/asn1-ut-dyntype.cpp \
322 common/asn1/asn1-ut-dyntype-decode.cpp \
323 common/asn1/asn1-ut-integer.cpp \
324 common/asn1/asn1-ut-integer-decode.cpp \
325 common/asn1/asn1-ut-null.cpp \
326 common/asn1/asn1-ut-null-decode.cpp \
327 common/asn1/asn1-ut-objid.cpp \
328 common/asn1/asn1-ut-objid-decode.cpp \
329 common/asn1/asn1-ut-octetstring.cpp \
330 common/asn1/asn1-ut-octetstring-decode.cpp \
331 common/asn1/asn1-ut-string.cpp \
332 common/asn1/asn1-ut-string-decode.cpp \
333 common/asn1/asn1-ut-time.cpp \
334 common/asn1/asn1-ut-time-decode.cpp \
335 common/checksum/adler32.cpp \
336 common/checksum/crc32.cpp \
337 common/checksum/crc32c.cpp \
338 common/checksum/crc64.cpp \
339 common/checksum/crc16ccitt.cpp \
340 common/checksum/alt-md2.cpp \
341 common/checksum/alt-md5.cpp \
342 common/checksum/alt-sha1.cpp \
343 common/checksum/alt-sha256.cpp \
344 common/checksum/alt-sha512.cpp \
345 common/checksum/md2str.cpp \
346 common/checksum/md5str.cpp \
347 common/checksum/ipv4.cpp \
348 common/checksum/ipv6.cpp \
349 common/checksum/manifest.cpp \
350 common/checksum/manifest2.cpp \
351 common/checksum/manifest3.cpp \
352 common/checksum/manifest-file.cpp \
353 common/checksum/RTSha1Digest.cpp \
354 common/checksum/RTSha256Digest.cpp \
355 common/checksum/sha1str.cpp \
356 common/checksum/sha224str.cpp \
357 common/checksum/sha256str.cpp \
358 common/checksum/sha384str.cpp \
359 common/checksum/sha512str.cpp \
360 common/checksum/sha512t224str.cpp \
361 common/checksum/sha512t256str.cpp \
362 common/crypto/digest-core.cpp \
363 common/crypto/digest-builtin.cpp \
364 common/crypto/digest-vfs.cpp \
365 common/crypto/iprt-openssl.cpp \
366 common/crypto/rsa-asn1-decoder.cpp \
367 common/crypto/rsa-core.cpp \
368 common/crypto/rsa-init.cpp \
369 common/crypto/rsa-sanity.cpp \
370 common/crypto/pemfile.cpp \
371 common/crypto/pkcs7-asn1-decoder.cpp \
372 common/crypto/pkcs7-core.cpp \
373 common/crypto/pkcs7-init.cpp \
374 common/crypto/pkcs7-sanity.cpp \
375 common/crypto/pkcs7-verify.cpp \
376 common/crypto/pkix-signature-builtin.cpp \
377 common/crypto/pkix-signature-core.cpp \
378 common/crypto/pkix-signature-rsa.cpp \
379 common/crypto/pkix-util.cpp \
380 common/crypto/pkix-verify.cpp \
381 common/crypto/spc-asn1-decoder.cpp \
382 common/crypto/spc-core.cpp \
383 common/crypto/spc-init.cpp \
384 common/crypto/spc-sanity.cpp \
385 common/crypto/x509-asn1-decoder.cpp \
386 common/crypto/x509-certpaths.cpp \
387 common/crypto/x509-core.cpp \
388 common/crypto/x509-file.cpp \
389 common/crypto/x509-init.cpp \
390 common/crypto/x509-sanity.cpp \
391 common/crypto/x509-verify.cpp \
392 common/crypto/taf-asn1-decoder.cpp \
393 common/crypto/taf-core.cpp \
394 common/crypto/taf-init.cpp \
395 common/crypto/taf-sanity.cpp \
396 common/crypto/tsp-asn1-decoder.cpp \
397 common/crypto/tsp-core.cpp \
398 common/crypto/tsp-init.cpp \
399 common/crypto/tsp-sanity.cpp \
400 common/crypto/store.cpp \
401 common/crypto/store-inmem.cpp \
402 common/crypto/store-cert-add-basic.cpp \
403 common/crypto/RTCrStoreCertAddFromJavaKeyStore.cpp \
404 common/crypto/RTCrStoreCertAddWantedFromFishingExpedition.cpp \
405 common/crypto/RTCrStoreCertExportAsPem.cpp \
406 common/crypto/RTCrStoreCreateSnapshotOfUserAndSystemTrustedCAsAndCerts.cpp \
407 common/dbg/dbg.cpp \
408 common/dbg/dbgas.cpp \
409 common/dbg/dbgcfg.cpp \
410 common/dbg/dbgmod.cpp \
411 common/dbg/dbgmodldr.cpp \
412 common/dbg/dbgmodcontainer.cpp \
413 common/dbg/dbgmoddeferred.cpp \
414 common/dbg/dbgmodexports.cpp \
415 common/dbg/dbgmodcodeview.cpp \
416 common/dbg/dbgmoddwarf.cpp \
417 common/dbg/dbgmodnm.cpp \
418 common/dvm/dvm.cpp \
419 common/dvm/dvmbsdlabel.cpp \
420 common/dvm/dvmgpt.cpp \
421 common/dvm/dvmmbr.cpp \
422 common/dvm/dvmvfs.cpp \
423 common/err/errinfo.cpp \
424 common/err/errinfolog.cpp \
425 common/err/errinfo-alloc.cpp \
426 common/err/errmsg.cpp \
427 common/err/RTErrConvertFromErrno.cpp \
428 common/err/RTErrConvertToErrno.cpp \
429 common/fs/ext2vfs.cpp \
430 common/fs/fatvfs.cpp \
431 common/fs/isovfs.cpp \
432 common/fs/isomaker.cpp \
433 common/fs/isomakercmd.cpp \
434 common/fs/isomakerimport.cpp \
435 common/fs/ntfsvfs.cpp \
436 common/fs/RTFsCmdLs.cpp \
437 common/ldr/ldr.cpp \
438 common/ldr/ldrELF.cpp \
439 common/ldr/ldrEx.cpp \
440 common/ldr/ldrFile.cpp \
441 common/ldr/ldrVfsFile.cpp \
442 common/ldr/ldrMemory.cpp \
443 common/ldr/ldrNative.cpp \
444 common/ldr/ldrPE.cpp \
445 common/log/log.cpp \
446 common/log/logellipsis.cpp \
447 common/log/logrel.cpp \
448 common/log/logrelellipsis.cpp \
449 common/log/logcom.cpp \
450 common/log/logformat.cpp \
451 common/log/tracebuf.cpp \
452 common/log/tracedefault.cpp \
453 common/log/tracelogreader.cpp \
454 common/log/tracelogwriter.cpp \
455 common/math/bignum.cpp \
456 common/misc/RTAssertMsg1Weak.cpp \
457 common/misc/RTAssertMsg2.cpp \
458 common/misc/RTAssertMsg2Add.cpp \
459 common/misc/RTAssertMsg2AddWeak.cpp \
460 common/misc/RTAssertMsg2AddWeakV.cpp \
461 common/misc/RTAssertMsg2Weak.cpp \
462 common/misc/RTAssertMsg2WeakV.cpp \
463 common/misc/RTFileModeToFlags.cpp \
464 common/misc/RTFileOpenF.cpp \
465 common/misc/RTFileOpenV.cpp \
466 common/misc/RTMemWipeThoroughly.cpp \
467 common/misc/assert.cpp \
468 common/misc/buildconfig.cpp \
469 common/misc/cidr.cpp \
470 common/misc/getopt.cpp \
471 common/misc/getoptargv.cpp \
472 common/misc/handle.cpp \
473 common/misc/handletable.cpp \
474 common/misc/handletablectx.cpp \
475 common/misc/handletablesimple.cpp \
476 common/misc/inifile.cpp \
477 common/misc/json.cpp \
478 common/misc/lockvalidator.cpp \
479 common/misc/message.cpp \
480 common/misc/messagerefentry.cpp \
481 common/misc/once.cpp \
482 common/misc/req.cpp \
483 common/misc/reqpool.cpp \
484 common/misc/reqqueue.cpp \
485 common/misc/sanity-c.c \
486 common/misc/sanity-cpp.cpp \
487 common/misc/semspingpong.cpp \
488 common/misc/sg.cpp \
489 common/misc/circbuf.cpp \
490 common/misc/thread.cpp \
491 common/misc/term.cpp \
492 common/misc/uri.cpp \
493 common/misc/zero.asm \
494 common/net/netaddrstr2.cpp \
495 common/net/macstr.cpp \
496 common/path/rtPathRootSpecLen.cpp \
497 common/path/rtPathVolumeSpecLen.cpp \
498 common/path/RTPathAbsDup.cpp \
499 common/path/RTPathAbsEx.cpp \
500 common/path/RTPathAbsExDup.cpp \
501 common/path/RTPathAppend.cpp \
502 common/path/RTPathAppendEx.cpp \
503 common/path/RTPathCalcRelative.cpp \
504 common/path/RTPathChangeToDosSlashes.cpp \
505 common/path/RTPathChangeToUnixSlashes.cpp \
506 common/path/RTPathCopyComponents.cpp \
507 common/path/RTPathCountComponents.cpp \
508 common/path/RTPathEnsureTrailingSeparator.cpp \
509 common/path/RTPathExt.cpp \
510 common/path/RTPathFilename.cpp \
511 common/path/RTPathGlob.cpp \
512 common/path/RTPathHasExt.cpp \
513 common/path/RTPathHasPath.cpp \
514 common/path/RTPathJoin.cpp \
515 common/path/RTPathJoinA.cpp \
516 common/path/RTPathJoinEx.cpp \
517 common/path/RTPathParse.cpp \
518 common/path/RTPathParsedReassemble.cpp \
519 common/path/RTPathParseSimple.cpp \
520 common/path/RTPathRealDup.cpp \
521 common/path/RTPathRmCmd.cpp \
522 common/path/RTPathSkipRootSpec.cpp \
523 common/path/RTPathSplit.cpp \
524 common/path/RTPathSplitA.cpp \
525 common/path/RTPathSplitReassemble.cpp \
526 common/path/RTPathStartsWithRoot.cpp \
527 common/path/RTPathStripExt.cpp \
528 common/path/RTPathStripFilename.cpp \
529 common/path/RTPathStripTrailingSlash.cpp \
530 common/path/RTPathTraverseList.cpp \
531 common/path/comparepaths.cpp \
532 common/rand/rand.cpp \
533 common/rand/randadv.cpp \
534 common/rand/randparkmiller.cpp \
535 common/sort/RTSortIsSorted.cpp \
536 common/sort/RTSortApvIsSorted.cpp \
537 common/sort/shellsort.cpp \
538 common/string/RTStrCat.cpp \
539 common/string/RTStrCatEx.cpp \
540 common/string/RTStrCatP.cpp \
541 common/string/RTStrCatPEx.cpp \
542 common/string/RTStrCmp.cpp \
543 common/string/RTStrCopy.cpp \
544 common/string/RTStrCopyEx.cpp \
545 common/string/RTStrCopyP.cpp \
546 common/string/RTStrCopyPEx.cpp \
547 common/string/RTStrNCmp.cpp \
548 common/string/RTStrNLen.cpp \
549 common/string/RTStrNLenEx.cpp \
550 common/string/RTStrPrintHexBytes.cpp \
551 common/string/RTStrStartsWith.cpp \
552 common/string/RTStrIStartsWith.cpp \
553 common/string/RTStrICmpAscii.cpp \
554 common/string/RTStrNICmpAscii.cpp \
555 common/string/RTStrStr.cpp \
556 common/string/RTUtf16Copy.cpp \
557 common/string/RTUtf16CopyAscii.cpp \
558 common/string/RTUtf16Cat.cpp \
559 common/string/RTUtf16CatAscii.cpp \
560 common/string/RTUtf16CmpAscii.cpp \
561 common/string/RTUtf16ICmpAscii.cpp \
562 common/string/RTUtf16End.cpp \
563 common/string/RTUtf16NCmpAscii.cpp \
564 common/string/RTUtf16NICmpAscii.cpp \
565 common/string/RTUtf16NLen.cpp \
566 common/string/RTUtf16NLenEx.cpp \
567 common/string/RTUtf16PrintHexBytes.cpp \
568 common/string/base64.cpp \
569 common/string/simplepattern.cpp \
570 common/string/straprintf.cpp \
571 common/string/strformat.cpp \
572 common/string/strformatnum.cpp \
573 common/string/strformatrt.cpp \
574 common/string/strformattype.cpp \
575 common/string/strhash1.cpp \
576 common/string/stringalloc.cpp \
577 common/string/strprintf.cpp \
578 common/string/strprintf2.cpp \
579 common/string/strcache.cpp \
580 common/string/strspace.cpp \
581 common/string/strstrip.cpp \
582 common/string/strtonum.cpp \
583 common/string/strversion.cpp \
584 common/string/uni.cpp \
585 common/string/unidata-flags.cpp \
586 common/string/unidata-lower.cpp \
587 common/string/unidata-upper.cpp \
588 common/string/utf-16.cpp \
589 common/string/utf-16-case.cpp \
590 common/string/utf-16-latin-1.cpp \
591 common/string/utf-8.cpp \
592 common/string/utf-8-case.cpp \
593 common/string/utf-8-case2.cpp \
594 common/string/ministring.cpp \
595 common/table/avlgcptr.cpp \
596 common/table/avlhcphys.cpp \
597 common/table/avlgcphys.cpp \
598 common/table/avllu32.cpp \
599 common/table/avlou32.cpp \
600 common/table/avlogcphys.cpp \
601 common/table/avlogcptr.cpp \
602 common/table/avlohcphys.cpp \
603 common/table/avloioport.cpp \
604 common/table/avlpv.cpp \
605 common/table/avlrgcptr.cpp \
606 common/table/avlrogcphys.cpp \
607 common/table/avlrogcptr.cpp \
608 common/table/avlroioport.cpp \
609 common/table/avlroogcptr.cpp \
610 common/table/avlrpv.cpp \
611 common/table/avlruintptr.cpp \
612 common/table/avlrfoff.cpp \
613 common/table/avlru64.cpp \
614 common/table/avlu32.cpp \
615 common/table/avlu64.cpp \
616 common/table/avluintptr.cpp \
617 common/table/avlul.cpp \
618 common/table/table.cpp \
619 common/time/time.cpp \
620 common/time/timeprog.cpp \
621 common/time/timesup.cpp \
622 common/time/timezoneinfo.cpp \
623 common/vfs/vfsbase.cpp \
624 common/vfs/vfschain.cpp \
625 common/vfs/vfsfss2dir.cpp \
626 common/vfs/vfsiosmisc.cpp \
627 common/vfs/vfsmemory.cpp \
628 common/vfs/vfsmisc.cpp \
629 common/vfs/vfsmount.cpp \
630 common/vfs/vfsmsg.cpp \
631 common/vfs/vfsprogress.cpp \
632 common/vfs/vfsreadahead.cpp \
633 common/vfs/vfsstddir.cpp \
634 common/vfs/vfsstdfile.cpp \
635 common/vfs/vfsstdpipe.cpp \
636 common/zip/tar.cpp \
637 common/zip/tarcmd.cpp \
638 common/zip/tarvfs.cpp \
639 common/zip/tarvfswriter.cpp \
640 common/zip/gzipvfs.cpp \
641 common/zip/gzipcmd.cpp \
642 common/zip/pkzip.cpp \
643 common/zip/pkzipvfs.cpp \
644 common/zip/unzipcmd.cpp \
645 common/zip/zip.cpp \
646 generic/createtemp-generic.cpp \
647 generic/critsect-generic.cpp \
648 generic/critsectrw-generic.cpp \
649 generic/env-generic.cpp \
650 generic/RTDirCreateUniqueNumbered-generic.cpp \
651 generic/RTEnvDupEx-generic.cpp \
652 generic/RTFileCopy-generic.cpp \
653 generic/RTFileQuerySize-generic.cpp \
654 generic/RTFileReadAll-generic.cpp \
655 generic/RTFileReadAllEx-generic.cpp \
656 generic/RTFileReadAllByHandle-generic.cpp \
657 generic/RTFileReadAllByHandleEx-generic.cpp \
658 generic/RTFileReadAllFree-generic.cpp \
659 generic/RTLogWriteStdErr-generic.cpp \
660 generic/RTLogWriteStdOut-generic.cpp \
661 generic/RTLogWriteUser-generic.cpp \
662 generic/RTPathGetCurrentDrive-generic.cpp \
663 generic/RTPathIsSame-generic.cpp \
664 generic/RTTimerLRCreate-generic.cpp \
665 generic/rtStrFormatKernelAddress-generic.cpp \
666 generic/mempool-generic.cpp \
667 generic/semfastmutex-generic.cpp \
668 generic/semxroads-generic.cpp \
669 generic/spinlock-generic.cpp \
670 generic/timerlr-generic.cpp \
671 r3/alloc-ef.cpp \
672 r3/alloc.cpp \
673 r3/allocex.cpp \
674 r3/dir.cpp \
675 r3/dir2.cpp \
676 r3/fileio.cpp \
677 r3/fs.cpp \
678 r3/init.cpp \
679 r3/isofs.cpp \
680 r3/memsafer-r3.cpp \
681 r3/path.cpp \
682 r3/poll.cpp \
683 r3/process.cpp \
684 r3/socket.cpp \
685 r3/stream.cpp \
686 r3/test.cpp \
687 r3/testi.cpp \
688 r3/tcp.cpp \
689 r3/udp.cpp \
690 r3/generic/semspinmutex-r3-generic.cpp \
691 r3/xml.cpp \
692 common/zip/xarvfs.cpp
693
694
695#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
696# RuntimeR3_SOURCES += common/time/timesupA.asm
697#else
698 RuntimeR3_SOURCES += common/time/timesupref.cpp
699#endif
700
701RuntimeR3_SOURCES.x86 += \
702 generic/RTMpGetDescription-generic.cpp \
703 common/misc/RTSystemIsInsideVM-amd64-x86.cpp
704RuntimeR3_SOURCES.amd64 += \
705 generic/RTMpGetDescription-generic.cpp \
706 common/misc/RTSystemIsInsideVM-amd64-x86.cpp
707RuntimeR3_SOURCES.sparc32 += \
708 generic/RTMpGetDescription-generic-stub.cpp \
709 generic/RTSystemIsInsideVM-generic.cpp \
710 common/asm/asm-fake.cpp
711RuntimeR3_SOURCES.sparc64 += \
712 generic/RTMpGetDescription-generic-stub.cpp \
713 generic/RTSystemIsInsideVM-generic.cpp \
714 common/asm/asm-fake.cpp
715
716ifdef IPRT_WITH_LZJB
717 RuntimeR3_SOURCES += common/misc/lzjb.c
718endif
719
720# AMD64 / x86 assembly code.
721RuntimeR3_SOURCES.x86 += \
722 common/asm/ASMCpuIdExSlow.asm \
723 common/asm/ASMAtomicUoAndU64.asm \
724 common/asm/ASMAtomicUoAndU32.asm \
725 common/asm/ASMAtomicUoDecU32.asm \
726 common/asm/ASMAtomicUoIncU32.asm \
727 common/asm/ASMAtomicUoOrU64.asm \
728 common/asm/ASMAtomicUoOrU32.asm \
729 common/asm/ASMMemFirstMismatchingU8.asm \
730 common/asm/ASMRdMsrEx.asm \
731 common/asm/ASMWrMsrEx.asm \
732 common/asm/ASMGetXcr0.asm \
733 common/asm/ASMSetXcr0.asm \
734 common/asm/ASMXSave.asm \
735 common/asm/ASMXRstor.asm \
736 common/asm/ASMFxSave.asm \
737 common/asm/ASMFxRstor.asm \
738 common/asm/ASMSerializeInstruction-cpuid.asm \
739 common/asm/ASMSerializeInstruction-iret.asm \
740 common/asm/ASMSerializeInstruction-rdtscp.asm \
741 common/math/bignum-amd64-x86.asm
742RuntimeR3_SOURCES.amd64 += \
743 common/asm/ASMCpuIdExSlow.asm \
744 common/asm/ASMAtomicUoAndU64.asm \
745 common/asm/ASMAtomicUoAndU32.asm \
746 common/asm/ASMAtomicUoDecU32.asm \
747 common/asm/ASMAtomicUoIncU32.asm \
748 common/asm/ASMAtomicUoOrU64.asm \
749 common/asm/ASMAtomicUoOrU32.asm \
750 common/asm/ASMMemFirstMismatchingU8.asm \
751 common/asm/ASMRdMsrEx.asm \
752 common/asm/ASMWrMsrEx.asm \
753 common/asm/ASMGetXcr0.asm \
754 common/asm/ASMSetXcr0.asm \
755 common/asm/ASMXSave.asm \
756 common/asm/ASMXRstor.asm \
757 common/asm/ASMFxSave.asm \
758 common/asm/ASMFxRstor.asm \
759 common/asm/ASMSerializeInstruction-cpuid.asm \
760 common/asm/ASMSerializeInstruction-iret.asm \
761 common/asm/ASMSerializeInstruction-rdtscp.asm \
762 common/math/bignum-amd64-x86.asm \
763 common/math/RTUInt128MulByU64.asm
764
765# Some versions of GCC might require this.
766RuntimeR3_SOURCES.x86 += \
767 common/asm/ASMAtomicXchgU64.asm \
768 common/asm/ASMAtomicCmpXchgU64.asm \
769 common/asm/ASMAtomicCmpXchgExU64.asm \
770 common/asm/ASMAtomicReadU64.asm \
771 common/asm/ASMAtomicUoReadU64.asm
772
773
774ifdef IPRT_WITH_KSTUFF
775 RuntimeR3_SOURCES += \
776 common/ldr/ldrkStuff.cpp
777endif
778
779# VBox specific stuff.
780RuntimeR3_SOURCES += \
781 VBox/RTAssertShouldPanic-vbox.cpp \
782 VBox/log-vbox.cpp
783ifneq ($(KBUILD_TARGET),win)
784RuntimeR3_SOURCES += \
785 common/err/errmsgxpcom.cpp
786endif
787if1of ($(KBUILD_TARGET),freebsd linux netbsd openbsd solaris)
788RuntimeR3_SOURCES += \
789 $(if $(VBOX_WITH_DBUS),VBox/dbus.cpp,)
790endif
791
792if1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
793RuntimeR3_SOURCES := \
794 $(filter-out common/misc/zero.asm, $(RuntimeR3_SOURCES)) \
795 common/misc/zero.cpp
796endif
797
798VBOX_WITH_NT_DIRENUM = 1
799RuntimeR3_SOURCES.win = \
800 common/dbg/dbgmoddbghelp.cpp \
801 generic/cdrom-generic.cpp \
802 generic/RTDirExists-generic.cpp \
803 generic/RTDirSetTimes-generic.cpp \
804 generic/RTFileExists-generic.cpp \
805 generic/RTFileSetAllocationSize-generic.cpp \
806 generic/RTMpGetCurFrequency-generic.cpp \
807 generic/RTMpGetMaxFrequency-generic.cpp \
808 generic/RTPathAbs-generic.cpp \
809 generic/RTRandAdvCreateSystemFaster-generic.cpp \
810 generic/RTRandAdvCreateSystemTruer-generic.cpp \
811 generic/RTSemEventWait-generic.cpp \
812 generic/RTSemEventMultiWait-2-ex-generic.cpp \
813 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
814 generic/RTSemMutexRequest-generic.cpp \
815 generic/RTSemMutexRequestDebug-generic.cpp \
816 generic/RTThreadSetAffinityToCpu-generic.cpp \
817 generic/mppresent-generic-online.cpp \
818 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
819 generic/uuid-generic.cpp \
820 generic/RTProcDaemonize-generic.cpp \
821 generic/RTProcIsRunningByName-generic.cpp \
822 generic/RTThreadGetNativeState-generic.cpp \
823 nt/RTErrConvertFromNtStatus.cpp \
824 nt/RTNtPathExpand8dot3Path.cpp \
825 nt/RTNtPathFindPossible8dot3Name.cpp \
826 nt/fileioutils-nt.cpp \
827 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
828 r3/nt/dirrel-r3-nt.cpp \
829 r3/nt/fs-nt.cpp \
830 r3/nt/pathint-nt.cpp \
831 r3/nt/RTFileQueryFsSizes-nt.cpp \
832 r3/nt/RTFileSetMode-r3-nt.cpp \
833 r3/nt/RTPathQueryInfo-nt.cpp \
834 r3/nt/RTPathSetMode-r3-nt.cpp \
835 r3/nt/RTProcQueryParent-r3-nt.cpp \
836 r3/win/env-win.cpp \
837 r3/win/RTCrStoreCreateSnapshotById-win.cpp \
838 r3/win/RTHandleGetStandard-win.cpp \
839 r3/win/RTLocaleQueryNormalizedBaseLocaleName-win.cpp \
840 r3/win/RTLocaleQueryUserCountryCode-win.cpp \
841 r3/win/RTSystemQueryOSInfo-win.cpp \
842 r3/win/RTSystemShutdown-win.cpp \
843 r3/win/RTSystemQueryDmiString-win.cpp \
844 r3/win/RTSystemQueryTotalRam-win.cpp \
845 r3/win/RTTimeZoneGetCurrent-win.cpp \
846 r3/win/alloc-win.cpp \
847 r3/win/allocex-win.cpp \
848 r3/win/dir-win.cpp \
849 $(if-expr defined(VBOX_WITH_NT_DIRENUM),r3/nt/direnum-r3-nt.cpp,r3/win/direnum-win.cpp generic/RTDirQueryInfo-generic.cpp) \
850 r3/win/errvars-win.cpp \
851 r3/win/fileio-win.cpp \
852 r3/win/init-win.cpp \
853 r3/win/krnlmod-win.cpp \
854 r3/win/ldrNative-win.cpp \
855 r3/win/localipc-win.cpp \
856 r3/win/mp-win.cpp \
857 r3/win/path-win.cpp \
858 r3/win/pipe-win.cpp \
859 r3/win/process-win.cpp \
860 r3/win/RTLogWriteDebugger-win.cpp \
861 r3/win/rtProcInitExePath-win.cpp \
862 r3/win/sched-win.cpp \
863 r3/win/semevent-win.cpp \
864 r3/win/semeventmulti-win.cpp \
865 r3/win/semmutex-win.cpp \
866 r3/win/serialport-win.cpp \
867 r3/win/symlink-win.cpp \
868 r3/win/thread-win.cpp \
869 r3/win/thread2-win.cpp \
870 $(if-expr 1,r3/win/time-win.cpp,r3/nt/time-nt.cpp) \
871 r3/win/time2-win.cpp \
872 r3/win/timer-win.cpp \
873 r3/win/tls-win.cpp \
874 r3/win/utf16locale-win.cpp \
875 r3/win/utf8-win.cpp \
876 r3/win/RTUuidCreate-win.cpp \
877 win/errmsgwin.cpp \
878 win/RTErrConvertFromWin32.cpp \
879 common/string/mempcpy.asm
880
881RuntimeR3_SOURCES.win.amd64 := \
882 $(RuntimeWin64ASM_SOURCES) \
883 common/string/memrchr.asm
884RuntimeR3_SOURCES.win.x86 := \
885 $(RuntimeWin32ASM_SOURCES) \
886 common/string/memrchr.asm
887
888RuntimeR3_SOURCES.linux = \
889 generic/cdrom-generic.cpp \
890 generic/RTCrStoreCreateSnapshotById-generic.cpp \
891 generic/RTDirQueryInfo-generic.cpp \
892 generic/RTDirSetTimes-generic.cpp \
893 generic/RTFileMove-generic.cpp \
894 generic/RTLogWriteDebugger-generic.cpp \
895 generic/RTPathAbs-generic.cpp \
896 generic/RTPathGetCurrentOnDrive-generic.cpp \
897 generic/RTProcDaemonize-generic.cpp \
898 generic/RTSemEventMultiWait-2-ex-generic.cpp \
899 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
900 generic/RTTimeLocalNow-generic.cpp \
901 generic/RTTimerCreate-generic.cpp \
902 generic/RTThreadSetAffinityToCpu-generic.cpp \
903 generic/RTUuidCreate-generic.cpp \
904 generic/mppresent-generic.cpp \
905 generic/utf16locale-generic.cpp \
906 generic/uuid-generic.cpp \
907 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
908 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
909 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
910 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
911 r3/generic/dirrel-r3-generic.cpp \
912 r3/posix/allocex-r3-posix.cpp \
913 r3/linux/RTThreadGetNativeState-linux.cpp \
914 r3/linux/krnlmod-linux.cpp \
915 r3/linux/mp-linux.cpp \
916 r3/linux/rtProcInitExePath-linux.cpp \
917 r3/linux/sched-linux.cpp \
918 r3/linux/sysfs.cpp \
919 r3/linux/time-linux.cpp \
920 r3/linux/thread-affinity-linux.cpp \
921 r3/linux/RTFileSetAllocationSize-linux.cpp \
922 r3/linux/RTProcIsRunningByName-linux.cpp \
923 r3/linux/RTSystemQueryDmiString-linux.cpp \
924 r3/linux/RTSystemShutdown-linux.cpp \
925 r3/posix/RTFileQueryFsSizes-posix.cpp \
926 r3/posix/RTHandleGetStandard-posix.cpp \
927 r3/posix/RTMemProtect-posix.cpp \
928 r3/posix/RTPathUserHome-posix.cpp \
929 r3/posix/RTSystemQueryOSInfo-posix.cpp \
930 r3/linux/systemmem-linux.cpp \
931 r3/posix/RTTimeNow-posix.cpp \
932 r3/posix/RTTimeSet-posix.cpp \
933 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
934 r3/posix/dir-posix.cpp \
935 r3/posix/env-posix.cpp \
936 r3/posix/errvars-posix.cpp \
937 r3/posix/fileio-posix.cpp \
938 r3/posix/fileio2-posix.cpp \
939 r3/posix/filelock-posix.cpp \
940 r3/posix/fs-posix.cpp \
941 r3/posix/fs2-posix.cpp \
942 r3/posix/fs3-posix.cpp \
943 r3/posix/ldrNative-posix.cpp \
944 r3/posix/localipc-posix.cpp \
945 r3/posix/path-posix.cpp \
946 r3/posix/path2-posix.cpp \
947 r3/posix/pathhost-posix.cpp \
948 r3/posix/RTPathUserDocuments-posix.cpp \
949 r3/posix/pipe-posix.cpp \
950 r3/posix/process-posix.cpp \
951 r3/posix/process-creation-posix.cpp \
952 r3/posix/rand-posix.cpp \
953 r3/posix/semrw-posix.cpp \
954 r3/posix/serialport-posix.cpp \
955 r3/posix/symlink-posix.cpp \
956 r3/posix/thread-posix.cpp \
957 r3/posix/thread2-posix.cpp \
958 r3/posix/timelocal-posix.cpp \
959 r3/posix/timer-posix.cpp \
960 r3/posix/tls-posix.cpp \
961 r3/posix/utf8-posix.cpp
962ifdef IPRT_WITH_FUTEX_BASED_SEMS
963 RuntimeR3_SOURCES.linux += \
964 r3/linux/semevent-linux.cpp \
965 r3/linux/semeventmulti-linux.cpp \
966 r3/linux/semmutex-linux.cpp
967else
968 RuntimeR3_SOURCES.linux.x86 += \
969 r3/posix/semevent-posix.cpp \
970 r3/posix/semeventmulti-posix.cpp \
971 r3/posix/semmutex-posix.cpp
972 RuntimeR3_SOURCES.linux.amd64 += \
973 r3/linux/semevent-linux.cpp \
974 r3/linux/semeventmulti-linux.cpp
975 ifdef RT_NEW_LINUX_MUTEX_CODE
976 RuntimeR3_SOURCES.linux.amd64 += \
977 r3/linux/semmutex-linux.cpp
978 else
979 RuntimeR3_SOURCES.linux.amd64 += \
980 r3/posix/semmutex-posix.cpp
981 endif
982endif
983
984RuntimeR3_SOURCES.os2 = \
985 common/string/memrchr.asm \
986 generic/cdrom-generic.cpp \
987 generic/RTCrStoreCreateSnapshotById-generic.cpp \
988 generic/RTDirQueryInfo-generic.cpp \
989 generic/RTDirSetTimes-generic.cpp \
990 generic/RTFileMove-generic.cpp \
991 generic/RTFileSetAllocationSize-generic.cpp \
992 generic/RTLogWriteDebugger-generic.cpp \
993 generic/RTPathAbs-generic.cpp \
994 generic/RTPathGetCurrentOnDrive-generic.cpp \
995 generic/RTProcDaemonize-generic.cpp \
996 generic/RTRandAdvCreateSystemFaster-generic.cpp \
997 generic/RTRandAdvCreateSystemTruer-generic.cpp \
998 generic/RTSystemQueryDmiString-generic.cpp \
999 generic/RTSystemShutdown-generic.cpp \
1000 generic/RTTimeLocalNow-generic.cpp \
1001 generic/RTTimerCreate-generic.cpp \
1002 generic/RTThreadSetAffinityToCpu-generic.cpp \
1003 generic/RTUuidCreate-generic.cpp \
1004 generic/mppresent-generic.cpp \
1005 generic/RTSemEventWait-generic.cpp \
1006 generic/RTSemEventMultiWait-generic.cpp \
1007 generic/RTSemMutexRequest-generic.cpp \
1008 generic/RTSemMutexRequestDebug-generic.cpp \
1009 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
1010 generic/timer-generic.cpp \
1011 generic/utf16locale-generic.cpp \
1012 generic/uuid-generic.cpp \
1013 generic/RTMpGetCoreCount-generic.cpp \
1014 generic/RTMpGetOnlineCoreCount-generic.cpp \
1015 generic/RTMpGetCurFrequency-generic.cpp \
1016 generic/RTMpGetMaxFrequency-generic.cpp \
1017 generic/RTProcIsRunningByName-generic.cpp \
1018 generic/RTThreadGetNativeState-generic.cpp \
1019 os2/RTErrConvertFromOS2.cpp \
1020 r3/generic/allocex-r3-generic.cpp \
1021 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1022 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1023 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1024 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1025 r3/generic/dirrel-r3-generic.cpp \
1026 r3/os2/filelock-os2.cpp \
1027 r3/os2/mp-os2.cpp \
1028 r3/os2/pipe-os2.cpp \
1029 r3/os2/rtProcInitExePath-os2.cpp \
1030 r3/os2/sched-os2.cpp \
1031 r3/os2/sems-os2.cpp \
1032 r3/os2/systemmem-os2.cpp \
1033 r3/os2/thread-os2.cpp \
1034 r3/os2/time-os2.cpp \
1035 r3/posix/RTFileQueryFsSizes-posix.cpp \
1036 r3/posix/RTHandleGetStandard-posix.cpp \
1037 r3/posix/RTMemProtect-posix.cpp \
1038 r3/posix/RTPathUserHome-posix.cpp \
1039 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1040 r3/posix/RTTimeNow-posix.cpp \
1041 r3/posix/RTTimeSet-posix.cpp \
1042 r3/posix/dir-posix.cpp \
1043 r3/posix/env-posix.cpp \
1044 r3/posix/errvars-posix.cpp \
1045 r3/posix/fileio-posix.cpp \
1046 r3/posix/fileio2-posix.cpp \
1047 r3/posix/fs-posix.cpp \
1048 r3/posix/fs2-posix.cpp \
1049 r3/posix/fs3-posix.cpp \
1050 r3/posix/ldrNative-posix.cpp \
1051 r3/posix/localipc-posix.cpp \
1052 r3/posix/path-posix.cpp \
1053 r3/posix/path2-posix.cpp \
1054 r3/posix/pathhost-posix.cpp \
1055 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1056 r3/posix/RTPathUserDocuments-posix.cpp \
1057 r3/posix/process-posix.cpp \
1058 r3/posix/process-creation-posix.cpp \
1059 r3/posix/symlink-posix.cpp \
1060 r3/posix/timelocal-posix.cpp \
1061 r3/posix/utf8-posix.cpp
1062
1063RuntimeR3_SOURCES.darwin = \
1064 darwin/RTErrConvertFromDarwin.cpp \
1065 darwin/RTErrConvertFromDarwinCOM.cpp \
1066 darwin/RTErrConvertFromDarwinIO.cpp \
1067 darwin/RTErrConvertFromDarwinKern.cpp \
1068 generic/cdrom-generic.cpp \
1069 generic/RTDirQueryInfo-generic.cpp \
1070 generic/RTDirSetTimes-generic.cpp \
1071 generic/RTFileMove-generic.cpp \
1072 generic/RTFileSetAllocationSize-generic.cpp \
1073 generic/RTLogWriteDebugger-generic.cpp \
1074 generic/RTPathAbs-generic.cpp \
1075 generic/RTPathGetCurrentOnDrive-generic.cpp \
1076 generic/RTProcDaemonize-generic.cpp \
1077 generic/RTThreadGetAffinity-stub-generic.cpp \
1078 generic/RTThreadSetAffinity-stub-generic.cpp \
1079 generic/RTThreadSetAffinityToCpu-generic.cpp \
1080 generic/RTTimeLocalNow-generic.cpp \
1081 generic/RTTimerCreate-generic.cpp \
1082 generic/RTUuidCreate-generic.cpp \
1083 generic/mppresent-generic.cpp \
1084 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1085 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1086 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
1087 generic/RTSystemShutdown-generic.cpp \
1088 generic/timer-generic.cpp \
1089 generic/utf16locale-generic.cpp \
1090 generic/uuid-generic.cpp\
1091 generic/RTProcIsRunningByName-generic.cpp \
1092 generic/RTThreadGetNativeState-generic.cpp \
1093 r3/darwin/RTCrStoreCreateSnapshotById-darwin.cpp \
1094 r3/darwin/filelock-darwin.cpp \
1095 r3/darwin/krnlmod-darwin.cpp \
1096 r3/darwin/mp-darwin.cpp \
1097 r3/darwin/pathhost-darwin.cpp \
1098 r3/darwin/rtProcInitExePath-darwin.cpp \
1099 r3/darwin/RTSystemQueryDmiString-darwin.cpp \
1100 r3/darwin/sched-darwin.cpp \
1101 r3/darwin/systemmem-darwin.cpp \
1102 r3/darwin/time-darwin.cpp \
1103 r3/darwin/RTPathUserDocuments-darwin.cpp \
1104 r3/generic/allocex-r3-generic.cpp \
1105 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1106 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1107 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1108 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1109 r3/generic/dirrel-r3-generic.cpp \
1110 r3/posix/RTFileQueryFsSizes-posix.cpp \
1111 r3/posix/RTHandleGetStandard-posix.cpp \
1112 r3/posix/RTMemProtect-posix.cpp \
1113 r3/posix/RTPathUserHome-posix.cpp \
1114 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1115 r3/posix/RTTimeSet-posix.cpp \
1116 r3/posix/dir-posix.cpp \
1117 r3/posix/env-posix.cpp \
1118 r3/posix/errvars-posix.cpp \
1119 r3/posix/fileio-posix.cpp \
1120 r3/posix/fileio2-posix.cpp \
1121 r3/posix/fs-posix.cpp \
1122 r3/posix/fs2-posix.cpp \
1123 r3/posix/fs3-posix.cpp \
1124 r3/posix/ldrNative-posix.cpp \
1125 r3/posix/localipc-posix.cpp \
1126 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1127 r3/posix/path-posix.cpp \
1128 r3/posix/path2-posix.cpp \
1129 r3/posix/pipe-posix.cpp \
1130 r3/posix/process-posix.cpp \
1131 r3/posix/process-creation-posix.cpp \
1132 r3/posix/rand-posix.cpp \
1133 r3/posix/semevent-posix.cpp \
1134 r3/posix/semeventmulti-posix.cpp \
1135 r3/posix/semmutex-posix.cpp \
1136 r3/posix/serialport-posix.cpp \
1137 r3/posix/symlink-posix.cpp \
1138 r3/posix/thread-posix.cpp \
1139 r3/posix/thread2-posix.cpp \
1140 r3/posix/timelocal-posix.cpp \
1141 r3/posix/tls-posix.cpp \
1142 r3/posix/utf8-posix.cpp
1143RuntimeR3_SOURCES.darwin.x86 += common/string/memrchr.asm
1144RuntimeR3_SOURCES.darwin.amd64 += common/string/memrchr.asm
1145
1146## @todo Make BSD sched, implement RTMP*.
1147RuntimeR3_SOURCES.freebsd = \
1148 generic/cdrom-generic.cpp \
1149 generic/RTCrStoreCreateSnapshotById-generic.cpp \
1150 generic/RTDirQueryInfo-generic.cpp \
1151 generic/RTDirSetTimes-generic.cpp \
1152 generic/RTFileMove-generic.cpp \
1153 generic/RTFileSetAllocationSize-generic.cpp \
1154 generic/RTLogWriteDebugger-generic.cpp \
1155 generic/RTPathAbs-generic.cpp \
1156 generic/RTPathGetCurrentOnDrive-generic.cpp \
1157 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1158 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1159 generic/RTSystemQueryDmiString-generic.cpp \
1160 generic/RTSystemShutdown-generic.cpp \
1161 generic/RTThreadGetAffinity-stub-generic.cpp \
1162 generic/RTThreadSetAffinity-stub-generic.cpp \
1163 generic/RTThreadSetAffinityToCpu-generic.cpp \
1164 generic/RTTimeLocalNow-generic.cpp \
1165 generic/RTTimerCreate-generic.cpp \
1166 generic/RTUuidCreate-generic.cpp \
1167 generic/mppresent-generic.cpp \
1168 generic/sched-generic.cpp \
1169 generic/utf16locale-generic.cpp \
1170 generic/uuid-generic.cpp \
1171 generic/RTMpCpuId-generic.cpp \
1172 generic/RTMpGetCoreCount-generic.cpp \
1173 generic/RTMpGetOnlineCoreCount-generic.cpp \
1174 generic/RTProcDaemonize-generic.cpp \
1175 generic/RTProcIsRunningByName-generic.cpp \
1176 generic/RTThreadGetNativeState-generic.cpp \
1177 r3/freebsd/mp-freebsd.cpp \
1178 r3/freebsd/systemmem-freebsd.cpp \
1179 r3/freebsd/rtProcInitExePath-freebsd.cpp \
1180 r3/generic/allocex-r3-generic.cpp \
1181 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1182 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1183 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1184 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1185 r3/generic/dirrel-r3-generic.cpp \
1186 r3/posix/RTFileQueryFsSizes-posix.cpp \
1187 r3/posix/RTHandleGetStandard-posix.cpp \
1188 r3/posix/RTMemProtect-posix.cpp \
1189 r3/posix/RTPathUserHome-posix.cpp \
1190 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1191 r3/posix/RTTimeNow-posix.cpp \
1192 r3/posix/RTTimeSet-posix.cpp \
1193 r3/posix/dir-posix.cpp \
1194 r3/posix/env-posix.cpp \
1195 r3/posix/errvars-posix.cpp \
1196 r3/posix/fileio-posix.cpp \
1197 r3/posix/fileio2-posix.cpp \
1198 r3/posix/filelock-posix.cpp \
1199 r3/posix/fs-posix.cpp \
1200 r3/posix/fs2-posix.cpp \
1201 r3/posix/fs3-posix.cpp \
1202 r3/posix/ldrNative-posix.cpp \
1203 r3/posix/localipc-posix.cpp \
1204 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1205 r3/posix/path-posix.cpp \
1206 r3/posix/path2-posix.cpp \
1207 r3/posix/pathhost-posix.cpp \
1208 r3/posix/RTPathUserDocuments-posix.cpp \
1209 r3/posix/pipe-posix.cpp \
1210 r3/posix/process-posix.cpp \
1211 r3/posix/process-creation-posix.cpp \
1212 r3/posix/rand-posix.cpp \
1213 r3/posix/semevent-posix.cpp \
1214 r3/posix/semeventmulti-posix.cpp \
1215 r3/posix/semmutex-posix.cpp \
1216 r3/posix/semrw-posix.cpp \
1217 r3/posix/serialport-posix.cpp \
1218 r3/posix/symlink-posix.cpp \
1219 r3/posix/thread-posix.cpp \
1220 r3/posix/thread2-posix.cpp \
1221 r3/posix/time-posix.cpp \
1222 r3/posix/timelocal-posix.cpp \
1223 r3/posix/timer-posix.cpp \
1224 r3/posix/tls-posix.cpp \
1225 r3/posix/utf8-posix.cpp
1226
1227RuntimeR3_SOURCES.netbsd = \
1228 generic/cdrom-generic.cpp \
1229 generic/RTDirQueryInfo-generic.cpp \
1230 generic/RTDirSetTimes-generic.cpp \
1231 generic/RTFileMove-generic.cpp \
1232 generic/RTLogWriteDebugger-generic.cpp \
1233 generic/RTPathAbs-generic.cpp \
1234 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1235 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1236 generic/RTSystemQueryDmiString-generic.cpp \
1237 generic/RTSystemShutdown-generic.cpp \
1238 generic/RTThreadGetAffinity-stub-generic.cpp \
1239 generic/RTThreadSetAffinity-stub-generic.cpp \
1240 generic/RTThreadSetAffinityToCpu-generic.cpp \
1241 generic/RTTimeLocalNow-generic.cpp \
1242 generic/RTTimerCreate-generic.cpp \
1243 generic/RTUuidCreate-generic.cpp \
1244 generic/mppresent-generic.cpp \
1245 generic/sched-generic.cpp \
1246 generic/utf16locale-generic.cpp \
1247 generic/uuid-generic.cpp \
1248 generic/RTMpCpuId-generic.cpp \
1249 generic/RTMpGetCoreCount-generic.cpp \
1250 generic/RTMpGetOnlineCoreCount-generic.cpp \
1251 generic/RTProcDaemonize-generic.cpp \
1252 generic/RTProcIsRunningByName-generic.cpp \
1253 generic/RTThreadGetNativeState-generic.cpp \
1254 r3/netbsd/rtProcInitExePath-netbsd.cpp \
1255 r3/generic/allocex-r3-generic.cpp \
1256 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1257 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1258 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1259 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1260 r3/generic/dirrel-r3-generic.cpp \
1261 r3/posix/RTFileQueryFsSizes-posix.cpp \
1262 r3/posix/RTHandleGetStandard-posix.cpp \
1263 r3/posix/RTMemProtect-posix.cpp \
1264 r3/posix/RTPathUserHome-posix.cpp \
1265 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1266 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1267 r3/posix/RTTimeNow-posix.cpp \
1268 r3/posix/RTTimeSet-posix.cpp \
1269 r3/posix/dir-posix.cpp \
1270 r3/posix/env-posix.cpp \
1271 r3/posix/errvars-posix.cpp \
1272 r3/posix/fileio-posix.cpp \
1273 r3/posix/fileio2-posix.cpp \
1274 r3/posix/filelock-posix.cpp \
1275 r3/posix/fs-posix.cpp \
1276 r3/posix/fs2-posix.cpp \
1277 r3/posix/fs3-posix.cpp \
1278 r3/posix/ldrNative-posix.cpp \
1279 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1280 r3/posix/path-posix.cpp \
1281 r3/posix/path2-posix.cpp \
1282 r3/posix/pathhost-posix.cpp \
1283 r3/posix/RTPathUserDocuments-posix.cpp \
1284 r3/posix/pipe-posix.cpp \
1285 r3/posix/process-posix.cpp \
1286 r3/posix/process-creation-posix.cpp \
1287 r3/posix/rand-posix.cpp \
1288 r3/posix/semevent-posix.cpp \
1289 r3/posix/semeventmulti-posix.cpp \
1290 r3/posix/semmutex-posix.cpp \
1291 r3/posix/semrw-posix.cpp \
1292 r3/posix/serialport-posix.cpp \
1293 r3/posix/symlink-posix.cpp \
1294 r3/posix/thread-posix.cpp \
1295 r3/posix/thread2-posix.cpp \
1296 r3/posix/time-posix.cpp \
1297 r3/posix/timelocal-posix.cpp \
1298 r3/posix/timer-posix.cpp \
1299 r3/posix/tls-posix.cpp \
1300 r3/posix/utf8-posix.cpp
1301
1302RuntimeR3_SOURCES.solaris = \
1303 generic/cdrom-generic.cpp \
1304 generic/RTCrStoreCreateSnapshotById-generic.cpp \
1305 generic/RTDirQueryInfo-generic.cpp \
1306 generic/RTDirSetTimes-generic.cpp \
1307 generic/RTFileMove-generic.cpp \
1308 generic/RTLogWriteDebugger-generic.cpp \
1309 generic/RTPathAbs-generic.cpp \
1310 generic/RTPathGetCurrentOnDrive-generic.cpp \
1311 generic/RTProcDaemonize-generic.cpp \
1312 generic/RTProcIsRunningByName-generic.cpp \
1313 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1314 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1315 generic/RTThreadSetAffinityToCpu-generic.cpp \
1316 generic/RTTimeLocalNow-generic.cpp \
1317 generic/RTTimerCreate-generic.cpp \
1318 generic/RTUuidCreate-generic.cpp \
1319 generic/sched-generic.cpp \
1320 generic/utf16locale-generic.cpp \
1321 generic/uuid-generic.cpp \
1322 generic/RTThreadGetNativeState-generic.cpp \
1323 r3/generic/allocex-r3-generic.cpp \
1324 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1325 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1326 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1327 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1328 r3/generic/dirrel-r3-generic.cpp \
1329 r3/posix/RTFileQueryFsSizes-posix.cpp \
1330 r3/posix/RTFileSetAllocationSize-posix.cpp \
1331 r3/posix/RTHandleGetStandard-posix.cpp \
1332 r3/posix/RTMemProtect-posix.cpp \
1333 r3/posix/RTPathUserHome-posix.cpp \
1334 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1335 r3/posix/RTTimeNow-posix.cpp \
1336 r3/posix/RTTimeSet-posix.cpp \
1337 r3/posix/dir-posix.cpp \
1338 r3/posix/env-posix.cpp \
1339 r3/posix/errvars-posix.cpp \
1340 r3/posix/fileio-posix.cpp \
1341 r3/posix/fileio2-posix.cpp \
1342 r3/posix/filelock-posix.cpp \
1343 r3/posix/fs-posix.cpp \
1344 r3/posix/fs2-posix.cpp \
1345 r3/posix/fs3-posix.cpp \
1346 r3/posix/ldrNative-posix.cpp \
1347 r3/posix/localipc-posix.cpp \
1348 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1349 r3/posix/path-posix.cpp \
1350 r3/posix/path2-posix.cpp \
1351 r3/posix/pathhost-posix.cpp \
1352 r3/posix/RTPathUserDocuments-posix.cpp \
1353 r3/posix/pipe-posix.cpp \
1354 r3/posix/process-posix.cpp \
1355 r3/posix/process-creation-posix.cpp \
1356 r3/posix/rand-posix.cpp \
1357 r3/posix/semevent-posix.cpp \
1358 r3/posix/semeventmulti-posix.cpp \
1359 r3/posix/semmutex-posix.cpp \
1360 r3/posix/semrw-posix.cpp \
1361 r3/posix/serialport-posix.cpp \
1362 r3/posix/symlink-posix.cpp \
1363 r3/posix/thread-posix.cpp \
1364 r3/posix/thread2-posix.cpp \
1365 r3/posix/time-posix.cpp \
1366 r3/posix/timelocal-posix.cpp \
1367 r3/posix/timer-posix.cpp \
1368 r3/posix/tls-posix.cpp \
1369 r3/posix/utf8-posix.cpp \
1370 r3/solaris/krnlmod-solaris.cpp \
1371 r3/solaris/systemmem-solaris.cpp \
1372 r3/solaris/mp-solaris.cpp \
1373 r3/solaris/rtProcInitExePath-solaris.cpp \
1374 r3/solaris/RTSystemShutdown-solaris.cpp \
1375 r3/solaris/thread-affinity-solaris.cpp
1376RuntimeR3_SOURCES.solaris.amd64 = \
1377 common/string/memrchr.asm \
1378 r3/solaris/coredumper-solaris.cpp \
1379 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1380RuntimeR3_SOURCES.solaris.x86 = \
1381 common/string/memrchr.asm \
1382 r3/solaris/coredumper-solaris.cpp \
1383 r3/solaris/RTSystemQueryDmiString-solaris.cpp
1384RuntimeR3_SOURCES.solaris.sparc32 = \
1385 generic/RTSystemQueryDmiString-generic.cpp
1386RuntimeR3_SOURCES.solaris.sparc64 = \
1387 generic/RTSystemQueryDmiString-generic.cpp
1388
1389RuntimeR3_SOURCES.haiku = \
1390 generic/RTCrStoreCreateSnapshotById-generic.cpp \
1391 generic/RTDirQueryInfo-generic.cpp \
1392 generic/RTDirSetTimes-generic.cpp \
1393 generic/RTFileMove-generic.cpp \
1394 generic/RTFileSetAllocationSize-generic.cpp \
1395 generic/RTLogWriteDebugger-generic.cpp \
1396 generic/RTPathAbs-generic.cpp \
1397 generic/RTPathGetCurrentOnDrive-generic.cpp \
1398 generic/RTProcDaemonize-generic.cpp \
1399 generic/RTTimeLocalNow-generic.cpp \
1400 generic/RTTimerCreate-generic.cpp \
1401 generic/RTUuidCreate-generic.cpp \
1402 generic/mppresent-generic.cpp \
1403 generic/RTSemEventMultiWait-2-ex-generic.cpp \
1404 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
1405 generic/sched-generic.cpp \
1406 generic/semrw-$(if-expr defined(VBOX_WITH_LOCKLESS_SEMRW),lockless-,)generic.cpp \
1407 generic/timer-generic.cpp \
1408 generic/utf16locale-generic.cpp \
1409 generic/uuid-generic.cpp\
1410 generic/RTProcIsRunningByName-generic.cpp \
1411 generic/RTThreadGetNativeState-generic.cpp \
1412 generic/RTMpGetCoreCount-generic.cpp \
1413 generic/RTMpGetOnlineCoreCount-generic.cpp \
1414 r3/haiku/rtProcInitExePath-haiku.cpp \
1415 r3/haiku/time-haiku.cpp \
1416 r3/generic/allocex-r3-generic.cpp \
1417 r3/generic/RTLocaleQueryLocaleName-r3-generic.cpp \
1418 r3/generic/RTLocaleQueryNormalizedBaseLocaleName-r3-generic.cpp \
1419 r3/generic/RTLocaleQueryUserCountryCode-r3-generic.cpp \
1420 r3/generic/RTTimeZoneGetCurrent-generic.cpp \
1421 r3/generic/dirrel-r3-generic.cpp \
1422 r3/posix/RTFileQueryFsSizes-posix.cpp \
1423 r3/posix/RTHandleGetStandard-posix.cpp \
1424 r3/posix/RTMemProtect-posix.cpp \
1425 r3/posix/RTPathUserHome-posix.cpp \
1426 r3/posix/RTSystemQueryOSInfo-posix.cpp \
1427 r3/posix/RTSystemQueryTotalRam-posix.cpp \
1428 r3/posix/RTTimeNow-posix.cpp \
1429 r3/posix/dir-posix.cpp \
1430 r3/posix/env-posix.cpp \
1431 r3/posix/errvars-posix.cpp \
1432 r3/posix/fileio-posix.cpp \
1433 r3/posix/fileio2-posix.cpp \
1434 r3/posix/filelock-posix.cpp \
1435 r3/posix/fs-posix.cpp \
1436 r3/posix/fs2-posix.cpp \
1437 r3/posix/fs3-posix.cpp \
1438 r3/posix/ldrNative-posix.cpp \
1439 r3/posix/localipc-posix.cpp \
1440 r3/posix/rtmempage-exec-mmap-heap-posix.cpp \
1441 r3/posix/path-posix.cpp \
1442 r3/posix/path2-posix.cpp \
1443 r3/posix/pathhost-posix.cpp \
1444 r3/posix/pipe-posix.cpp \
1445 r3/posix/process-posix.cpp \
1446 r3/posix/process-creation-posix.cpp \
1447 r3/posix/rand-posix.cpp \
1448 r3/posix/semevent-posix.cpp \
1449 r3/posix/semeventmulti-posix.cpp \
1450 r3/posix/semmutex-posix.cpp \
1451 r3/posix/serialport-posix.cpp \
1452 r3/posix/symlink-posix.cpp \
1453 r3/posix/thread-posix.cpp \
1454 r3/posix/thread2-posix.cpp \
1455 r3/posix/timelocal-posix.cpp \
1456 r3/posix/tls-posix.cpp \
1457 r3/posix/utf8-posix.cpp
1458RuntimeR3_SOURCES.haiku.x86 += common/string/memrchr.asm
1459RuntimeR3_SOURCES.haiku.amd64 += common/string/memrchr.asm
1460
1461## PORTME: Porters add their selection of platform specific files for Ring-3 here.
1462
1463
1464#
1465# Generate RTIsoMaker / VISO help text from the manpage xml.
1466#
1467ifn1of ($(KBUILD_TARGET), os2) # breaks validationkit, figure out later.
1468
1469 IPRT_XML_REFENTRY_FILES = \
1470 common/fs/isomakercmd-man.xml
1471
1472 #$(call KB_FN_DO_PASS0_ON_TARGET,RuntimeR3)
1473
1474 BLDDIRS += $(IPRT_OUT_DIR)/man/
1475 OTHER_CLEAN += \
1476 $(addprefix $(IPRT_OUT_DIR)/man/,$(IPRT_XML_REFENTRY_FILES)) \
1477 $(addprefix $(IPRT_OUT_DIR)/man/,$(patsubst %.xml,%.h,$(IPRT_XML_REFENTRY_FILES))) \
1478 $(addprefix $(IPRT_OUT_DIR)/man/,$(patsubst %.xml,%.h.ts,$(IPRT_XML_REFENTRY_FILES)))
1479
1480
1481 include $(PATH_ROOT)/doc/manual/Config.kmk
1482
1483 # Preprocess the xml files, applying remarks.
1484 $(foreach file,$(IPRT_XML_REFENTRY_FILES) \
1485 , $(evalcall2 def_vbox_refentry_preprocess_for_manpage,$(IPRT_OUT_DIR)/man,$(notdir $(file)),$(VBOX_PATH_RUNTIME_SRC)/$(file)))
1486
1487 # generate the header and add it as a dependency to the source using it.
1488 $(evalcall2 def_vbox_single_refentry_to_h,$(IPRT_OUT_DIR)/man/isomakercmd-man.h, $(IPRT_OUT_DIR)/man/isomakercmd-man.xml)
1489 common/fs/isomakercmd.cpp_DEPS = $(IPRT_OUT_DIR)/man/isomakercmd-man.h
1490 common/fs/isomakercmd.cpp_INCS = $(IPRT_OUT_DIR)/man/
1491
1492endif
1493
1494
1495
1496#
1497# RuntimeBldProg - Static Runtime for build programs.
1498#
1499# Note! This is a bit of hacky since kBuild doesn't support building libraries
1500# for build programs.
1501#
1502RuntimeBldProg_TEMPLATE := VBoxAdvBldProg
1503RuntimeBldProg_EXTENDS := RuntimeR3
1504RuntimeBldProg_BLD_TRG := $(KBUILD_HOST)
1505RuntimeBldProg_BLD_TRG_ARCH := $(KBUILD_HOST_ARCH)
1506RuntimeBldProg_BLD_TRG_CPU := $(KBUILD_HOST_CPU)
1507RuntimeBldProg_DEFS := $(filter-out IN_SUP_R3 IN_SUP, $(RuntimeR3_DEFS)) IPRT_WITHOUT_LDR_VERIFY RT_NO_GIP
1508RuntimeBldProg_SOURCES = $(filter-out \
1509 r3/xml.cpp \
1510 common/misc/buildconfig.cpp \
1511 common/zip/xarvfs.cpp \
1512 , $(RuntimeR3_SOURCES))
1513if "$(KBUILD_TARGET)" == "win" && "$(KBUILD_HOST)" != "win"
1514 RuntimeBldProg_SOURCES += \
1515 common/err/errmsgxpcom.cpp
1516endif
1517
1518
1519
1520#
1521# RuntimeGuestR3 - Guest Additions Runtime (static/exe).
1522# (The KBUILD_HOST inheritance here is for cross building the linux
1523# additions, while .x86 is for cross building x86 while targeting amd64.)
1524#
1525RuntimeGuestR3_TEMPLATE := VBoxGuestR3Lib
1526## @todo change this to EXTEND the RuntimeR3 target.
1527RuntimeGuestR3_SDKS.win := $(RuntimeR3_SDKS.win)
1528RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT RT_NO_GIP IPRT_WITH_OPENSSL LDR_WITH_KLDR, $(RuntimeR3_DEFS))
1529RuntimeGuestR3_DEFS := $(filter-out IN_SUP_R3, $(RuntimeGuestR3_DEFS)) ## @todo r=andy Needed to make cross-building with RTLdr API work.
1530RuntimeGuestR3_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
1531RuntimeGuestR3_DEFS.$(KBUILD_HOST) := $(RuntimeR3_DEFS.$(KBUILD_HOST))
1532RuntimeGuestR3_INCS := $(RuntimeR3_INCS)
1533RuntimeGuestR3_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1534RuntimeGuestR3_INCS.$(KBUILD_HOST) := $(RuntimeR3_INCS.$(KBUILD_HOST))
1535RuntimeGuestR3_SOURCES := $(filter-out \
1536 common/ldr/ldrkStuff.cpp \
1537 common/time/timesupref.cpp \
1538 common/time/timesupA.asm \
1539 common/time/timesup.cpp \
1540 common/zip/xarvfs.cpp \
1541 generic/RTLogWriteUser-generic.cpp \
1542 r3/xml.cpp \
1543 , $(RuntimeR3_SOURCES))
1544RuntimeGuestR3_SOURCES += \
1545 common/time/timesysalias.cpp \
1546 VBox/logbackdoor.cpp
1547RuntimeGuestR3_SOURCES.$(KBUILD_TARGET) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1548RuntimeGuestR3_SOURCES.$(KBUILD_HOST) := $(RuntimeR3_SOURCES.$(KBUILD_HOST))
1549RuntimeGuestR3_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1550RuntimeGuestR3_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1551RuntimeGuestR3_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1552RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1553RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1554RuntimeGuestR3_SOURCES.$(KBUILD_TARGET).amd64:= $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1555RuntimeGuestR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_HOST).$(KBUILD_TARGET_ARCH))
1556RuntimeGuestR3_SOURCES.win.x86 += \
1557 r3/win/vcc100-kernel32-fakes.cpp \
1558 r3/win/vcc100-kernel32-fakesA.asm \
1559 r3/win/vcc100-ntdll-fakes.cpp \
1560 r3/win/vcc100-ntdll-fakesA.asm \
1561 r3/win/vcc100-ws2_32-fakes.cpp \
1562 r3/win/vcc100-ws2_32-fakesA.asm \
1563 r3/win/vcc100-shell32-fakes.cpp \
1564 r3/win/vcc100-shell32-fakesA.asm \
1565
1566
1567#
1568# RuntimeGuestR3-x86 - Same as RuntimeGuestR3, except that it's targeting x86.
1569#
1570RuntimeGuestR3-x86_EXTENDS := RuntimeGuestR3
1571RuntimeGuestR3-x86_BLD_TRG_ARCH := x86
1572
1573
1574#
1575# RuntimeGuestR3Shared - Guest Additions Runtime (static/dll).
1576#
1577RuntimeGuestR3Shared_TEMPLATE := VBoxGuestR3Dll
1578RuntimeGuestR3Shared_EXTENDS := RuntimeGuestR3
1579RuntimeGuestR3Shared_INST = $(INST_ADDITIONS_LIB)
1580
1581
1582#
1583# RuntimeGuestR3Shared-x86 - Same as RuntimeGuestR3Shared, except that it's targeting x86.
1584#
1585RuntimeGuestR3Shared-x86_EXTENDS := RuntimeGuestR3Shared
1586RuntimeGuestR3Shared-x86_BLD_TRG_ARCH := x86
1587
1588
1589#
1590# VBoxRT - Shared Object / DLL version.
1591#
1592VBoxRT_TEMPLATE = VBoxR3DllNoPic
1593VBoxRT_SDKS = VBOX_LIBXML2
1594ifdef VBOX_WITH_LIBCURL
1595 VBoxRT_SDKS += VBOX_LIBCURL
1596endif
1597VBoxRT_SDKS += VBOX_OPENSSL
1598VBoxRT_SDKS.win = $(VBOX_WINPSDK) $(VBOX_WINDDK) VBOX_NTDLL
1599if1of ($(KBUILD_TARGET), win)
1600VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE) $(VBOX_INST_TOOLS)
1601else if1of ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING), darwin win$(VBOX_WITH_HARDENING))
1602VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
1603endif
1604VBoxRT_DEFS := $(filter-out RT_NO_GIP, $(RuntimeR3_DEFS)) \
1605 IN_SUP_R3 IN_SUP_R3 IPRT_WITH_XAR \
1606 $(if-expr !defined(VBOX_WITH_ALT_HASH_CODE),IPRT_WITHOUT_SHA512T224 IPRT_WITHOUT_SHA512T256,)
1607ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1608 VBoxRT_DEFS += RT_NO_GIP
1609endif
1610ifdef VBOX_WITH_LIBCURL
1611 VBoxRT_DEFS += IPRT_WITH_HTTP
1612endif
1613ifdef RTALLOC_REPLACE_MALLOC
1614 VBoxRT_DEFS += RTALLOC_REPLACE_MALLOC
1615endif
1616ifdef VBOX_WITH_DTRACE_R3
1617 VBoxRT_DEFS += IPRT_WITH_DTRACE IPRT_DTRACE_INCLUDE=\"dtrace/iprt.h\"
1618endif
1619VBoxRT_DEFS.$(KBUILD_TYPE) := $(RuntimeR3_DEFS.$(KBUILD_TYPE))
1620VBoxRT_SOURCES := \
1621 VBox/VBoxRTDeps.cpp \
1622 $(filter-out common/checksum/crc32.cpp, \
1623 $(if-expr defined(VBOX_WITH_ALT_HASH_CODE), $(RuntimeR3_SOURCES), \
1624 $(patsubst common/checksum/alt-%,common/checksum/openssl-%,$(RuntimeR3_SOURCES)) ) ) \
1625 common/checksum/crc32-zlib.cpp \
1626 common/misc/aiomgr.cpp
1627ifneq ($(KBUILD_TARGET),win)
1628VBox/VBoxRTDeps.cpp_CXXFLAGS = -Wno-deprecated-declarations
1629endif
1630ifdef VBOX_WITH_LIBCURL
1631 VBoxRT_SOURCES += \
1632 common/misc/s3.cpp \
1633 generic/http-curl.cpp
1634endif
1635ifdef VBOX_WITH_DTRACE_R3
1636 VBoxRT_SOURCES += \
1637 iprt.d
1638endif
1639VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
1640VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1641VBoxRT_SOURCES.$(KBUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).x86)
1642VBoxRT_SOURCES.$(KBUILD_TARGET).amd64 := $(RuntimeR3_SOURCES.$(KBUILD_TARGET).amd64)
1643VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
1644VBoxRT_SOURCES.x86 := $(RuntimeR3_SOURCES.x86)
1645VBoxRT_SOURCES.amd64 := $(RuntimeR3_SOURCES.amd64)
1646VBoxRT_SOURCES.win += \
1647 r3/win/dllmain-win.cpp \
1648 r3/win/fileaio-win.cpp \
1649 $(VBoxRT_0_OUTDIR)/VBoxRT.def
1650VBoxRT_SOURCES.linux += \
1651 r3/linux/fileaio-linux.cpp
1652VBoxRT_SOURCES.solaris += \
1653 r3/solaris/fileaio-solaris.cpp
1654VBoxRT_SOURCES.darwin += \
1655 r3/posix/fileaio-posix.cpp
1656VBoxRT_SOURCES.freebsd += \
1657 r3/freebsd/fileaio-freebsd.cpp
1658VBoxRT_INCS := $(RuntimeR3_INCS)
1659VBoxRT_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
1660VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) := $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
1661VBoxRT_LIBS = \
1662 $(PATH_STAGE_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
1663if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1664VBoxRT_LIBS += \
1665 $(PATH_STAGE_LIB)/SUPR3$(VBOX_SUFF_LIB)
1666endif
1667ifdef IPRT_WITH_KSTUFF
1668 VBoxRT_LIBS += \
1669 $(PATH_STAGE_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
1670endif
1671ifndef SDK_VBOX_LIBXML2_LIBS
1672 VBoxRT_LIBS += \
1673 $(PATH_STAGE_LIB)/VBox-libxml2$(VBOX_SUFF_LIB)
1674endif
1675VBoxRT_LIBS += \
1676 $(SDK_VBOX_ZLIB_LIBS)
1677ifndef SDK_VBOX_OPENSSL_LIBS
1678 VBoxRT_LIBS += \
1679 $(PATH_STAGE_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB) \
1680 $(PATH_STAGE_LIB)/VBox-libssl$(VBOX_SUFF_LIB)
1681endif
1682ifdef IPRT_WITH_LZO
1683 VBoxRT_LIBS += lzo2
1684endif
1685ifdef RTALLOC_REPLACE_MALLOC
1686VBoxRT_LIBS += \
1687 $(PATH_STAGE_LIB)/DisasmR3$(VBOX_SUFF_LIB)
1688endif
1689VBoxRT_LIBS.linux = \
1690 crypt
1691VBoxRT_LIBS.darwin = \
1692 iconv
1693VBoxRT_LIBS.freebsd = \
1694 iconv \
1695 rt
1696VBoxRT_LIBS.haiku = \
1697 iconv
1698VBoxRT_LIBS.solaris = \
1699 kstat \
1700 contract
1701ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1702 # SMBIOS not available on Solaris SPARC.
1703 VBoxRT_LIBS.solaris += smbios
1704endif
1705VBoxRT_LIBS.win = \
1706 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/vccomsup.lib \
1707 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/wbemuuid.lib \
1708 $(PATH_TOOL_$(VBOX_VCC_TOOL)_LIB)/delayimp.lib
1709VBoxRT_LDFLAGS.darwin = \
1710 -framework IOKit \
1711 -framework CoreFoundation \
1712 -framework CoreServices \
1713 -framework Security \
1714 -framework SystemConfiguration \
1715 -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib
1716VBoxRT_LDFLAGS.win = /MANIFEST \
1717 /delayload:gdi32.dll \
1718 /delayload:user32.dll \
1719 /delayload:shell32.dll \
1720 /delayload:ole32.dll \
1721 /delayload:oleaut32.dll \
1722 /delayload:advapi32.dll
1723
1724if1of ($(DLLS), VBoxRT)
1725VBoxRT_CLEAN += $(VBoxRT_0_OUTDIR)/VBoxRT.def
1726$$(VBoxRT_0_OUTDIR)/VBoxRT.def: \
1727 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-$$(if-expr $$(KBUILD_TARGET_ARCH) == amd64,win64,win32).def \
1728 $(if-expr defined(VBOX_WITH_OPENSSL_PRE_1_1)\
1729 ,$(PATH_SUB_CURRENT)/r3/win/VBoxRT-openssl-pre-1.1.def \
1730 ,$(PATH_SUB_CURRENT)/r3/win/VBoxRT-openssl-1.1plus.def )\
1731 $(if-expr "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86" && defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES)\
1732 ,$(PATH_SUB_CURRENT)/r3/win/VBoxRT-msvcr100-win32.def ,) #$(PATH_SUB_CURRENT)/r3/win/VBoxRT-msvcp100-win32.def
1733 $(RM) -f -- $@
1734 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1735endif
1736
1737if1of (VBoxRT,$(DLLS))
1738 $(call VBOX_SET_VER_INFO_DLL,VBoxRT,VirtualBox Runtime)
1739endif
1740
1741
1742if defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES) && "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86"
1743 #
1744 # Hacks for running tests on NT 4. Really ugly!
1745 #
1746 # We put most of the CRT in VBoxRT because we cannot even load msvcr100.dll
1747 # or msvcp100.dll on NT4 because of kernel32.dll dependencies. More hacks
1748 # in RuntimeR3VccTricks.
1749 #
1750 TEMPLATE_VBoxR3RuntimeDllItself = xx
1751 TEMPLATE_VBoxR3RuntimeDllItself_EXTENDS = VBoxR3RuntimeDll
1752 TEMPLATE_VBoxR3RuntimeDllItself_LIBS.win.x86 = \
1753 $(filter-out $(PATH_STAGE_LIB)/RuntimeR3VccTricks%, $(TEMPLATE_VBoxR3RuntimeDll_LIBS.win.x86))
1754 TEMPLATE_VBoxR3RuntimeDllItself_SOURCES = \
1755 r3/win/vcc100-kernel32-fakes.cpp \
1756 r3/win/vcc100-kernel32-fakesA.asm \
1757 r3/win/vcc100-ws2_32-fakes.cpp \
1758 r3/win/vcc100-ws2_32-fakesA.asm \
1759 r3/win/vcc100-ntdll-fakes.cpp \
1760 r3/win/vcc100-ntdll-fakesA.asm \
1761 r3/win/vcc100-msvcrt-fakes.cpp
1762 VBoxRT_TEMPLATE = VBoxR3RuntimeDllItself
1763 VBoxRT_TEMPLATE.win.x86 = VBoxR3RuntimeDllItself
1764 VBoxRT_DEFS.win.x86 = $(TEMPLATE_VBoxR3RuntimeDll_DEFS.win.x86) _CRTIMP_PURE="__declspec(dllexport)"
1765 VBoxRT_LDFLAGS.win.x86 = /IGNORE:4049 /IGNORE:4217
1766 VBoxRT_LIBS.win.x86 = \
1767 $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/oldnames.lib \
1768 $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/libcmt.lib \
1769 $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/libcpmt.lib
1770endif
1771
1772
1773#
1774# HACK ALERT! Make testcase run during build on SELinux boxes.
1775# Create a dummy DLL that ensure that VBoxRT is installed
1776# during the DLL pass and cleaned up later.
1777#
1778ifeq ($(KBUILD_TARGET),linux)
1779 if1of (VBoxRT, $(DLLS))
1780 ifneq ($(wildcard /usr/bin/chcon),)
1781VBoxRT_INSTTYPE = none
1782VBoxRT_DEBUG_INSTTYPE = both
1783
1784DLLS += VBoxRTDummy
1785VBoxRTDummy_TEMPLATE = VBoxR3Dll
1786VBoxRTDummy_INSTTYPE = none
1787VBoxRTDummy_LIBS = $(PATH_STAGE_BIN)/VBoxRT.so
1788VBoxRTDummy_CLEAN = $(PATH_STAGE_BIN)/VBoxRT.so
1789BLDDIRS += $(PATH_STAGE_BIN)
1790
1791$(PATH_STAGE_BIN)/VBoxRT.so: $$(VBoxRT_1_TARGET) | $$(dir $$@)
1792 $(INSTALL) $< $@
1793 chcon -t texrel_shlib_t $@ || true
1794
1795VBoxRT:: VBoxRTDummy
1796 endif # chcon present.
1797 endif # building VBoxRT
1798endif # linux
1799
1800
1801#
1802# VBoxRT-x86 - 32-bit version of VBoxRT
1803#
1804VBoxRT-x86_EXTENDS = VBoxRT
1805VBoxRT-x86_TEMPLATE = VBoxR3Dll-x86
1806VBoxRT-x86_INST.win = $(INST_DLL)x86/
1807VBoxRT-x86_SDKS = VBOX_LIBXML2
1808ifdef VBOX_WITH_LIBCURL
1809 VBoxRT-x86_SDKS += VBOX_LIBCURL-x86
1810endif
1811VBoxRT-x86_SDKS += VBOX_OPENSSL-x86
1812
1813VBoxRT-x86_LIBS = \
1814 $(PATH_STAGE_LIB)/VBox-liblzf-x86$(VBOX_SUFF_LIB)
1815if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1816VBoxRT-x86_LIBS += \
1817 $(PATH_STAGE_LIB)/SUPR3-x86$(VBOX_SUFF_LIB)
1818endif
1819ifdef IPRT_WITH_KSTUFF
1820 VBoxRT-x86_LIBS += \
1821 $(PATH_STAGE_LIB)/VBox-kStuff-x86$(VBOX_SUFF_LIB)
1822endif
1823ifndef SDK_VBOX_LIBXML2_LIBS
1824 VBoxRT-x86_LIBS += \
1825 $(PATH_STAGE_LIB)/VBox-libxml2-x86$(VBOX_SUFF_LIB)
1826endif
1827VBoxRT-x86_LIBS += \
1828 $(SDK_VBOX_ZLIB_LIBS-x86)
1829ifndef SDK_VBOX_OPENSSL_LIBS
1830 VBoxRT-x86_LIBS += \
1831 $(PATH_STAGE_LIB)/VBox-libcrypto-x86$(VBOX_SUFF_LIB) \
1832 $(PATH_STAGE_LIB)/VBox-libssl-x86$(VBOX_SUFF_LIB)
1833endif
1834ifdef IPRT_WITH_LZO
1835 VBoxRT-x86_LIBS += lzo2
1836endif
1837VBoxRT-x86_LIBS.linux = \
1838 crypt
1839VBoxRT-x86_LIBS.darwin = \
1840 iconv
1841VBoxRT-x86_LIBS.freebsd = \
1842 iconv \
1843 rt
1844VBoxRT-x86_LIBS.haiku = \
1845 iconv
1846VBoxRT-x86_LIBS.solaris = \
1847 kstat \
1848 contract
1849ifn1of ($(KBUILD_TARGET_ARCH), sparc32 sparc64)
1850 # SMBIOS not available on Solaris SPARC.
1851 VBoxRT-x86_LIBS.solaris += smbios
1852endif
1853VBoxRT-x86_LIBS.win = \
1854 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/vccomsup.lib \
1855 $(PATH_SDK_$(VBOX_WINDDK)_LIB.x86)/wbemuuid.lib \
1856 $(PATH_TOOL_$(VBOX_VCC_TOOL_STEM)X86_LIB)/delayimp.lib
1857
1858VBoxRT-x86_SOURCES.win = $(filter-out %.def %.rc,$(VBoxRT_SOURCES.win)) \
1859 $(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
1860VBoxRT-x86_CLEAN += $(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def
1861if1of ($(DLLS), VBoxRT-x86)
1862$$(VBoxRT-x86_0_OUTDIR)/VBoxRT-x86.def: \
1863 $(PATH_SUB_CURRENT)/r3/win/VBoxRT-win32.def # Hopefully no need to export openssl here.
1864 $(RM) -f -- $@
1865 $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
1866endif
1867
1868if1of (VBoxRT-x86,$(DLLS))
1869 $(call VBOX_SET_VER_INFO_DLL,VBoxRT-x86,VirtualBox 32-bit Runtime)
1870endif
1871
1872#
1873# VBoxRTImp - Import library/hack.
1874#
1875ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.amd64)
1876$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-win64.def)
1877else ifeq ($(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),win.x86)
1878$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def r3/win/VBoxRT-win32.def)
1879else
1880$(call VBOX_GENERATE_IMPORT_TARGET_FN,VBoxRTImp,VBoxRT,VBox/VBoxRTImp.def)
1881endif
1882
1883
1884#
1885# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
1886# This is used together with VBoxRT.
1887#
1888## @todo the *_alias.c stuff is busted, remove and use RT_WITH_NOCRT_ALIASES instead.
1889RuntimeR3NoCRTGCC_TEMPLATE = VBoxNoCrtGccLib
1890RuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
1891ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1892 RuntimeR3NoCRTGCC_DEFS += RT_NO_GIP
1893endif
1894RuntimeR3NoCRTGCC_INCS = include
1895RuntimeR3NoCRTGCC_SOURCES := \
1896 common/misc/sanity-cpp.cpp \
1897 common/misc/sanity-c.c \
1898 \
1899 $(RuntimeNoCrt_SOURCES)
1900
1901if1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1902RuntimeR3NoCRTGCC_SOURCES += \
1903 common/math/ceill.asm \
1904 common/math/cosl.asm \
1905 common/math/fabs.asm \
1906 common/math/fabsf.asm \
1907 common/math/fabsl.asm \
1908 common/math/floor.asm \
1909 common/math/floorf.asm \
1910 common/math/floorl.asm \
1911 common/math/ldexpl.asm \
1912 common/math/llrint.asm \
1913 common/math/llrintf.asm \
1914 common/math/llrintl.asm \
1915 common/math/logl.asm \
1916 common/math/lrint.asm \
1917 common/math/lrintf.asm \
1918 common/math/lrintl.asm \
1919 common/math/remainder.asm \
1920 common/math/remainderf.asm \
1921 common/math/remainderl.asm \
1922 common/math/sinl.asm \
1923 common/math/tanl.asm \
1924 common/math/trunc.asm \
1925 common/math/truncf.asm \
1926 common/math/truncl.asm \
1927 \
1928 common/string/memchr_alias.c \
1929 common/string/memcmp_alias.c \
1930 common/string/memcpy_alias.c \
1931 common/string/memmove_alias.c \
1932 common/string/memset_alias.c \
1933 common/string/strchr_alias.c \
1934 common/string/strcmp_alias.c \
1935 common/string/strlen_alias.c
1936endif
1937
1938RuntimeR3NoCRTGCC_SOURCES.x86 = \
1939 common/math/x86/fenv-x86.c \
1940 common/math/gcc/adddi3.c \
1941 common/math/gcc/anddi3.c \
1942 common/math/gcc/ashldi3.c \
1943 common/math/gcc/ashrdi3.c \
1944 common/math/gcc/cmpdi2.c \
1945 common/math/gcc/divdi3.c \
1946 common/math/gcc/iordi3.c \
1947 common/math/gcc/lshldi3.c \
1948 common/math/gcc/lshrdi3.c \
1949 common/math/gcc/moddi3.c \
1950 common/math/gcc/muldi3.c \
1951 common/math/gcc/negdi2.c \
1952 common/math/gcc/notdi2.c \
1953 common/math/gcc/qdivrem.c \
1954 common/math/gcc/subdi3.c \
1955 common/math/gcc/ucmpdi2.c \
1956 common/math/gcc/udivdi3.c \
1957 common/math/gcc/udivmoddi4.c \
1958 common/math/gcc/umoddi3.c \
1959 common/math/gcc/xordi3.c
1960
1961
1962#
1963# RuntimeR0 - Ring-0 library for VMMR0.
1964#
1965RuntimeR0_TEMPLATE = VBoxR0
1966RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX NOFILEID
1967ifn1of ($(KBUILD_TARGET_ARCH), amd64 x86)
1968 RuntimeR0_DEFS += RT_NO_GIP
1969endif
1970if defined(VBOX_WITH_DTRACE_R0) && !defined(VBOX_ONLY_VALIDATIONKIT)
1971 RuntimeR0_DEFS += IPRT_WITH_DTRACE IPRT_DTRACE_PREFIX=VBOXVMM_ IPRT_DTRACE_INCLUDE=\"dtrace/VBoxVMM.h\"
1972endif
1973RuntimeR0_INCS = include
1974RuntimeR0_SOURCES := \
1975 $(if $(VBOX_ONLY_VALIDATIONKIT),,../VMM/VBoxVMM.d) \
1976 common/log/logellipsis.cpp \
1977 common/log/logrelellipsis.cpp \
1978 common/log/logcom.cpp \
1979 common/log/logformat.cpp \
1980 common/log/tracebuf.cpp \
1981 common/log/tracedefault.cpp \
1982 common/misc/RTAssertMsg1Weak.cpp \
1983 common/misc/RTAssertMsg2.cpp \
1984 common/misc/RTAssertMsg2Add.cpp \
1985 common/misc/RTAssertMsg2AddWeak.cpp \
1986 common/misc/RTAssertMsg2AddWeakV.cpp \
1987 common/misc/RTAssertMsg2Weak.cpp \
1988 common/misc/RTAssertMsg2WeakV.cpp \
1989 common/misc/buildconfig.cpp \
1990 common/misc/once.cpp \
1991 common/misc/sanity-c.c \
1992 common/misc/sanity-cpp.cpp \
1993 common/misc/term.cpp \
1994 common/path/RTPathFilename.cpp \
1995 common/string/strhash1.cpp \
1996 common/string/strncmp.cpp \
1997 common/string/strpbrk.cpp \
1998 common/string/RTStrCat.cpp \
1999 common/string/RTStrCatEx.cpp \
2000 common/string/RTStrCatP.cpp \
2001 common/string/RTStrCatPEx.cpp \
2002 common/string/RTStrCopy.cpp \
2003 common/string/RTStrCopyEx.cpp \
2004 common/string/RTStrCopyP.cpp \
2005 common/string/RTStrCopyPEx.cpp \
2006 common/string/RTStrCmp.cpp \
2007 common/string/RTStrICmpAscii.cpp \
2008 common/string/RTStrNICmpAscii.cpp \
2009 common/string/RTStrNLen.cpp \
2010 common/string/RTStrNLenEx.cpp \
2011 common/table/avlgcptr.cpp \
2012 common/table/avlhcphys.cpp \
2013 common/table/avllu32.cpp \
2014 common/table/avlogcphys.cpp \
2015 common/table/avlogcptr.cpp \
2016 common/table/avlohcphys.cpp \
2017 common/table/avloioport.cpp \
2018 common/table/avlpv.cpp \
2019 common/table/avlrogcphys.cpp \
2020 common/table/avlrogcptr.cpp \
2021 common/table/avlroioport.cpp \
2022 common/table/avlroogcptr.cpp \
2023 common/table/avlu32.cpp \
2024 common/table/avlou32.cpp \
2025 common/time/timesup.cpp \
2026 generic/RTAssertShouldPanic-generic.cpp \
2027 generic/critsect-generic.cpp \
2028 generic/critsectrw-generic.cpp \
2029 \
2030 $(RuntimeNoCrt_SOURCES)
2031
2032if1of ($(KBUILD_TARGET), darwin solaris freebsd os2)
2033RuntimeR0_SOURCES += \
2034 common/math/gcc/adddi3.c \
2035 common/math/gcc/anddi3.c \
2036 common/math/gcc/ashldi3.c \
2037 common/math/gcc/ashrdi3.c \
2038 common/math/gcc/cmpdi2.c \
2039 common/math/gcc/divdi3.c \
2040 common/math/gcc/iordi3.c \
2041 common/math/gcc/lshldi3.c \
2042 common/math/gcc/lshrdi3.c \
2043 common/math/gcc/moddi3.c \
2044 common/math/gcc/muldi3.c \
2045 common/math/gcc/negdi2.c \
2046 common/math/gcc/notdi2.c \
2047 common/math/gcc/qdivrem.c \
2048 common/math/gcc/subdi3.c \
2049 common/math/gcc/ucmpdi2.c \
2050 common/math/gcc/udivdi3.c \
2051 common/math/gcc/udivmoddi4.c \
2052 common/math/gcc/umoddi3.c \
2053 common/math/gcc/xordi3.c
2054endif
2055
2056RuntimeR0_SOURCES.x86 += \
2057 common/asm/ASMCpuIdExSlow.asm \
2058 common/asm/ASMAtomicUoAndU64.asm \
2059 common/asm/ASMAtomicUoAndU32.asm \
2060 common/asm/ASMAtomicUoDecU32.asm \
2061 common/asm/ASMAtomicUoIncU32.asm \
2062 common/asm/ASMAtomicUoOrU64.asm \
2063 common/asm/ASMAtomicUoOrU32.asm \
2064 common/asm/ASMMemFirstMismatchingU8.asm \
2065 common/asm/ASMGetXcr0.asm \
2066 common/asm/ASMSetXcr0.asm \
2067 common/asm/ASMXSave.asm \
2068 common/asm/ASMXRstor.asm \
2069 common/asm/ASMFxSave.asm \
2070 common/asm/ASMFxRstor.asm \
2071 common/asm/ASMRdMsrEx.asm \
2072 common/asm/ASMWrMsrEx.asm
2073RuntimeR0_SOURCES.amd64 += \
2074 common/asm/ASMCpuIdExSlow.asm \
2075 common/asm/ASMAtomicUoAndU64.asm \
2076 common/asm/ASMAtomicUoAndU32.asm \
2077 common/asm/ASMAtomicUoDecU32.asm \
2078 common/asm/ASMAtomicUoIncU32.asm \
2079 common/asm/ASMAtomicUoOrU64.asm \
2080 common/asm/ASMAtomicUoOrU32.asm \
2081 common/asm/ASMMemFirstMismatchingU8.asm \
2082 common/asm/ASMGetXcr0.asm \
2083 common/asm/ASMSetXcr0.asm \
2084 common/asm/ASMXSave.asm \
2085 common/asm/ASMXRstor.asm \
2086 common/asm/ASMFxSave.asm \
2087 common/asm/ASMFxRstor.asm \
2088 common/asm/ASMRdMsrEx.asm \
2089 common/asm/ASMWrMsrEx.asm
2090
2091#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
2092# RuntimeR0_SOURCES += common/time/timesupA.asm
2093#else
2094 RuntimeR0_SOURCES += common/time/timesupref.cpp
2095#endif
2096
2097RuntimeR0_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
2098RuntimeR0_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES)
2099RuntimeR0_SOURCES.win = \
2100 nt/NtProcessStartup-stub.cpp
2101
2102RuntimeR0_SOURCES.os2 = \
2103 os2/sys0.asm
2104
2105
2106#
2107# RuntimeR0Stub - Ring-0 context startup stub for Windows and Solaris.
2108#
2109RuntimeR0Stub_TEMPLATE = $(if-expr "$(KBUILD_TARGET)" == "solaris",VBoxR0DrvLib,VBoxR0)
2110RuntimeR0Stub_SOURCES.win = \
2111 nt/NtProcessStartup-stub.cpp
2112RuntimeR0Stub_SOURCES.solaris = \
2113 r0drv/solaris/modulestub-r0drv-solaris.c
2114
2115
2116#
2117# RuntimeR0Drv - Ring-0 library for host drivers.
2118#
2119RuntimeR0Drv_TEMPLATE = VBoxR0DrvLib
2120RuntimeR0Drv_SDKS.win = ReorderCompilerIncs $(VBOX_WINDDK) $(VBOX_WINPSDK)INCS VBOX_OPENSSL
2121RuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL NOFILEID
2122RuntimeR0Drv_DEFS.win = IN_SUP_R0 LDR_ONLY_PE
2123
2124RuntimeR0Drv_INCS := $(PATH_SUB_CURRENT) include
2125RuntimeR0Drv_INCS.freebsd = \
2126 $(PATH_STAGE)/gen-sys-hdrs
2127RuntimeR0Drv_INCS.solaris = \
2128 r0drv/solaris/vbi/i86pc \
2129 r0drv/solaris/vbi/i86pc/sys
2130
2131RuntimeR0Drv_SOURCES = \
2132 common/alloc/alloc.cpp \
2133 common/alloc/heapsimple.cpp \
2134 common/alloc/heapoffset.cpp \
2135 common/checksum/alt-md5.cpp \
2136 common/checksum/crc32.cpp \
2137 common/checksum/crc64.cpp \
2138 common/checksum/ipv4.cpp \
2139 common/checksum/ipv6.cpp \
2140 common/err/RTErrConvertToErrno.cpp \
2141 common/err/RTErrConvertFromErrno.cpp \
2142 common/err/errinfo.cpp \
2143 common/log/log.cpp \
2144 common/log/logellipsis.cpp \
2145 common/log/logrel.cpp \
2146 common/log/logrelellipsis.cpp \
2147 common/log/logcom.cpp \
2148 common/log/logformat.cpp \
2149 common/log/tracebuf.cpp \
2150 common/log/tracedefault.cpp \
2151 common/misc/RTAssertMsg1Weak.cpp \
2152 common/misc/RTAssertMsg2.cpp \
2153 common/misc/RTAssertMsg2Add.cpp \
2154 common/misc/RTAssertMsg2AddWeak.cpp \
2155 common/misc/RTAssertMsg2AddWeakV.cpp \
2156 common/misc/RTAssertMsg2Weak.cpp \
2157 common/misc/RTAssertMsg2WeakV.cpp \
2158 common/misc/assert.cpp \
2159 common/misc/buildconfig.cpp \
2160 common/misc/handletable.cpp \
2161 common/misc/handletablectx.cpp \
2162 common/misc/handletablesimple.cpp \
2163 common/misc/once.cpp \
2164 common/misc/sanity-c.c \
2165 common/misc/sanity-cpp.cpp \
2166 common/misc/term.cpp \
2167 common/misc/RTMemWipeThoroughly.cpp \
2168 common/path/rtPathVolumeSpecLen.cpp \
2169 common/path/RTPathAbsDup.cpp \
2170 common/path/RTPathAbsEx.cpp \
2171 common/path/RTPathAbsExDup.cpp \
2172 common/path/RTPathAppend.cpp \
2173 common/path/RTPathAppendEx.cpp \
2174 common/path/RTPathExt.cpp \
2175 common/path/RTPathFilename.cpp \
2176 common/path/RTPathHasExt.cpp \
2177 common/path/RTPathHasPath.cpp \
2178 common/path/RTPathParseSimple.cpp \
2179 common/path/RTPathRealDup.cpp \
2180 common/path/RTPathStripExt.cpp \
2181 common/path/RTPathStripFilename.cpp \
2182 common/path/RTPathStripTrailingSlash.cpp \
2183 common/rand/rand.cpp \
2184 common/rand/randadv.cpp \
2185 common/rand/randparkmiller.cpp \
2186 common/string/RTStrCat.cpp \
2187 common/string/RTStrCatEx.cpp \
2188 common/string/RTStrCatP.cpp \
2189 common/string/RTStrCatPEx.cpp \
2190 common/string/RTStrCmp.cpp \
2191 common/string/RTStrCopy.cpp \
2192 common/string/RTStrCopyEx.cpp \
2193 common/string/RTStrCopyP.cpp \
2194 common/string/RTStrCopyPEx.cpp \
2195 common/string/RTStrICmpAscii.cpp \
2196 common/string/RTStrNICmpAscii.cpp \
2197 common/string/RTStrNCmp.cpp \
2198 common/string/RTStrNLen.cpp \
2199 common/string/RTStrNLenEx.cpp \
2200 common/string/RTUtf16ICmpAscii.cpp \
2201 common/string/RTUtf16NICmpAscii.cpp \
2202 common/string/straprintf.cpp \
2203 common/string/strformat.cpp \
2204 common/string/strformatnum.cpp \
2205 common/string/strformatrt.cpp \
2206 common/string/strformattype.cpp \
2207 common/string/strhash1.cpp \
2208 common/string/strprintf.cpp \
2209 common/string/strprintf2.cpp \
2210 common/string/strtonum.cpp \
2211 common/string/stringalloc.cpp \
2212 common/string/unidata-flags.cpp \
2213 common/string/unidata-lower.cpp \
2214 common/string/unidata-upper.cpp \
2215 common/string/utf-8.cpp \
2216 common/string/utf-8-case.cpp \
2217 common/string/utf-8-case2.cpp \
2218 common/string/utf-16.cpp \
2219 common/string/utf-16-case.cpp \
2220 common/string/utf-16-latin-1.cpp \
2221 common/table/avlpv.cpp \
2222 common/table/avlu32.cpp \
2223 common/time/time.cpp \
2224 generic/RTLogWriteStdErr-stub-generic.cpp \
2225 generic/RTLogWriteUser-generic.cpp \
2226 generic/RTMpGetArraySize-generic.cpp \
2227 generic/RTRandAdvCreateSystemFaster-generic.cpp \
2228 generic/RTSemEventWait-2-ex-generic.cpp \
2229 generic/RTSemEventWaitNoResume-2-ex-generic.cpp \
2230 generic/RTSemEventMultiWait-2-ex-generic.cpp \
2231 generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp \
2232 generic/critsect-generic.cpp \
2233 generic/critsectrw-generic.cpp \
2234 generic/errvars-generic.cpp \
2235 generic/uuid-generic.cpp \
2236 r0drv/alloc-r0drv.cpp \
2237 r0drv/initterm-r0drv.cpp \
2238 r0drv/generic/semspinmutex-r0drv-generic.c \
2239 r0drv/RTR0DbgKrnlInfoGetSymbol.cpp \
2240 VBox/log-vbox.cpp \
2241
2242RuntimeR0Drv_SOURCES.amd64 = \
2243 common/asm/ASMMemFirstMismatchingU8.asm \
2244 common/asm/ASMRdMsrEx.asm \
2245 common/asm/ASMWrMsrEx.asm \
2246 common/math/bignum-amd64-x86.asm \
2247 common/math/RTUInt128MulByU64.asm
2248RuntimeR0Drv_SOURCES.x86 = \
2249 common/asm/ASMMemFirstMismatchingU8.asm \
2250 common/asm/ASMRdMsrEx.asm \
2251 common/asm/ASMWrMsrEx.asm \
2252 common/math/bignum-amd64-x86.asm
2253
2254
2255RuntimeR0Drv_SOURCES.linux = \
2256 common/misc/thread.cpp \
2257 common/string/strpbrk.cpp \
2258 generic/RTAssertShouldPanic-generic.cpp \
2259 generic/RTLogWriteStdOut-stub-generic.cpp \
2260 generic/RTMpGetCoreCount-generic.cpp \
2261 generic/mppresent-generic.cpp \
2262 generic/rtStrFormatKernelAddress-generic.cpp \
2263 r0drv/linux/alloc-r0drv-linux.c \
2264 r0drv/linux/assert-r0drv-linux.c \
2265 r0drv/linux/initterm-r0drv-linux.c \
2266 r0drv/linux/memobj-r0drv-linux.c \
2267 r0drv/linux/memuserkernel-r0drv-linux.c \
2268 r0drv/linux/mp-r0drv-linux.c \
2269 r0drv/linux/mpnotification-r0drv-linux.c \
2270 r0drv/linux/process-r0drv-linux.c \
2271 r0drv/linux/RTLogWriteDebugger-r0drv-linux.c \
2272 r0drv/linux/semevent-r0drv-linux.c \
2273 r0drv/linux/semeventmulti-r0drv-linux.c \
2274 r0drv/linux/semfastmutex-r0drv-linux.c \
2275 r0drv/linux/semmutex-r0drv-linux.c \
2276 r0drv/linux/spinlock-r0drv-linux.c \
2277 r0drv/linux/thread-r0drv-linux.c \
2278 r0drv/linux/thread2-r0drv-linux.c \
2279 r0drv/linux/threadctxhooks-r0drv-linux.c \
2280 r0drv/linux/time-r0drv-linux.c \
2281 r0drv/linux/timer-r0drv-linux.c \
2282 r0drv/memobj-r0drv.cpp \
2283 r0drv/mpnotification-r0drv.c \
2284 r0drv/powernotification-r0drv.c
2285
2286RuntimeR0Drv_SOURCES.win = \
2287 common/asm/ASMCpuIdExSlow.asm \
2288 common/ldr/ldr.cpp \
2289 common/ldr/ldrEx.cpp \
2290 common/ldr/ldrPE.cpp \
2291 common/asn1/asn1-basics.cpp \
2292 common/asn1/asn1-dump.cpp \
2293 common/asn1/asn1-cursor.cpp \
2294 common/asn1/asn1-default-allocator.cpp \
2295 common/asn1/asn1-encode.cpp \
2296 common/asn1/asn1-ut-bitstring.cpp \
2297 common/asn1/asn1-ut-bitstring-decode.cpp \
2298 common/asn1/asn1-ut-boolean.cpp \
2299 common/asn1/asn1-ut-boolean-decode.cpp \
2300 common/asn1/asn1-ut-core.cpp \
2301 common/asn1/asn1-ut-core-decode.cpp \
2302 common/asn1/asn1-ut-dyntype.cpp \
2303 common/asn1/asn1-ut-dyntype-decode.cpp \
2304 common/asn1/asn1-ut-integer.cpp \
2305 common/asn1/asn1-ut-integer-decode.cpp \
2306 common/asn1/asn1-ut-null.cpp \
2307 common/asn1/asn1-ut-null-decode.cpp \
2308 common/asn1/asn1-ut-objid.cpp \
2309 common/asn1/asn1-ut-objid-decode.cpp \
2310 common/asn1/asn1-ut-octetstring.cpp \
2311 common/asn1/asn1-ut-octetstring-decode.cpp \
2312 common/asn1/asn1-ut-string.cpp \
2313 common/asn1/asn1-ut-string-decode.cpp \
2314 common/asn1/asn1-ut-time.cpp \
2315 common/asn1/asn1-ut-time-decode.cpp \
2316 common/crypto/digest-core.cpp \
2317 common/crypto/digest-builtin.cpp \
2318 common/crypto/rsa-asn1-decoder.cpp \
2319 common/crypto/rsa-core.cpp \
2320 common/crypto/rsa-init.cpp \
2321 common/crypto/rsa-sanity.cpp \
2322 common/crypto/pkcs7-asn1-decoder.cpp \
2323 common/crypto/pkcs7-core.cpp \
2324 common/crypto/pkcs7-init.cpp \
2325 common/crypto/pkcs7-sanity.cpp \
2326 common/crypto/pkcs7-verify.cpp \
2327 common/crypto/pkix-signature-builtin.cpp \
2328 common/crypto/pkix-signature-core.cpp \
2329 common/crypto/pkix-signature-rsa.cpp \
2330 common/crypto/pkix-util.cpp \
2331 common/crypto/pkix-verify.cpp \
2332 common/crypto/spc-asn1-decoder.cpp \
2333 common/crypto/spc-core.cpp \
2334 common/crypto/spc-init.cpp \
2335 common/crypto/spc-sanity.cpp \
2336 common/crypto/x509-asn1-decoder.cpp \
2337 common/crypto/x509-certpaths.cpp \
2338 common/crypto/x509-core.cpp \
2339 common/crypto/x509-init.cpp \
2340 common/crypto/x509-sanity.cpp \
2341 common/crypto/x509-verify.cpp \
2342 common/crypto/store.cpp \
2343 common/crypto/store-inmem.cpp \
2344 common/crypto/taf-asn1-decoder.cpp \
2345 common/crypto/taf-core.cpp \
2346 common/crypto/taf-init.cpp \
2347 common/crypto/taf-sanity.cpp \
2348 common/crypto/tsp-asn1-decoder.cpp \
2349 common/crypto/tsp-core.cpp \
2350 common/crypto/tsp-init.cpp \
2351 common/crypto/tsp-sanity.cpp \
2352 common/checksum/alt-md2.cpp \
2353 common/checksum/alt-sha1.cpp \
2354 common/checksum/alt-sha256.cpp \
2355 common/checksum/alt-sha512.cpp \
2356 common/checksum/md2str.cpp \
2357 common/checksum/md5str.cpp \
2358 common/checksum/sha1str.cpp \
2359 common/checksum/sha224str.cpp \
2360 common/checksum/sha256str.cpp \
2361 common/checksum/sha384str.cpp \
2362 common/checksum/sha512str.cpp \
2363 common/checksum/sha512t224str.cpp \
2364 common/checksum/sha512t256str.cpp \
2365 common/err/errinfolog.cpp \
2366 common/path/RTPathChangeToUnixSlashes.cpp \
2367 common/math/bignum.cpp \
2368 common/misc/zero.asm \
2369 common/string/RTStrPrintHexBytes.cpp \
2370 common/string/RTUtf16Copy.cpp \
2371 common/string/RTUtf16CopyAscii.cpp \
2372 common/string/RTUtf16Cat.cpp \
2373 common/string/RTUtf16CatAscii.cpp \
2374 common/string/RTUtf16End.cpp \
2375 common/string/RTUtf16NLen.cpp \
2376 common/string/RTUtf16NLenEx.cpp \
2377 common/string/RTUtf16PrintHexBytes.cpp \
2378 common/string/strstrip.cpp \
2379 generic/memsafer-generic.cpp \
2380 common/misc/thread.cpp \
2381 common/string/memcmp.asm \
2382 common/string/memchr.asm \
2383 common/string/memcpy.asm \
2384 common/string/memset.asm \
2385 common/string/memmove.asm \
2386 common/string/strlen.asm \
2387 common/string/strncmp.cpp \
2388 common/string/strpbrk.cpp \
2389 generic/RTAssertShouldPanic-generic.cpp \
2390 generic/RTLogWriteStdOut-stub-generic.cpp \
2391 generic/RTTimerCreate-generic.cpp \
2392 generic/mppresent-generic-online.cpp \
2393 generic/RTMpGetCoreCount-generic.cpp \
2394 generic/rtStrFormatKernelAddress-generic.cpp \
2395 nt/RTErrConvertFromNtStatus.cpp \
2396 nt/RTNtPathExpand8dot3Path.cpp \
2397 nt/RTNtPathFindPossible8dot3Name.cpp \
2398 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2399 r0drv/alloc-ef-r0drv.cpp \
2400 r0drv/memobj-r0drv.cpp \
2401 r0drv/mpnotification-r0drv.c \
2402 r0drv/powernotification-r0drv.c \
2403 r0drv/nt/alloc-r0drv-nt.cpp \
2404 r0drv/nt/assert-r0drv-nt.cpp \
2405 r0drv/nt/dbgkrnlinfo-r0drv-nt.cpp \
2406 r0drv/nt/initterm-r0drv-nt.cpp \
2407 r0drv/nt/memobj-r0drv-nt.cpp \
2408 r0drv/nt/memuserkernel-r0drv-nt.cpp \
2409 r0drv/nt/mp-r0drv-nt.cpp \
2410 r0drv/nt/process-r0drv-nt.cpp \
2411 r0drv/nt/RTLogWriteDebugger-r0drv-nt.cpp \
2412 r0drv/nt/semevent-r0drv-nt.cpp \
2413 r0drv/nt/semeventmulti-r0drv-nt.cpp \
2414 r0drv/nt/semfastmutex-r0drv-nt.cpp \
2415 r0drv/nt/semmutex-r0drv-nt.cpp \
2416 r0drv/nt/spinlock-r0drv-nt.cpp \
2417 r0drv/nt/thread-r0drv-nt.cpp \
2418 r0drv/nt/thread2-r0drv-nt.cpp \
2419 r0drv/nt/time-r0drv-nt.cpp \
2420 r0drv/nt/timer-r0drv-nt.cpp \
2421 r0drv/nt/toxic-chkstk-r0drv-nt.asm \
2422 r0drv/nt/RTTimerGetSystemGranularity-r0drv-nt.cpp
2423
2424RuntimeR0Drv_SOURCES.win.amd64 := $(RuntimeWin64ASM_SOURCES)
2425RuntimeR0Drv_SOURCES.win.x86 := $(RuntimeWin32ASM_SOURCES) \
2426 r0drv/nt/nt3fakes-stub-r0drv-nt.cpp
2427
2428
2429RuntimeR0Drv_SOURCES.darwin = \
2430 common/misc/thread.cpp \
2431 common/string/memchr.asm \
2432 common/string/strpbrk.cpp \
2433 darwin/RTErrConvertFromDarwin.cpp \
2434 darwin/RTErrConvertFromDarwinIO.cpp \
2435 darwin/RTErrConvertFromDarwinKern.cpp \
2436 generic/RTAssertShouldPanic-generic.cpp \
2437 generic/RTTimerCreate-generic.cpp \
2438 generic/RTMpGetCoreCount-generic.cpp \
2439 generic/RTMpOnPair-generic.cpp \
2440 generic/mppresent-generic.cpp \
2441 generic/timer-generic.cpp \
2442 r0drv/generic/mpnotification-r0drv-generic.cpp \
2443 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2444 r0drv/darwin/alloc-r0drv-darwin.cpp \
2445 r0drv/darwin/assert-r0drv-darwin.cpp \
2446 r0drv/darwin/initterm-r0drv-darwin.cpp \
2447 r0drv/darwin/dbgkrnlinfo-r0drv-darwin.cpp \
2448 r0drv/darwin/memobj-r0drv-darwin.cpp \
2449 r0drv/darwin/mp-r0drv-darwin.cpp \
2450 r0drv/darwin/memuserkernel-r0drv-darwin.cpp \
2451 r0drv/darwin/process-r0drv-darwin.cpp \
2452 r0drv/darwin/RTLogWriteDebugger-r0drv-darwin.cpp \
2453 r0drv/darwin/RTLogWriteStdOut-r0drv-darwin.cpp \
2454 r0drv/darwin/rtStrFormatKernelAddress-r0drv-darwin.cpp \
2455 r0drv/darwin/semevent-r0drv-darwin.cpp \
2456 r0drv/darwin/semeventmulti-r0drv-darwin.cpp \
2457 r0drv/darwin/semfastmutex-r0drv-darwin.cpp \
2458 r0drv/darwin/semmutex-r0drv-darwin.cpp \
2459 r0drv/darwin/spinlock-r0drv-darwin.cpp \
2460 r0drv/darwin/thread-r0drv-darwin.cpp \
2461 r0drv/darwin/thread2-r0drv-darwin.cpp \
2462 r0drv/darwin/threadpreempt-r0drv-darwin.cpp \
2463 r0drv/darwin/time-r0drv-darwin.cpp \
2464 r0drv/alloc-ef-r0drv.cpp \
2465 r0drv/memobj-r0drv.cpp \
2466 r0drv/powernotification-r0drv.c
2467
2468RuntimeR0Drv_SOURCES.os2 = \
2469 common/string/memchr.asm \
2470 common/string/memcmp.asm \
2471 common/string/memcpy.asm \
2472 common/string/mempcpy.asm \
2473 common/string/memmove.asm \
2474 common/string/memset.asm \
2475 common/string/strchr.asm \
2476 common/string/strcmp.asm \
2477 common/string/strcpy.asm \
2478 common/string/strlen.asm \
2479 \
2480 common/string/strncmp.cpp \
2481 common/string/strpbrk.cpp \
2482 \
2483 common/misc/thread.cpp \
2484 generic/RTAssertShouldPanic-generic.cpp \
2485 generic/RTLogWriteDebugger-generic.cpp \
2486 generic/RTLogWriteStdOut-stub-generic.cpp \
2487 generic/RTMpCpuId-generic.cpp \
2488 generic/RTMpCpuIdFromSetIndex-generic.cpp \
2489 generic/RTMpCpuIdToSetIndex-generic.cpp \
2490 generic/RTMpIsCpuPossible-generic.cpp \
2491 generic/RTMpGetCount-generic.cpp \
2492 generic/RTMpGetMaxCpuId-generic.cpp \
2493 generic/RTMpGetOnlineCount-generic.cpp \
2494 generic/RTMpGetOnlineSet-generic.cpp \
2495 generic/RTMpGetSet-generic.cpp \
2496 generic/RTMpIsCpuOnline-generic.cpp \
2497 generic/RTTimerCreate-generic.cpp \
2498 generic/mppresent-generic.cpp \
2499 generic/rtStrFormatKernelAddress-generic.cpp \
2500 os2/RTErrConvertFromOS2.cpp \
2501 os2/rtSemWaitOs2ConvertTimeout.cpp \
2502 os2/sys0.asm \
2503 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2504 r0drv/generic/RTMpOn-r0drv-generic.cpp \
2505 r0drv/generic/mpnotification-r0drv-generic.cpp \
2506 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2507 r0drv/memobj-r0drv.cpp \
2508 r0drv/powernotification-r0drv.c \
2509 r0drv/os2/alloc-r0drv-os2.cpp \
2510 r0drv/os2/assert-r0drv-os2.cpp \
2511 r0drv/os2/assertA-r0drv-os2.asm \
2512 r0drv/os2/initterm-r0drv-os2.cpp \
2513 r0drv/os2/memobj-r0drv-os2.cpp \
2514 r0drv/os2/memuserkernel-r0drv-os2.cpp \
2515 r0drv/os2/os2imports.imp \
2516 r0drv/os2/process-r0drv-os2.cpp \
2517 r0drv/os2/RTR0AssertPanicSystem-r0drv-os2.asm \
2518 r0drv/os2/RTR0Os2DHQueryDOSVar.asm \
2519 r0drv/os2/RTR0Os2DHVMGlobalToProcess.asm \
2520 r0drv/os2/semevent-r0drv-os2.cpp \
2521 r0drv/os2/semeventmulti-r0drv-os2.cpp \
2522 r0drv/os2/semfastmutex-r0drv-os2.cpp \
2523 r0drv/os2/spinlock-r0drv-os2.cpp \
2524 r0drv/os2/thread-r0drv-os2.cpp \
2525 r0drv/os2/thread2-r0drv-os2.cpp \
2526 r0drv/os2/time-r0drv-os2.cpp \
2527 r0drv/os2/timer-r0drv-os2.cpp \
2528 r0drv/os2/timerA-r0drv-os2.asm \
2529 \
2530 common/math/gcc/adddi3.c \
2531 common/math/gcc/anddi3.c \
2532 common/math/gcc/ashldi3.c \
2533 common/math/gcc/ashrdi3.c \
2534 common/math/gcc/cmpdi2.c \
2535 common/math/gcc/divdi3.c \
2536 common/math/gcc/iordi3.c \
2537 common/math/gcc/lshldi3.c \
2538 common/math/gcc/lshrdi3.c \
2539 common/math/gcc/moddi3.c \
2540 common/math/gcc/muldi3.c \
2541 common/math/gcc/negdi2.c \
2542 common/math/gcc/notdi2.c \
2543 common/math/gcc/qdivrem.c \
2544 common/math/gcc/subdi3.c \
2545 common/math/gcc/ucmpdi2.c \
2546 common/math/gcc/udivdi3.c \
2547 common/math/gcc/udivmoddi4.c \
2548 common/math/gcc/umoddi3.c \
2549 common/math/gcc/xordi3.c
2550
2551RuntimeR0Drv_SOURCES.freebsd = \
2552 common/misc/thread.cpp \
2553 common/string/memchr.asm \
2554 common/string/memmove.asm \
2555 common/string/strpbrk.cpp \
2556 common/string/memcmp.asm \
2557 common/string/strchr.asm \
2558 generic/RTAssertShouldPanic-generic.cpp \
2559 generic/RTLogWriteDebugger-generic.cpp \
2560 generic/RTLogWriteStdOut-stub-generic.cpp \
2561 generic/RTMpOnPair-generic.cpp \
2562 generic/RTTimerCreate-generic.cpp \
2563 generic/mppresent-generic.cpp \
2564 generic/rtStrFormatKernelAddress-generic.cpp \
2565 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2566 r0drv/generic/mpnotification-r0drv-generic.cpp \
2567 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2568 r0drv/freebsd/alloc-r0drv-freebsd.c \
2569 r0drv/freebsd/assert-r0drv-freebsd.c \
2570 r0drv/freebsd/initterm-r0drv-freebsd.c \
2571 r0drv/freebsd/memobj-r0drv-freebsd.c \
2572 r0drv/freebsd/memuserkernel-r0drv-freebsd.c \
2573 r0drv/freebsd/process-r0drv-freebsd.c \
2574 r0drv/freebsd/semevent-r0drv-freebsd.c \
2575 r0drv/freebsd/semeventmulti-r0drv-freebsd.c \
2576 r0drv/freebsd/semfastmutex-r0drv-freebsd.c \
2577 r0drv/freebsd/semmutex-r0drv-freebsd.c \
2578 r0drv/freebsd/spinlock-r0drv-freebsd.c \
2579 r0drv/freebsd/thread-r0drv-freebsd.c \
2580 r0drv/freebsd/thread2-r0drv-freebsd.c \
2581 r0drv/freebsd/time-r0drv-freebsd.c \
2582 r0drv/freebsd/mp-r0drv-freebsd.c \
2583 generic/timer-generic.cpp \
2584 r0drv/alloc-ef-r0drv.cpp \
2585 r0drv/memobj-r0drv.cpp \
2586 r0drv/powernotification-r0drv.c
2587
2588RuntimeR0Drv_SOURCES.netbsd = \
2589 common/misc/thread.cpp \
2590 common/string/strpbrk.cpp \
2591 generic/RTAssertShouldPanic-generic.cpp \
2592 generic/RTLogWriteDebugger-generic.cpp \
2593 generic/RTTimerCreate-generic.cpp \
2594 generic/mppresent-generic.cpp \
2595 generic/rtStrFormatKernelAddress-generic.cpp \
2596 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2597 r0drv/generic/mpnotification-r0drv-generic.cpp \
2598 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2599 r0drv/netbsd/RTLogWriteStdOut-r0drv-netbsd.c \
2600 r0drv/netbsd/alloc-r0drv-netbsd.c \
2601 r0drv/netbsd/assert-r0drv-netbsd.c \
2602 r0drv/netbsd/initterm-r0drv-netbsd.c \
2603 r0drv/netbsd/memobj-r0drv-netbsd.c \
2604 r0drv/netbsd/memuserkernel-r0drv-netbsd.c \
2605 r0drv/netbsd/process-r0drv-netbsd.c \
2606 r0drv/netbsd/semevent-r0drv-netbsd.c \
2607 r0drv/netbsd/semeventmulti-r0drv-netbsd.c \
2608 r0drv/netbsd/semfastmutex-r0drv-netbsd.c \
2609 r0drv/netbsd/spinlock-r0drv-netbsd.c \
2610 r0drv/netbsd/thread-r0drv-netbsd.c \
2611 r0drv/netbsd/thread2-r0drv-netbsd.c \
2612 r0drv/netbsd/time-r0drv-netbsd.c \
2613 r0drv/netbsd/mp-r0drv-netbsd.c \
2614 generic/timer-generic.cpp \
2615 r0drv/memobj-r0drv.cpp \
2616 r0drv/powernotification-r0drv.c
2617
2618RuntimeR0Drv_SOURCES.solaris = \
2619 common/misc/thread.cpp \
2620 common/string/memchr.asm \
2621 generic/RTAssertShouldPanic-generic.cpp \
2622 generic/RTLogWriteStdOut-stub-generic.cpp \
2623 generic/RTMpGetCoreCount-generic.cpp \
2624 generic/RTTimerCreate-generic.cpp \
2625 generic/mppresent-generic.cpp \
2626 generic/rtStrFormatKernelAddress-generic.cpp \
2627 r0drv/memobj-r0drv.cpp \
2628 r0drv/mpnotification-r0drv.c \
2629 r0drv/powernotification-r0drv.c \
2630 r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
2631 r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c \
2632 r0drv/solaris/alloc-r0drv-solaris.c \
2633 r0drv/solaris/assert-r0drv-solaris.c \
2634 r0drv/solaris/dbgkrnlinfo-r0drv-solaris.c \
2635 r0drv/solaris/initterm-r0drv-solaris.c \
2636 r0drv/solaris/memuserkernel-r0drv-solaris.c \
2637 r0drv/solaris/mpnotification-r0drv-solaris.c \
2638 r0drv/solaris/memobj-r0drv-solaris.c \
2639 r0drv/solaris/mp-r0drv-solaris.c \
2640 r0drv/solaris/process-r0drv-solaris.c \
2641 r0drv/solaris/semevent-r0drv-solaris.c \
2642 r0drv/solaris/semeventmulti-r0drv-solaris.c \
2643 r0drv/solaris/semfastmutex-r0drv-solaris.c \
2644 r0drv/solaris/semmutex-r0drv-solaris.c \
2645 r0drv/solaris/spinlock-r0drv-solaris.c \
2646 r0drv/solaris/thread-r0drv-solaris.c \
2647 r0drv/solaris/thread2-r0drv-solaris.c \
2648 r0drv/solaris/threadctxhooks-r0drv-solaris.c \
2649 r0drv/solaris/time-r0drv-solaris.c \
2650 r0drv/solaris/timer-r0drv-solaris.c
2651
2652RuntimeR0Drv_SOURCES.haiku = \
2653 common/misc/thread.cpp \
2654 common/string/memchr.asm \
2655 common/string/memmove.asm \
2656 common/string/strpbrk.cpp \
2657 common/string/memcmp.asm \
2658 common/string/strchr.asm \
2659 generic/RTAssertShouldPanic-generic.cpp \
2660 generic/RTMpOnPair-generic.cpp \
2661 generic/RTTimerCreate-generic.cpp \
2662 generic/mppresent-generic.cpp \
2663 generic/rtStrFormatKernelAddress-generic.cpp \
2664 r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
2665 r0drv/generic/mpnotification-r0drv-generic.cpp \
2666 r0drv/generic/threadctxhooks-r0drv-generic.cpp \
2667 r0drv/haiku/alloc-r0drv-haiku.c \
2668 r0drv/haiku/assert-r0drv-haiku.c \
2669 r0drv/haiku/initterm-r0drv-haiku.c \
2670 r0drv/haiku/memobj-r0drv-haiku.c \
2671 r0drv/haiku/mp-r0drv-haiku.c \
2672 r0drv/haiku/process-r0drv-haiku.c \
2673 r0drv/haiku/RTLogWriteDebugger-r0drv-haiku.c \
2674 r0drv/haiku/RTLogWriteStdOut-r0drv-haiku.c \
2675 r0drv/haiku/semevent-r0drv-haiku.c \
2676 r0drv/haiku/semeventmulti-r0drv-haiku.c \
2677 r0drv/haiku/semfastmutex-r0drv-haiku.c \
2678 r0drv/haiku/semmutex-r0drv-haiku.c \
2679 r0drv/haiku/spinlock-r0drv-haiku.c \
2680 r0drv/haiku/thread-r0drv-haiku.c \
2681 r0drv/haiku/thread2-r0drv-haiku.c \
2682 r0drv/haiku/time-r0drv-haiku.c \
2683 generic/timer-generic.cpp \
2684 r0drv/memobj-r0drv.cpp \
2685 r0drv/powernotification-r0drv.c
2686
2687## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
2688
2689RuntimeR0Drv_ORDERDEPS.freebsd = \
2690 $(PATH_STAGE)/gen-sys-hdrs/bus_if.h \
2691 $(PATH_STAGE)/gen-sys-hdrs/device_if.h
2692
2693
2694#
2695# RuntimeGuestR0 - Guest driver runtime.
2696# This is almost the same as the RuntimeR0Drv, the main difference
2697# is in the backdoor logging and the lack of sup.h (which should be
2698# made irrelevant even for RuntimeR0Drv).
2699#
2700RuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB
2701RuntimeGuestR0_EXTENDS = RuntimeR0Drv
2702RuntimeGuestR0_DEFS.win.x86 = $(RuntimeR0Drv_DEFS.win.x86) IPRT_TARGET_NT4 # The 32-bit version needs to work on NT4 too.
2703RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
2704RuntimeGuestR0_SOURCES += \
2705 VBox/logbackdoor.cpp
2706RuntimeGuestR0_SOURCES.win := \
2707 $(filter-out common/checksum/md% common/checksum/sha%, $(RuntimeR0Drv_SOURCES.win))
2708
2709
2710ifdef VBOX_WITH_RAW_MODE
2711 #
2712 # RuntimeRC - Raw-mode context library.
2713 #
2714 RuntimeRC_TEMPLATE = VBoxRc
2715 RuntimeRC_DEFS = IN_RT_RC RT_WITH_VBOX IN_SUP_RC IN_VMM_RC NOFILEID
2716 RuntimeRC_INCS = include
2717 RuntimeRC_SOURCES := \
2718 common/asm/ASMMemFirstMismatchingU8.asm \
2719 common/asm/ASMGetXcr0.asm \
2720 common/asm/ASMSetXcr0.asm \
2721 common/asm/ASMXSave.asm \
2722 common/asm/ASMXRstor.asm \
2723 common/asm/ASMFxSave.asm \
2724 common/asm/ASMFxRstor.asm \
2725 common/checksum/alt-md5.cpp \
2726 common/checksum/crc32.cpp \
2727 common/checksum/crc64.cpp \
2728 common/log/log.cpp \
2729 common/log/logellipsis.cpp \
2730 common/log/logrel.cpp \
2731 common/log/logrelellipsis.cpp \
2732 common/log/logcom.cpp \
2733 common/log/logformat.cpp \
2734 common/log/tracebuf.cpp \
2735 common/log/tracedefault.cpp \
2736 common/misc/RTAssertMsg1Weak.cpp \
2737 common/misc/RTAssertMsg2.cpp \
2738 common/misc/RTAssertMsg2Add.cpp \
2739 common/misc/RTAssertMsg2AddWeak.cpp \
2740 common/misc/RTAssertMsg2AddWeakV.cpp \
2741 common/misc/RTAssertMsg2Weak.cpp \
2742 common/misc/RTAssertMsg2WeakV.cpp \
2743 common/misc/assert.cpp \
2744 common/misc/buildconfig.cpp \
2745 common/misc/sanity-c.c \
2746 common/misc/sanity-cpp.cpp \
2747 common/path/RTPathFilename.cpp \
2748 common/string/strformat.cpp \
2749 common/string/strformatnum.cpp \
2750 common/string/strformatrt.cpp \
2751 common/string/strformattype.cpp \
2752 common/string/strncmp.cpp \
2753 common/string/strpbrk.cpp \
2754 common/string/strprintf.cpp \
2755 common/string/strprintf2.cpp \
2756 common/string/RTStrCmp.cpp \
2757 common/string/RTStrCopy.cpp \
2758 common/string/RTStrCopyEx.cpp \
2759 common/string/RTStrICmpAscii.cpp \
2760 common/table/avllu32.cpp \
2761 common/table/avlou32.cpp \
2762 common/table/avlogcphys.cpp \
2763 common/table/avlogcptr.cpp \
2764 common/table/avlohcphys.cpp \
2765 common/table/avloioport.cpp \
2766 common/table/avlrogcphys.cpp \
2767 common/table/avlrogcptr.cpp \
2768 common/table/avlroioport.cpp \
2769 common/table/avlroogcptr.cpp \
2770 common/table/avlu32.cpp \
2771 common/time/timeprog.cpp \
2772 common/time/timesup.cpp \
2773 gc/initterm-gc.cpp \
2774 generic/RTAssertShouldPanic-generic.cpp \
2775 generic/rtStrFormatKernelAddress-generic.cpp \
2776 generic/errvars-generic.cpp \
2777 \
2778 $(RuntimeNoCrt_SOURCES)
2779
2780 #if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
2781 # RuntimeRC_SOURCES += common/time/timesupA.asm
2782 #else
2783 RuntimeRC_SOURCES += common/time/timesupref.cpp
2784 #endif
2785
2786 RuntimeRC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
2787
2788 ifeq ($(VBOX_LDR_FMT32),lx)
2789 RuntimeRC_SOURCES += os2/sys0.asm
2790 endif
2791
2792 if1of ($(KBUILD_TARGET), darwin solaris freebsd os2)
2793 RuntimeRC_SOURCES += \
2794 common/math/gcc/adddi3.c \
2795 common/math/gcc/anddi3.c \
2796 common/math/gcc/ashldi3.c \
2797 common/math/gcc/ashrdi3.c \
2798 common/math/gcc/cmpdi2.c \
2799 common/math/gcc/divdi3.c \
2800 common/math/gcc/iordi3.c \
2801 common/math/gcc/lshldi3.c \
2802 common/math/gcc/lshrdi3.c \
2803 common/math/gcc/moddi3.c \
2804 common/math/gcc/muldi3.c \
2805 common/math/gcc/negdi2.c \
2806 common/math/gcc/notdi2.c \
2807 common/math/gcc/qdivrem.c \
2808 common/math/gcc/subdi3.c \
2809 common/math/gcc/ucmpdi2.c \
2810 common/math/gcc/udivdi3.c \
2811 common/math/gcc/udivmoddi4.c \
2812 common/math/gcc/umoddi3.c \
2813 common/math/gcc/xordi3.c
2814 endif
2815
2816
2817 #
2818 # RuntimeRCStub - Raw-mode context startup stub for Windows.
2819 #
2820 RuntimeRCStub_TEMPLATE = VBoxRc
2821 RuntimeRCStub_SOURCES.win = \
2822 nt/NtProcessStartup-stub.cpp
2823
2824
2825endif # VBOX_WITH_RAW_MODE
2826
2827
2828#
2829# Static library for new & delete for the electric fence.
2830#
2831RuntimeEFCPP_TEMPLATE := $(VBoxRT_TEMPLATE)
2832RuntimeEFCPP_SDKS := $(RuntimeR3_SDKS)
2833RuntimeEFCPP_SDKS.$(KBUILD_TARGET) := $(RuntimeR3_SDKS.$(KBUILD_TARGET))
2834RuntimeEFCPP_DEFS := $(RuntimeR3_DEFS)
2835RuntimeEFCPP_DEFS.$(KBUILD_TARGET) := $(RuntimeR3_DEFS.$(KBUILD_TARGET))
2836RuntimeEFCPP_INCS := $(RuntimeR3_INCS)
2837RuntimeEFCPP_INCS.$(KBUILD_TARGET) := $(RuntimeR3_INCS.$(KBUILD_TARGET))
2838RuntimeEFCPP_SOURCES := r3/alloc-ef-cpp.cpp
2839
2840
2841
2842#
2843# The NTDLL mini import library.
2844#
2845# Note! The reason for doing this is to avoid importing CRT symbols from the
2846# NTDLL. We do not wish to do this because:
2847# - Our compiler is usually a different one and we should use the
2848# matching CRT,
2849# - Older versions of NTDLL may not sport all the exports our w2k3 or
2850# later WINDDK ntdll.lib have and thus we may easily end up with
2851# images that does not load on older windows versions.
2852#
2853if1of (win,$(KBUILD_TARGET) $(KBUILD_HOST))
2854RuntimeR3NtDll-amd64_TEMPLATE = VBoxR3Dll
2855RuntimeR3NtDll-amd64_BLD_TRG_ARCH = amd64
2856RuntimeR3NtDll-amd64_ARFLAGS = /NODEFAULTLIB /MACHINE:amd64
2857RuntimeR3NtDll-amd64_SOURCES = \
2858 r3/win/ntdll-mini-implib.def
2859
2860RuntimeR3NtDll-x86_TEMPLATE = VBoxR3Dll
2861RuntimeR3NtDll-x86_BLD_TRG_ARCH = x86
2862RuntimeR3NtDll-x86_ARFLAGS = /NODEFAULTLIB /MACHINE:x86
2863RuntimeR3NtDll-x86_SOURCES = \
2864 r3/win/ntdll-mini-implib.def \
2865 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2866RuntimeR3NtDll-x86_CLEAN = \
2867 $(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm
2868
2869$$(RuntimeR3NtDll-x86_0_OUTDIR)/ntdll-mini-implib.asm: $(PATH_SUB_CURRENT)/r3/win/ntdll-mini-implib.def | $$(dir $$@)
2870 $(call MSG_GENERATE,,$@,$<)
2871 $(QUIET)$(APPEND) -nt "$@" \
2872 ';Autogenerated, do not edit' \
2873 '%include "iprt/asmdefs.mac"' \
2874 'BEGINCODE' \
2875 '%macro IMPLIB_EXPORT 1' \
2876 'global %1:function' \
2877 '%1: nop' \
2878 '%endm' \
2879 ''
2880 $(QUIET)$(SED) -e '1,/EXPORTS/d' \
2881 -e 's/^.*;;=[[:space:]]*\([^[:space:]]*\)[[:space:]]*$$/IMPLIB_EXPORT \1/' \
2882 $< --append $@
2883endif
2884
2885#
2886# Bag of tricks required for making VCC100 output binaries work on NT4, W2K
2887# early XP and early W2K3. Used by validation kit.
2888#
2889RuntimeR3VccTricks_TEMPLATE = VBoxR3Static
2890RuntimeR3VccTricks_SOURCES = \
2891 r3/win/vcc100-kernel32-fakes.cpp \
2892 r3/win/vcc100-kernel32-fakesA.asm \
2893 r3/win/vcc100-shell32-fakes.cpp \
2894 r3/win/vcc100-shell32-fakesA.asm
2895
2896if defined(VBOX_WITH_MORE_NT4_COMPAT_BINARIES) && "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86" # Ugly hacks... :-)
2897LIBRARIES += RuntimeR3VccTricks2
2898RuntimeR3VccTricks2_TEMPLATE = VBoxR3Dll
2899RuntimeR3VccTricks2_SOURCES = $(RuntimeR3VccTricks_SOURCES)
2900RuntimeR3VccTricks2_SOURCES += $(RuntimeR3VccTricks2_0_OUTDIR)/dynobjs.lib
2901RuntimeR3VccTricks2_CLEAN = $(RuntimeR3VccTricks2_0_OUTDIR)/dynobjs.lib
2902RuntimeR3VccTricks2_VBOX_LIBCMT_NEEDED =
2903
2904$$(RuntimeR3VccTricks2_0_OUTDIR)/dynobjs.lib: \
2905 $$(PATH_TOOL_$$(TEMPLATE_VBoxR3Dll_TOOL.win.x86)_LIB)/msvcrt$(VBOX_VCC_CRT_TYPE).lib \
2906 $$(PATH_TOOL_$$(TEMPLATE_VBoxR3Dll_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
2907 $$(LIB_RUNTIME) \
2908 $(MAKEFILE) | $$(dir $$@)
2909 $(RM) -f -- "$@"
2910# $(REDIRECT) -C $(dir $@) -- $(KBUILD_DEVTOOLS)/common/openwatcom/v1.9-r2/binnt/wlib \
2911# $(PATH_TOOL_$(TEMPLATE_VBoxR3Dll_TOOL.win.x86)_LIB)/libcmt$(VBOX_VCC_CRT_TYPE).lib \
2912# $(foreach file, $(RuntimeR3VccTricks2_VBOX_LIBCMT_NEEDED), *$(file))
2913 $(KBUILD_DEVTOOLS)/common/openwatcom/v1.9-r2/binnt/wlib [email protected] $< \
2914 -MSVCR100.dll \
2915 $(addprefix $(RuntimeR3VccTricks2_0_OUTDIR)/, $(RuntimeR3VccTricks2_VBOX_LIBCMT_NEEDED)) \
2916 -chandler4gs.obj
2917 $(KBUILD_DEVTOOLS)/common/openwatcom/v1.9-r2/binnt/wlib -o=$@ \
2918 $(LIB_RUNTIME) \
2919 [email protected]
2920 $(RM) -f -- [email protected] $(addprefix $(RuntimeR3VccTricks2_0_OUTDIR)/, $(RuntimeR3VccTricks_VBOX_LIBCMT_NEEDED))
2921endif
2922
2923
2924#
2925# errmsg.cpp depends on a generated header.
2926#
2927common/err/errmsg.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgdata.h
2928common/err/errmsg.cpp_INCS = $(IPRT_OUT_DIR)
2929
2930win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgcomdata.h
2931win/errmsgwin.cpp_INCS = $(IPRT_OUT_DIR)
2932
2933# Our COM errors only for R3 libraries on the host
2934define def_errmsgwin_deps
2935 $(lib)_win/errmsgwin.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2936 $(lib)_common/err/errmsgxpcom.cpp_INCS = $(IPRT_OUT_DIR)
2937 $(lib)_common/err/errmsgxpcom.cpp_DEPS = $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2938endef
2939$(foreach lib,RuntimeR3 RuntimeBldProg VBoxRT VBoxRT-x86,$(eval $(def_errmsgwin_deps)))
2940
2941
2942#
2943# Generate the status code data.
2944#
2945$(IPRT_OUT_DIR)/errmsgdata.h: \
2946 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsg.sed \
2947 $(PATH_ROOT)/include/iprt/err.h \
2948 $(PATH_ROOT)/include/VBox/err.h \
2949 | $$(dir $$@)
2950 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2951 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2952
2953## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
2954$(IPRT_OUT_DIR)/errmsgcomdata.h: \
2955 $(VBOX_PATH_RUNTIME_SRC)/common/err/errmsgcom.sed \
2956 $$(PATH_SDK_$(VBOX_WINPSDK)_INC)/WinError.h \
2957 | $$(dir $$@)
2958 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
2959 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
2960
2961$(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts +| $(IPRT_OUT_DIR)/errmsgvboxcomdata.h: \
2962 $(VBOX_PATH_RUNTIME_SRC)/VBox/errmsgvboxcom.xsl \
2963 $(VBOX_XIDL_FILE_SRC) \
2964 | $$(dir $$@)
2965 $(call MSG_GENERATE,,$@,$(filter %.xidl,$^))
2966 $(QUIET)$(VBOX_XSLTPROC) -o $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $< $(filter %.xidl,$^)
2967 $(QUIET)$(CP) --changed -fv $(IPRT_OUT_DIR)/errmsgvboxcomdata.h.ts $(IPRT_OUT_DIR)/errmsgvboxcomdata.h
2968
2969
2970if "$(KBUILD_TARGET)" == "freebsd"
2971#
2972# FreeBSDGeneratedKernelHeaders - Generate some kernel interface headers.
2973#
2974# These are used by:
2975# - The RTMp* API in IPRT.
2976# - VBoxGuest
2977#
2978# Note! We cannot give a output path to the awk program, it will always
2979# generate the header next to the source. So, we'll have to temporarily copy
2980# the source file to the destination directory to work.
2981#
2982VBOX_AWK := /usr/bin/awk
2983INSTALLS += FreeBSDGeneratedKernelHeaders
2984FreeBSDGeneratedKernelHeaders_INST = gen-sys-hdrs/
2985FreeBSDGeneratedKernelHeaders_SOURCES = \
2986 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h \
2987 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h \
2988 $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h
2989FreeBSDGeneratedKernelHeaders_CLEAN = $(FreeBSDGeneratedKernelHeaders_SOURCES)
2990
2991$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
2992 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2993 $(QUIET)$(CP) -f $< $(@D)/bus_if.m
2994 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/bus_if.m -h -p
2995 $(QUIET)$(RM) $(@D)/bus_if.m
2996
2997$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
2998 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
2999 $(QUIET)$(CP) -f $< $(@D)/device_if.m
3000 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/device_if.m -h -p
3001 $(QUIET)$(RM) $(@D)/device_if.m
3002
3003$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m | $$(dir $$@)
3004 $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
3005 $(QUIET)$(CP) -f $< $(@D)/pci_if.m
3006 $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/pci_if.m -h -p
3007 $(QUIET)$(RM) $(@D)/pci_if.m
3008endif # FreeBSD
3009
3010
3011#
3012# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
3013#
3014ldrELFRelocatable.cpp.o: ldrELF.o
3015ldrELFRelocatable.cpp.obj: ldrELF.obj
3016
3017
3018#
3019# Doxygen documentation.
3020#
3021IPRT_DOXYFILE_INPUT_DIRS = \
3022 $(PATH_ROOT)/include/iprt \
3023 $(PATH_ROOT)/include/iprt/cpp \
3024 $(PATH_ROOT)/include/iprt/linux \
3025 $(PATH_ROOT)/include/iprt/nocrt \
3026 $(PATH_ROOT)/include/iprt/nocrt/x86 \
3027 $(PATH_ROOT)/include/iprt/nocrt/amd64 \
3028 $(PATH_ROOT)/include/iprt/nocrt/compiler \
3029 $(VBOX_PATH_RUNTIME_SRC)/include/internal \
3030 $(VBOX_PATH_RUNTIME_SRC)/common/alloc \
3031 $(VBOX_PATH_RUNTIME_SRC)/common/asm \
3032 $(VBOX_PATH_RUNTIME_SRC)/common/checksum \
3033 $(VBOX_PATH_RUNTIME_SRC)/common/dbg \
3034 $(VBOX_PATH_RUNTIME_SRC)/common/err \
3035 $(VBOX_PATH_RUNTIME_SRC)/common/ldr \
3036 $(VBOX_PATH_RUNTIME_SRC)/common/log \
3037 $(VBOX_PATH_RUNTIME_SRC)/common/math \
3038 $(VBOX_PATH_RUNTIME_SRC)/common/math/amd64 \
3039 $(VBOX_PATH_RUNTIME_SRC)/common/math/gcc \
3040 $(VBOX_PATH_RUNTIME_SRC)/common/math/x86 \
3041 $(VBOX_PATH_RUNTIME_SRC)/common/misc \
3042 $(VBOX_PATH_RUNTIME_SRC)/common/path \
3043 $(VBOX_PATH_RUNTIME_SRC)/common/rand \
3044 $(VBOX_PATH_RUNTIME_SRC)/common/string \
3045 $(VBOX_PATH_RUNTIME_SRC)/common/table \
3046 $(VBOX_PATH_RUNTIME_SRC)/common/time \
3047 $(VBOX_PATH_RUNTIME_SRC)/VBox \
3048 $(foreach dir, $(VBOX_PATH_RUNTIME_SRC) $(VBOX_PATH_RUNTIME_SRC)/r3 $(VBOX_PATH_RUNTIME_SRC)/r0drv,\
3049 $(dir) \
3050 $(dir)/darwin \
3051 $(dir)/haiku \
3052 $(dir)/linux \
3053 $(dir)/nt \
3054 $(dir)/os2 \
3055 $(dir)/solaris \
3056 $(dir)/win \
3057 $(dir)/win32 \
3058 $(dir)/win64 \
3059 $(dir)/generic \
3060 )
3061
3062# These must come first in order to make things look nice.
3063IPRT_DOXYFILE_INPUT_FIRST =\
3064 $(PATH_ROOT)/include/iprt/cdefs.h \
3065 $(PATH_ROOT)/include/iprt/types.h \
3066 $(PATH_ROOT)/include/iprt/runtime.h \
3067 $(PATH_ROOT)/include/iprt/param.h \
3068 $(PATH_ROOT)/include/iprt/assert.h \
3069 $(PATH_ROOT)/include/iprt/asm.h \
3070
3071IPRT_DOXYFILE_INPUT := \
3072 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(IPRT_DOXYFILE_INPUT_DIRS)))) ) \
3073 $(foreach dir, $(IPRT_DOXYFILE_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
3074IPRT_DOXYFILE_INPUT := \
3075 $(IPRT_DOXYFILE_INPUT_FIRST) \
3076 $(sort $(filter-out $(IPRT_DOXYFILE_INPUT_FIRST), $(IPRT_DOXYFILE_INPUT)))
3077
3078
3079IPRT_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/iprt
3080BLDDIRS += $(IPRT_DOXYFILE_OUTPUT)
3081
3082includedep $(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt.dep
3083
3084# Generate the Doxyfile
3085$(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt: \
3086 $(VBOX_PATH_RUNTIME_SRC)/Doxyfile \
3087 $(VBOX_PATH_RUNTIME_SRC)/Makefile.kmk \
3088 $(comp-vars IPRT_DOXYFILE_INPUT,DOXYGEN_IPRT_INPUT_PREV,FORCE) \
3089 $(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_IPRT_OUTPUT_PREV,FORCE) \
3090 | $$(dir $$@)
3091 $(QUIET)$(RM) -f $@ [email protected] [email protected]
3092 $(QUIET)$(CP) -f $(VBOX_PATH_RUNTIME_SRC)/Doxyfile [email protected]
3093 $(QUIET)$(APPEND) [email protected]
3094 $(QUIET)$(APPEND) [email protected] "OUTPUT_DIRECTORY = $(IPRT_DOXYFILE_OUTPUT)"
3095 $(QUIET)$(APPEND) [email protected] "WARN_LOGFILE = $(IPRT_DOXYFILE_OUTPUT)/errors"
3096 $(QUIET)$(APPEND) [email protected] 'INCLUDE_PATH = ' \
3097 '$(PATH_ROOT)/include' \
3098 '$(VBOX_PATH_RUNTIME_SRC)/include' \
3099 '$(VBOX_PATH_RUNTIME_SRC)/' \
3100 '$(VBOX_PATH_RUNTIME_SRC)/common/table'
3101 $(QUIET)$(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
3102 $(QUIET)$(APPEND) [email protected] "PREDEFINED += $(ARCH_BITS_DEFS)"
3103 $(QUIET)$(APPEND) [email protected] 'EXCLUDE = '\
3104 '$(VBOX_PATH_RUNTIME_SRC)/common/string/unidata-flags.cpp' \
3105 '$(VBOX_PATH_RUNTIME_SRC)/common/string/unidata-lower.cpp' \
3106 '$(VBOX_PATH_RUNTIME_SRC)/common/string/unidata-upper.cpp' \
3107 '$(VBOX_PATH_RUNTIME_SRC)/common/ldr/ldrkStuff.cpp'
3108 $(QUIET)$(APPEND) [email protected]
3109 $(QUIET)$(APPEND) [email protected] 'INPUT = $(foreach x,$(IPRT_DOXYFILE_INPUT),\$(NLTAB)$(x))'
3110 $(QUIET)$(APPEND) [email protected]
3111 $(QUIET)$(MV) -f [email protected] $@
3112 $(QUIET)$(APPEND) [email protected] "DOXYGEN_IPRT_OUTPUT_PREV = $(IPRT_DOXYFILE_OUTPUT)"
3113 $(QUIET)$(APPEND) [email protected] "DOXYGEN_IPRT_INPUT_PREV = $(IPRT_DOXYFILE_INPUT)"
3114
3115# Do the actual job.
3116$(IPRT_DOXYFILE_OUTPUT)/docs.iprt: $(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt $$(IPRT_DOXYFILE_INPUT) \
3117 | $(IPRT_DOXYFILE_OUTPUT)/
3118 $(QUIET)$(RM) -f $@
3119 $(QUIET)$(RM) -Rf $(IPRT_DOXYFILE_OUTPUT)/html/
3120 doxygen $(DOXYGEN_OPTS) $(IPRT_DOXYFILE_OUTPUT)/Doxyfile.iprt
3121 $(SED) -e '/warning. Unexpected tag .dd. found/d' \
3122 -e '/warning. Unsupported xml.html tag .globalScope. found/d' \
3123 --output $(IPRT_DOXYFILE_OUTPUT)/errors2 \
3124 $(IPRT_DOXYFILE_OUTPUT)/errors
3125 $(CAT) $(IPRT_DOXYFILE_OUTPUT)/errors2
3126 $(SED) -e "/[^ ]/q 1" $(IPRT_DOXYFILE_OUTPUT)/errors2
3127 $(APPEND) $@
3128
3129# aliases
3130docs.iprt: $(IPRT_DOXYFILE_OUTPUT)/docs.iprt
3131if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
3132docs: $(IPRT_DOXYFILE_OUTPUT)/docs.iprt
3133endif
3134
3135test-doxygen::
3136 @echo test-$(comp-vars IPRT_DOXYFILE_OUTPUT,DOXYGEN_IPRT_OUTPUT_PREV,FORCE)
3137 @echo $(IPRT_DOXYFILE_OUTPUT)
3138 @echo $(DOXYGEN_IPRT_OUTPUT_PREV)
3139 @echo $(IPRT_DOXYFILE_INPUT)
3140
3141
3142#
3143# Test mangling.
3144#
3145if1of ($(LIBRARIES),RuntimeR3 RuntimeR0 RuntimeR0Drv RuntimeRC)
3146 test-mangling:: $(IPRT_OUT_DIR)/mangling.run
3147 OTHERS += $(IPRT_OUT_DIR)/mangling.run
3148 CLEANS += $(IPRT_OUT_DIR)/mangling.run
3149 $(IPRT_OUT_DIR)/mangling.run: \
3150 $$(RuntimeR3_1_TARGET) \
3151 $$(RuntimeR0_1_TARGET) \
3152 $$(RuntimeR0Drv_1_TARGET) \
3153 $$(RuntimeRC_1_TARGET)
3154 if1of ($(KBUILD_TARGET), win os2)
3155 $(call MSG_L1,IPRT: skipped mangling test.)
3156 else
3157# Generate a SED script from mangling.h that checks for known symbols.
3158 $(QUIET)$(SED) \
3159 -e '/^# *define.*RT_MANGLER/!d' \
3160 -e 's/^.*RT_MANGLER(\([^)][^)]*\)).*$(DOLLAR)/\/^\1$(DOLLAR)\/b ok/' \
3161 $(PATH_ROOT)/include/iprt/mangling.h \
3162 --output "$@"
3163 $(QUIET)$(APPEND) -n '$@' \
3164 ':bad' \
3165 's/^\(.*\)$(DOLLAR)/error: Missing # define \1 /' \
3166 ':bad-pad' \
3167 '/^.\{0,70\}$(DOLLAR)/ { s/$(DOLLAR)/ /; bbad-pad; }' \
3168 's/define \([^ ]*\) \([ ]*\)$(DOLLAR)/define \1 \2RT_MANGLER(\1)/' \
3169 'p' \
3170 $(if-expr !defined(IPRT_IGNORE_TEST_MANGLING),'q 1') \
3171 '' \
3172 ':ok' \
3173 'd'
3174# Find the best way to generate a symbol list and subject it to mangling.h.
3175 if $(intersects $(KBUILD_TARGET), linux) && "$(VBOX_GCC_fvisibility-hidden)"
3176 $(call MSG_L1,IPRT: Testing mangling and visiblity for newer gcc...)
3177 $(QUIET)readelf -Ws $^ \
3178 | $(SED) \
3179 -e 's/[[:space:]]\+/ /g' \
3180 -e '/^ *[[:digit:]]\+:/!d' \
3181 -e 's/^ \+[[:digit:]]\+: \+[[:xdigit:]]\+ \+[[:digit:]]\+ \+//' \
3182 -e '/^SECTION/d' \
3183 -e '/^FILE/d' \
3184 -e 's/^[[:alpha:]]\+ \+//' \
3185 -e '/LOCAL/d' \
3186 -e 's/^[[:alpha:]]\+ \+//' \
3187 -e '/^HIDDEN [[:xdigit:]]\+ RT/bkeep-hidden' \
3188 -e '/^HIDDEN [[:xdigit:]]\+ g_[a-z0-9]*RT/bkeep-hidden' \
3189 -e '/^HIDDEN/d' \
3190 -e ':keep-hidden' \
3191 -e 's/^[[:alpha:]]\+ \+//' \
3192 -e '/^UND/d' \
3193 -e 's/^[[:digit:]]\+ \+//' \
3194 \
3195 -e '/^nocrt_/d' \
3196 -e '/^bzero/d' \
3197 -e '/^memchr/d' \
3198 -e '/^memcmp/d' \
3199 -e '/^memcpy/d' \
3200 -e '/^mempcpy/d' \
3201 -e '/^memmove/d' \
3202 -e '/^memset/d' \
3203 -e '/^strchr/d' \
3204 -e '/^strpbrk/d' \
3205 -e '/^_Z7strpbrk/d' \
3206 -e '/^strcmp/d' \
3207 -e '/^strcpy/d' \
3208 -e '/^strncpy/d' \
3209 -e '/^strlen/d' \
3210 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
3211 -e '/^_Z[[:alpha:]]*[[:digit:]]\+RTC/d' \
3212 \
3213 -e '/^_ZnwjPv/d' \
3214 -e '/^_ZnwmPv/d' \
3215 -e '/^_ZNSt9bad_allocC1Ev/d' \
3216 -e '/^_ZNSt9bad_allocC[12]ERKS_/d' \
3217 -e '/^_ZNSt9exceptionC2Ev/d' \
3218 -e '/^_ZNSt9exceptionC[12]ERKS_/d' \
3219 \
3220 -e '/^_ZN[a-zA-Z]*St[[:digit:]]*_*[lL]ist/d' \
3221 -e '/^_ZN[a-zA-Z]*[[:digit:]]*__gnu_cxx/d' \
3222 -e '/^_ZNSa.*ElementNode.*/d' \
3223 -e '/^_ZSt.*ElementNode.*/d' \
3224 \
3225 -e '/^_Z[[:digit:]]\+dbus/d' \
3226 -e '/^_Z13RTDBusLoadLibv/d' \
3227 \
3228 -e '/^g_[ac]VTG/d' \
3229 -e '/^g_VTGObjHeader/d' \
3230 -e '/^g_VTGProbeData/d' \
3231 -e '/^VTGProbeStub/d' \
3232 -e '/^g_achVTGStringTable/d' \
3233 -e '/^g_acVTGProbeEnabled/d' \
3234 \
3235 -e '/^VBoxHost_/d'\
3236 -e '/^VBoxGuest_/d'\
3237 | $(SED) -nf "$@"
3238 endif
3239 $(call MSG_L1,IPRT: Testing mangling using nm...)
3240 $(QUIET)$(VBOX_NM) $^ 2> /dev/null \
3241 | $(SED) -n \
3242 -e 's/^[0-9a-f][0-9a-f]* //' \
3243 -e '/^[TUDB] /!d' \
3244 -e 's/^. //' \
3245 $(if-expr "$(KBUILD_TARGET)" == "darwin" || "$(KBUILD_TARGET)" == "os2" || "$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)" == "win.x86", \
3246 -e 's/^_//',) \
3247 \
3248 -e '/^g_cchrt/d'\
3249 -e '/^g_frt/d'\
3250 -e '/^g_offrt/d'\
3251 -e '/^g_pfnrt/d'\
3252 -e '/^g_rt/d'\
3253 -e '/^g_szrt/d'\
3254 -e '/^g_ProcessSelf/d'\
3255 -e '/^g_u64ProgramStart/d'\
3256 -e '/^g_enmProcessPriority/d'\
3257 -e '/^g_hDbgModStrCache/d'\
3258 -e '/^g_pfnR0Darwin/d'\
3259 -e '/^g_pDarwinLockGroup/d'\
3260 $(if-expr "$(KBUILD_TARGET)" == "solaris", \
3261 -e '/^g_kLdrRdrFileOps/d' \
3262 -e '/^g_pSUPGlobalInfoPage/d' \
3263 -e '/^g_Logger/d' \
3264 -e '/^g_RelLogger/d' \
3265 -e '/^g_VM/d',) \
3266 $(if-expr "$(KBUILD_TARGET)" == "linux", \
3267 -e '/^g_kLdrRdrFileOps/d',) \
3268 \
3269 -e '/^g_[ac]VTG/d' \
3270 -e '/^g_VTGObjHeader/d' \
3271 -e '/^g_VTGProbeData/d' \
3272 -e '/^VTGProbeStub/d' \
3273 -e '/^g_achVTGStringTable/d' \
3274 -e '/^g_acVTGProbeEnabled/d' \
3275 \
3276 -e '/^RTDBusLoadLib/d' \
3277 \
3278 -e '/^RT/p' \
3279 -e '/^g_/p' \
3280 | $(SED) -nf "$@"
3281 endif
3282endif
3283 $(QUIET)$(APPEND) -t $@
3284
3285if !defined(VBOX_ONLY_ADDITIONS) && !defined(VBOX_ONLY_VALIDATIONKIT) && !defined(VBOX_ONLY_DOCS)
3286#
3287# Windows build tool.
3288#
3289BLDPROGS.win += ntBldSymDb
3290ntBldSymDb_TEMPLATE = VBoxAdvBldProg
3291ntBldSymDb_INCS = .
3292ntBldSymDb_SOURCES = r0drv/nt/ntBldSymDb.cpp
3293endif
3294
3295
3296#
3297# Generate the rules (we're the to sub-makefile).
3298#
3299include $(FILE_KBUILD_SUB_FOOTER)
3300
3301
3302#
3303# Aliases for code templates.
3304#
3305rsa-template.o rsa-template.obj: rsa-core.o rsa-asn1-decoder.o rsa-sanity.o rsa-init.o
3306spc-template.o spc-template.obj: spc-core.o spc-asn1-decoder.o spc-sanity.o spc-init.o
3307taf-template.o taf-template.obj: taf-core.o taf-asn1-decoder.o taf-sanity.o taf-init.o
3308tsp-template.o tsp-template.obj: tsp-core.o tsp-asn1-decoder.o tsp-sanity.o tsp-init.o
3309x509-template.o x509-template.obj: x509-core.o x509-asn1-decoder.o x509-sanity.o x509-init.o
3310pkcs7-template.o pkcs7-template.obj: pkcs7-core.o pkcs7-asn1-decoder.o pkcs7-sanity.o pkcs7-init.o
3311
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette