VirtualBox

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

Last change on this file since 72452 was 72436, checked in by vboxsync, 7 years ago

Runtime: bugref:9006 and bugref:9188: Initial code drop for a small and simple fuzzing framework which will be used for fuzzing our various parsers which handle untrusted user input

(filesystem, disk images, archives, certificates, etc.). Supports fuzzing any binary as long as it accepts input through a file or stdin so far. Very much work in
progress...

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

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