VirtualBox

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

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

Runtime: Start on a platform independent serial port access API which will be more advanced and cleaner than the code in DrvHostSerial. DrvHostSerial will be converted to use this API later on when it is mature. Additionally it will be used by a serial port test utility for automatic serial port testing in the validation kit

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