VirtualBox

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

Last change on this file since 8685 was 8681, checked in by vboxsync, 17 years ago

Wrote the xpcom error message lookup table by hand. (there are so few and none has proper descriptions)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 42.9 KB
Line 
1# $Id: Makefile.kmk 8681 2008-05-07 20:27:57Z vboxsync $
2## @file
3# Makefile for the IPRT (IPRT).
4#
5
6#
7# Copyright (C) 2006-2007 Sun Microsystems, Inc.
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# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
27# Clara, CA 95054 USA or visit http://www.sun.com if you need
28# additional information or have any questions.
29#
30
31
32DEPTH = ../../..
33include $(PATH_KBUILD)/header.kmk
34
35ifdef VBOX_ONLY_ADDITIONS
36 #
37 # Only build the additions, sort out the legacy names first.
38 #
39 ifeq ($(BUILD_TARGET),win)
40 LIBRARIES = RuntimeW32GuestR0 RuntimeW32GuestR3 RuntimeW32NT4GuestR0
41 else
42 LIBRARIES = RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
43 #LIBRARIES.os2 = RuntimeOS2Warp3GuestR0
44 #LIBRARIES.win = RuntimeW32NT4GuestR0
45 ifndef VBOX_WITH_ADDITION_DRIVERS
46 if1of ($(BUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
47 LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
48 endif
49 endif
50 endif
51
52else
53
54 #
55 # Normal build.
56 #
57 BLDPROGS = uniread
58 LIBRARIES = RuntimeR3 RuntimeR0 RuntimeGC RuntimeEFCPP RuntimeR3NoCRTGCC
59 ifdef VBOX_WITH_VBOXDRV
60 LIBRARIES += RuntimeR0Drv
61 endif
62 ifdef VBOX_WITH_ADDITIONS
63 ifdef VBOX_WITH_WIN32_ADDITIONS
64 LIBRARIES += RuntimeW32GuestR0 RuntimeW32GuestR3 RuntimeW32NT4GuestR0
65 endif
66 ifneq ($(BUILD_TARGET),win)
67 LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Mini
68 #LIBRARIES.os2 = RuntimeOS2Warp3GuestR0
69 #LIBRARIES.win = RuntimeW32NT4GuestR0
70 ifndef VBOX_WITH_ADDITION_DRIVERS
71 if1of ($(BUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
72 LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
73 endif
74 endif
75 endif
76 endif # VBOX_WITH_ADDITIONS
77 LIBRARIES.l4 = RuntimeR3L4 RuntimeLnxHostR3
78 DLLS = VBoxRT
79 OTHER_CLEAN = \
80 $(PATH_TARGET)/errmsgdata.h \
81 $(PATH_TARGET)/errmsgcomdata.h \
82 $(PATH_TARGET)/Doxyfile \
83 $(PATH_TARGET)/Doxyfile.dep \
84 $(PATH_TARGET)/docs.iprt
85
86 SUBDIRS_AFTER = testcase
87endif
88
89
90# global (for now at least)
91INCS += include
92
93#
94# Unicode Specification reader used to regenerate unidata.cpp.
95#
96uniread_TEMPLATE = VBOXBLDPROG
97uniread_SOURCES = common/string/uniread.cpp
98
99#
100# Win64 assembly sources.
101#
102RuntimeWin64ASM_SOURCES = \
103 win/amd64/ASMAtomicBitClear.asm \
104 win/amd64/ASMAtomicBitTestAndToggle.asm \
105 win/amd64/ASMAtomicBitToggle.asm \
106 win/amd64/ASMAtomicReadU64.asm \
107 win/amd64/ASMAtomicXchgU16.asm \
108 win/amd64/ASMAtomicXchgU8.asm \
109 win/amd64/ASMBitFirstClear.asm \
110 win/amd64/ASMBitFirstSet.asm \
111 win/amd64/ASMGetCS.asm \
112 win/amd64/ASMGetDS.asm \
113 win/amd64/ASMGetES.asm \
114 win/amd64/ASMGetFlags.asm \
115 win/amd64/ASMGetFS.asm \
116 win/amd64/ASMGetGS.asm \
117 win/amd64/ASMGetIDTR.asm \
118 win/amd64/ASMGetGDTR.asm \
119 win/amd64/ASMGetTR.asm \
120 win/amd64/ASMGetSS.asm \
121 win/amd64/ASMProbeReadByte.asm \
122 win/amd64/ASMSetFlags.asm \
123 win/amd64/ASMGetDR0.asm \
124 win/amd64/ASMGetDR1.asm \
125 win/amd64/ASMGetDR2.asm \
126 win/amd64/ASMGetDR3.asm \
127 win/amd64/ASMGetDR6.asm \
128 win/amd64/ASMGetDR7.asm \
129 common/asm/ASMMultU64ByU32DivByU32.asm
130
131#
132# Win32 assembly sources.
133#
134RuntimeWin32ASM_SOURCES = \
135 common/asm/ASMMultU64ByU32DivByU32.asm
136
137#
138# RuntimeR3 - Static Runtime for Ring-3 executables.
139#
140RuntimeR3_TEMPLATE = VBOXR3EXE
141RuntimeR3_SDKS.win = WINPSDK W2K3DDK
142RuntimeR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
143ifdef IPRT_WITH_KSTUFF
144 RuntimeR3_DEFS += LDR_WITH_KLDR
145endif
146ifdef VBOX_MAIN_RELEASE_LOG ## @todo (dmik): temporary, until RTThreadSelf/RTThreadAdopt are properly updated
147 RuntimeR3_DEFS += RTCRITSECT_STRICT
148endif
149RuntimeR3_INCS = \
150 $(PATH_ROOT)/src/libs/liblzf-1.51
151ifdef IPRT_WITH_KSTUFF
152 RuntimeR3_INCS += \
153 $(PATH_ROOT)/src/libs/kStuff/kStuff/include
154endif
155RuntimeR3_INCS.l4 = \
156 $(L4_INCDIR)
157# for iconv.h
158RuntimeR3_INCS.freebsd = \
159 /usr/local/include
160
161
162# RuntimeR3_INCS.solaris = \
163# /usr/include
164
165RuntimeR3_SOURCES = \
166 common/alloc/alloc.cpp \
167 common/alloc/heapsimple.cpp \
168 common/checksum/crc32.cpp \
169 common/checksum/crc64.cpp \
170 common/checksum/md5.cpp \
171 common/err/errmsg.cpp \
172 common/err/RTErrConvertFromErrno.cpp \
173 common/ldr/ldr.cpp \
174 common/ldr/ldrELF.cpp \
175 common/ldr/ldrEx.cpp \
176 common/ldr/ldrFile.cpp \
177 common/ldr/ldrNative.cpp \
178 common/ldr/ldrPE.cpp \
179 common/log/log.cpp \
180 common/log/logcom.cpp \
181 common/log/logformat.cpp \
182 common/misc/assert.cpp \
183 common/misc/cidr.cpp \
184 common/misc/getopt.cpp \
185 common/misc/rand.cpp \
186 common/misc/req.cpp \
187 common/misc/sanity-c.c \
188 common/misc/sanity-cpp.cpp \
189 common/misc/semspingpong.cpp \
190 common/misc/thread.cpp \
191 common/misc/zip.cpp \
192 common/string/straprintf.cpp \
193 common/string/strformat.cpp \
194 common/string/strformatrt.cpp \
195 common/string/strformattype.cpp \
196 common/string/string.cpp \
197 common/string/strprintf.cpp \
198 common/string/strspace.cpp \
199 common/string/strstrip.cpp \
200 common/string/strtonum.cpp \
201 common/string/uni.cpp \
202 common/string/unidata.cpp \
203 common/string/utf-16.cpp \
204 common/string/utf-8.cpp \
205 common/table/avlgcptr.cpp \
206 common/table/avlhcphys.cpp \
207 common/table/avllu32.cpp \
208 common/table/avlogcphys.cpp \
209 common/table/avlogcptr.cpp \
210 common/table/avlohcphys.cpp \
211 common/table/avloioport.cpp \
212 common/table/avlpv.cpp \
213 common/table/avlrgcptr.cpp \
214 common/table/avlrogcphys.cpp \
215 common/table/avlrogcptr.cpp \
216 common/table/avlroioport.cpp \
217 common/table/avlroogcptr.cpp \
218 common/table/avlu32.cpp \
219 common/table/avlul.cpp \
220 common/table/table.cpp \
221 common/time/time.cpp \
222 common/time/timeprog.cpp \
223 common/time/timesup.cpp \
224 generic/critsect-generic.cpp \
225 generic/env-generic.cpp \
226 generic/RTFileCopy-generic.cpp \
227 generic/RTLogWriteStdErr-generic.cpp \
228 generic/RTLogWriteStdOut-generic.cpp \
229 generic/RTLogWriteUser-generic.cpp \
230 generic/semfastmutex-generic.cpp \
231 generic/spinlock-generic.cpp \
232 r3/alloc-ef.cpp \
233 r3/alloc.cpp \
234 r3/dir.cpp \
235 r3/fileio.cpp \
236 r3/fs.cpp \
237 r3/init.cpp \
238 r3/path.cpp \
239 r3/process.cpp \
240 r3/stream.cpp \
241 r3/tcp.cpp
242
243#if1of ($(BUILD_TARGET_ARCH),amd64 x86)
244# RuntimeR3_SOURCES += common/time/timesupA.asm
245#else
246 RuntimeR3_SOURCES += common/time/timesupref.cpp
247#endif
248
249ifdef IPRT_WITH_KSTUFF
250 RuntimeR3_SOURCES += \
251 common/ldr/ldrkStuff.cpp
252endif
253
254# VBox specific stuff.
255RuntimeR3_SOURCES += \
256 VBox/strformat-vbox.cpp \
257 VBox/RTAssertDoBreakpoint-vbox.cpp \
258 VBox/log-vbox.cpp
259ifneq ($(BUILD_TARGET),win)
260RuntimeR3_SOURCES += \
261 common/err/errmsgxpcom.cpp
262endif
263
264RuntimeR3_SOURCES.win = \
265 generic/rand-stubs-generic.cpp \
266 generic/RTDirQueryInfo-generic.cpp \
267 generic/RTDirSetTimes-generic.cpp \
268 generic/semnoint-generic.cpp \
269 generic/semsrw-generic.cpp \
270 nt/RTErrConvertFromNtStatus.cpp \
271 r3/posix/env-posix.cpp \
272 r3/win/alloc-win.cpp \
273 r3/win/dir-win.cpp \
274 r3/win/fileio-win.cpp \
275 r3/win/fs-win.cpp \
276 r3/win/ldrNative-win.cpp \
277 r3/win/mp-win.cpp \
278 r3/win/path-win.cpp \
279 r3/win/process-win.cpp \
280 r3/win/RTLogWriteDebugger-win.cpp \
281 r3/win/sched-win.cpp \
282 r3/win/sems-win.cpp \
283 r3/win/system-win.cpp \
284 r3/win/thread-win.cpp \
285 r3/win/time-win.cpp \
286 r3/win/timer-win.cpp \
287 r3/win/tls-win.cpp \
288 r3/win/utf16locale-win.cpp \
289 r3/win/utf8-win.cpp \
290 r3/win/uuid-win.cpp \
291 win/errmsgwin.cpp \
292 win/RTErrConvertFromWin32.cpp
293
294RuntimeR3_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
295RuntimeR3_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
296
297RuntimeR3_SOURCES.linux = \
298 generic/pathhost-generic.cpp \
299 generic/RTDirQueryInfo-generic.cpp \
300 generic/RTDirSetTimes-generic.cpp \
301 generic/RTFileMove-generic.cpp \
302 generic/RTLogWriteDebugger-generic.cpp \
303 generic/RTTimeLocalNow-generic.cpp \
304 generic/RTTimerCreate-generic.cpp \
305 generic/utf16locale-generic.cpp \
306 generic/uuid-generic.cpp \
307 r3/linux/sched-linux.cpp \
308 r3/linux/time-linux.cpp \
309 r3/posix/alloc-posix.cpp \
310 r3/posix/dir-posix.cpp \
311 r3/posix/env-posix.cpp \
312 r3/posix/fileio-posix.cpp \
313 r3/posix/filelock-posix.cpp \
314 r3/posix/fs-posix.cpp \
315 r3/posix/ldrNative-posix.cpp \
316 r3/posix/path-posix.cpp \
317 r3/posix/process-posix.cpp \
318 r3/posix/rand-posix.cpp \
319 r3/posix/RTMpGetCount-posix.cpp \
320 r3/posix/RTTimeNow-posix.cpp \
321 r3/posix/semrw-posix.cpp \
322 r3/posix/system-posix.cpp \
323 r3/posix/thread-posix.cpp \
324 r3/posix/timelocal-posix.cpp \
325 r3/posix/timer-posix.cpp \
326 r3/posix/tls-posix.cpp \
327 r3/posix/utf8-posix.cpp
328RuntimeR3_SOURCES.linux.x86 += \
329 r3/posix/semevent-posix.cpp \
330 r3/posix/semeventmulti-posix.cpp \
331 r3/posix/semmutex-posix.cpp
332RuntimeR3_SOURCES.linux.amd64 += \
333 r3/linux/semevent-linux.cpp \
334 r3/linux/semeventmulti-linux.cpp
335ifdef RT_NEW_LINUX_MUTEX_CODE
336 RuntimeR3_SOURCES.linux.amd64 += \
337 r3/linux/semmutex-linux.cpp
338else
339 RuntimeR3_SOURCES.linux.amd64 += \
340 r3/posix/semmutex-posix.cpp
341endif
342
343RuntimeR3_SOURCES.os2 = \
344 generic/pathhost-generic.cpp \
345 generic/rand-stubs-generic.cpp \
346 generic/RTDirQueryInfo-generic.cpp \
347 generic/RTDirSetTimes-generic.cpp \
348 generic/RTFileMove-generic.cpp \
349 generic/RTLogWriteDebugger-generic.cpp \
350 generic/RTTimeLocalNow-generic.cpp \
351 generic/RTTimerCreate-generic.cpp \
352 generic/semnoint-generic.cpp \
353 generic/semsrw-generic.cpp \
354 generic/timer-generic.cpp \
355 generic/utf16locale-generic.cpp \
356 generic/uuid-generic.cpp \
357 os2/RTErrConvertFromOS2.cpp \
358 r3/os2/filelock-os2.cpp \
359 r3/os2/mp-os2.cpp \
360 r3/os2/sched-os2.cpp \
361 r3/os2/sems-os2.cpp \
362 r3/os2/system-os2.cpp \
363 r3/os2/thread-os2.cpp \
364 r3/os2/time-os2.cpp \
365 r3/posix/alloc-posix.cpp \
366 r3/posix/dir-posix.cpp \
367 r3/posix/env-posix.cpp \
368 r3/posix/fileio-posix.cpp \
369 r3/posix/fs-posix.cpp \
370 r3/posix/ldrNative-posix.cpp \
371 r3/posix/path-posix.cpp \
372 r3/posix/process-posix.cpp \
373 r3/posix/RTTimeNow-posix.cpp \
374 r3/posix/timelocal-posix.cpp \
375 r3/posix/utf8-posix.cpp
376
377RuntimeR3_SOURCES.darwin = \
378 darwin/RTErrConvertFromDarwin.cpp \
379 darwin/RTErrConvertFromDarwinCOM.cpp \
380 darwin/RTErrConvertFromDarwinIO.cpp \
381 darwin/RTErrConvertFromDarwinKern.cpp \
382 generic/pathhost-generic.cpp \
383 generic/RTDirQueryInfo-generic.cpp \
384 generic/RTDirSetTimes-generic.cpp \
385 generic/RTFileMove-generic.cpp \
386 generic/RTLogWriteDebugger-generic.cpp \
387 generic/RTTimeLocalNow-generic.cpp \
388 generic/RTTimerCreate-generic.cpp \
389 generic/sched-generic.cpp \
390 generic/timer-generic.cpp \
391 generic/utf16locale-generic.cpp \
392 generic/uuid-generic.cpp\
393 r3/darwin/alloc-darwin.cpp \
394 r3/darwin/filelock-darwin.cpp \
395 r3/darwin/time-darwin.cpp \
396 r3/posix/dir-posix.cpp \
397 r3/posix/env-posix.cpp \
398 r3/posix/fileio-posix.cpp \
399 r3/posix/fs-posix.cpp \
400 r3/posix/ldrNative-posix.cpp \
401 r3/posix/path-posix.cpp \
402 r3/posix/process-posix.cpp \
403 r3/posix/RTMpGetCount-posix.cpp \
404 r3/posix/rand-posix.cpp \
405 r3/posix/semevent-posix.cpp \
406 r3/posix/semeventmulti-posix.cpp \
407 r3/posix/semmutex-posix.cpp \
408 r3/posix/semrw-posix.cpp \
409 r3/posix/system-posix.cpp \
410 r3/posix/thread-posix.cpp \
411 r3/posix/timelocal-posix.cpp \
412 r3/posix/tls-posix.cpp \
413 r3/posix/utf8-posix.cpp
414
415## @todo Make BSD sched.
416RuntimeR3_SOURCES.freebsd = \
417 generic/pathhost-generic.cpp \
418 generic/RTDirQueryInfo-generic.cpp \
419 generic/RTDirSetTimes-generic.cpp \
420 generic/RTFileMove-generic.cpp \
421 generic/RTLogWriteDebugger-generic.cpp \
422 generic/RTTimeLocalNow-generic.cpp \
423 generic/RTTimerCreate-generic.cpp \
424 generic/sched-generic.cpp \
425 generic/utf16locale-generic.cpp \
426 generic/uuid-generic.cpp \
427 r3/freebsd/alloc-freebsd.cpp \
428 r3/posix/dir-posix.cpp \
429 r3/posix/env-posix.cpp \
430 r3/posix/fileio-posix.cpp \
431 r3/posix/filelock-posix.cpp \
432 r3/posix/fs-posix.cpp \
433 r3/posix/ldrNative-posix.cpp \
434 r3/posix/path-posix.cpp \
435 r3/posix/process-posix.cpp \
436 r3/posix/rand-posix.cpp \
437 r3/posix/RTMpGetCount-posix.cpp \
438 r3/posix/RTTimeNow-posix.cpp \
439 r3/posix/semevent-posix.cpp \
440 r3/posix/semeventmulti-posix.cpp \
441 r3/posix/semmutex-posix.cpp \
442 r3/posix/semrw-posix.cpp \
443 r3/posix/system-posix.cpp \
444 r3/posix/thread-posix.cpp \
445 r3/posix/time-posix.cpp \
446 r3/posix/timelocal-posix.cpp \
447 r3/posix/timer-posix.cpp \
448 r3/posix/tls-posix.cpp \
449 r3/posix/utf8-posix.cpp
450
451RuntimeR3_SOURCES.solaris = \
452 generic/pathhost-generic.cpp \
453 generic/RTDirQueryInfo-generic.cpp \
454 generic/RTDirSetTimes-generic.cpp \
455 generic/RTFileMove-generic.cpp \
456 generic/RTLogWriteDebugger-generic.cpp \
457 generic/RTTimeLocalNow-generic.cpp \
458 generic/RTTimerCreate-generic.cpp \
459 generic/sched-generic.cpp \
460 generic/utf16locale-generic.cpp \
461 generic/uuid-generic.cpp \
462 r3/posix/dir-posix.cpp \
463 r3/posix/env-posix.cpp \
464 r3/posix/fileio-posix.cpp \
465 r3/posix/filelock-posix.cpp \
466 r3/posix/fs-posix.cpp \
467 r3/posix/ldrNative-posix.cpp \
468 r3/posix/path-posix.cpp \
469 r3/posix/process-posix.cpp \
470 r3/posix/rand-posix.cpp \
471 r3/posix/RTMpGetCount-posix.cpp \
472 r3/posix/RTTimeNow-posix.cpp \
473 r3/posix/semevent-posix.cpp \
474 r3/posix/semeventmulti-posix.cpp \
475 r3/posix/semmutex-posix.cpp \
476 r3/posix/semrw-posix.cpp \
477 r3/posix/system-posix.cpp \
478 r3/posix/thread-posix.cpp \
479 r3/posix/time-posix.cpp \
480 r3/posix/timelocal-posix.cpp \
481 r3/posix/timer-posix.cpp \
482 r3/posix/tls-posix.cpp \
483 r3/posix/utf8-posix.cpp \
484 r3/solaris/alloc-solaris.cpp
485
486## PORTME: Porters add their selection of platform specific files for Ring-3 here.
487
488
489#
490# L4 RuntimeR3 subtarget since L4 headers won't work with VBOXR3.
491#
492RuntimeR3L4_TEMPLATE = VBOXR3NP
493RuntimeR3L4_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF LDR_WITH_PE
494ifneq ($(BUILD_TARGET_ARCH),amd64)
495RuntimeR3L4_DEFS += __PIC__
496endif
497RuntimeR3L4_INCS = $(L4_INCDIR)
498
499RuntimeR3L4_SOURCES = \
500 generic/fs-stubs-generic.cpp \
501 generic/pathhost-generic.cpp \
502 generic/RTDirQueryInfo-generic.cpp \
503 generic/RTDirSetTimes-generic.cpp \
504 generic/RTFileMove-generic.cpp \
505 generic/RTLogWriteDebugger-generic.cpp \
506 generic/RTTimeLocalNow-generic.cpp \
507 generic/sched-generic.cpp \
508 generic/semnoint-generic.cpp \
509 generic/semsrw-generic.cpp \
510 generic/utf16locale-generic.cpp \
511 generic/uuid-generic.cpp \
512 l4/l4-errno.cpp \
513 l4/process-l4env.cpp \
514 l4/sems-l4env.cpp \
515 l4/system-l4env.cpp \
516 l4/thread-l4env.cpp \
517 l4/timer-l4env.cpp \
518 l4/utf8-l4env.cpp \
519 r3/posix/alloc-posix.cpp \
520 r3/posix/dir-posix.cpp \
521 r3/posix/env-posix.cpp \
522 r3/posix/fileio-posix.cpp \
523 r3/posix/filelock-posix.cpp \
524 r3/posix/ldrNative-posix.cpp \
525 r3/posix/path-posix.cpp \
526 r3/posix/rand-posix.cpp \
527 r3/posix/RTTimeNow-posix.cpp \
528 r3/posix/time-posix.cpp \
529 r3/posix/timelocal-posix.cpp
530
531
532#
533# RuntimeGuestR3 - Guest Additions Runtime (static).
534# (The BUILD_PLATFORM inheritance here is for l4 cross building the linux
535# additions, while .x86 is for cross building x86 while targeting amd64.)
536#
537RuntimeGuestR3_TEMPLATE := VBOXGUESTR3LIB
538RuntimeGuestR3_SDKS.win := $(RuntimeR3_SDKS.win)
539RuntimeGuestR3_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS))
540RuntimeGuestR3_DEFS.$(BUILD_TARGET) := $(RuntimeR3_DEFS.$(BUILD_TARGET))
541RuntimeGuestR3_DEFS.$(BUILD_PLATFORM) := $(RuntimeR3_DEFS.$(BUILD_PLATFORM))
542RuntimeGuestR3_INCS := $(RuntimeR3_INCS)
543RuntimeGuestR3_INCS.$(BUILD_TARGET) := $(RuntimeR3_INCS.$(BUILD_TARGET))
544RuntimeGuestR3_INCS.$(BUILD_PLATFORM) := $(RuntimeR3_INCS.$(BUILD_PLATFORM))
545RuntimeGuestR3_SOURCES := $(filter-out \
546 common/time/timesupref.cpp \
547 common/time/timesupA.asm \
548 common/time/timesup.cpp \
549 generic/RTLogWriteUser-generic.cpp \
550 , $(RuntimeR3_SOURCES))
551RuntimeGuestR3_SOURCES += \
552 common/time/timesysalias.cpp \
553 VBox/logbackdoor.cpp
554RuntimeGuestR3_SOURCES.$(BUILD_TARGET) := $(RuntimeR3_SOURCES.$(BUILD_TARGET))
555RuntimeGuestR3_SOURCES.$(BUILD_PLATFORM):= $(RuntimeR3_SOURCES.$(BUILD_PLATFORM))
556RuntimeGuestR3_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
557RuntimeGuestR3_SOURCES.$(BUILD_PLATFORM).$(BUILD_TARGET_ARCH) := $(RuntimeR3_SOURCES.$(BUILD_PLATFORM).$(BUILD_TARGET_ARCH))
558RuntimeGuestR3_SOURCES.$(BUILD_TARGET).x86 := $(RuntimeR3_SOURCES.$(BUILD_TARGET).x86)
559RuntimeGuestR3_SOURCES.$(BUILD_PLATFORM).x86 := $(RuntimeR3_SOURCES.$(BUILD_PLATFORM).x86)
560
561
562#
563# RuntimeGuestR3Mini - Minimal Guest Additions Runtime which does not require
564# initialization and can be linked into an .so. Intended
565# for X11 drivers, GRADD and similar.
566#
567RuntimeGuestR3Mini_TEMPLATE := VBOXGUESTR3DLL
568RuntimeGuestR3Mini_INST := $(INST_ADDITIONS_LIB)
569RuntimeGuestR3Mini_SDKS.win := $(RuntimeR3_SDKS.win)
570RuntimeGuestR3Mini_DEFS := $(filter-out RTCRITSECT_STRICT, $(RuntimeR3_DEFS)) RT_MINI
571RuntimeGuestR3Mini_DEFS.$(BUILD_TARGET) := $(RuntimeR3_DEFS.$(BUILD_TARGET))
572RuntimeGuestR3Mini_DEFS.$(BUILD_PLATFORM) := $(RuntimeR3_DEFS.$(BUILD_PLATFORM))
573RuntimeGuestR3Mini_INCS := $(RuntimeR3_INCS)
574RuntimeGuestR3Mini_INCS.$(BUILD_TARGET) := $(RuntimeR3_INCS.$(BUILD_TARGET))
575RuntimeGuestR3Mini_INCS.$(BUILD_PLATFORM) := $(RuntimeR3_INCS.$(BUILD_PLATFORM))
576RuntimeGuestR3Mini_SOURCES = \
577 common/err/errmsg.cpp \
578 common/err/RTErrConvertFromErrno.cpp \
579 common/log/logformat.cpp \
580 common/misc/assert.cpp \
581 common/misc/sanity-c.c \
582 common/misc/sanity-cpp.cpp \
583 common/string/strformat.cpp \
584 common/string/strformatrt.cpp \
585 common/string/strformattype.cpp \
586 common/string/string.cpp \
587 common/string/strprintf.cpp \
588 common/string/unidata.cpp \
589 common/string/utf-8.cpp \
590 common/string/utf-16.cpp \
591 generic/pathhost-generic.cpp \
592 generic/RTAssertDoBreakpoint-generic.cpp \
593 r3/alloc.cpp \
594 r3/fileio.cpp \
595 r3/fs.cpp \
596 r3/path.cpp
597RuntimeGuestR3Mini_SOURCES.linux = \
598 r3/posix/fileio-posix.cpp \
599 r3/posix/path-posix.cpp \
600 r3/posix/utf8-posix.cpp
601RuntimeGuestR3Mini_SOURCES.solaris = \
602 r3/posix/fileio-posix.cpp \
603 r3/posix/path-posix.cpp \
604 r3/posix/utf8-posix.cpp
605RuntimeGuestR3Mini_SOURCES.freebsd = \
606 r3/posix/fileio-posix.cpp \
607 r3/posix/path-posix.cpp \
608 r3/posix/utf8-posix.cpp
609# VBox specific stuff.
610RuntimeGuestR3Mini_SOURCES += \
611 VBox/logbackdoor.cpp \
612 VBox/logbackdoor-redirect.cpp \
613 VBox/strformat-vbox.cpp
614
615
616#
617# RuntimeW32GuestR3 - Win32 guest program runtime.
618#
619RuntimeW32GuestR3_TEMPLATE = VBOXW32GUESTR3LIB
620RuntimeW32GuestR3_SDKS = WINPSDK W2K3DDK
621RuntimeW32GuestR3_DEFS = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX
622ifdef IPRT_WITH_KSTUFF
623 RuntimeW32GuestR3_DEFS += LDR_WITH_KLDR
624endif
625RuntimeW32GuestR3_SOURCES = $(RuntimeR3_SOURCES.win) $(RuntimeR3_SOURCES)
626RuntimeW32GuestR3_INCS = $(RuntimeR3_INCS.win) $(RuntimeR3_INCS)
627
628
629#
630# RuntimeLnxHostR3 Linux host program runtime
631#
632RuntimeLnxHostR3_TEMPLATE = VBOXLNXHOSTR3LIB
633RuntimeLnxHostR3_DEFS = IN_RT_R3 IN_SUP_R3 RT_WITH_VBOX RT_NO_GIP
634RuntimeLnxHostR3_SOURCES = \
635 $(RuntimeR3_SOURCES.linux.$(BUILD_TARGET_ARCH)) \
636 $(RuntimeR3_SOURCES.linux) \
637 $(RuntimeR3_SOURCES)
638RuntimeLnxHostR3_INCS = \
639 $(RuntimeR3_INCS.linux.$(BUILD_TARGET_ARCH)) \
640 $(RuntimeR3_INCS.linux) \
641 $(RuntimeR3_INCS)
642
643
644#
645# VBoxRT - Shared Object / DLL version.
646#
647VBoxRT_TEMPLATE = VBOXR3
648VBoxRT_SDKS.win = WINPSDK W2K3DDK VBOX_NTDLL
649ifeq ($(BUILD_TARGET),darwin)
650VBoxRT_INST = $(INST_DLL) $(INST_TESTCASE)
651endif
652VBoxRT_DEFS = $(RuntimeR3_DEFS) IN_SUP_R3 IN_SUP_R3
653VBoxRT_DEFS.$(BUILD_TYPE) = $(RuntimeR3_DEFS.$(BUILD_TYPE))
654VBoxRT_SOURCES = \
655 VBox/VBoxRTDeps.cpp \
656 $(RuntimeR3_SOURCES)
657VBoxRT_SOURCES.$(BUILD_TARGET) = $(RuntimeR3_SOURCES.$(BUILD_TARGET))
658VBoxRT_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
659VBoxRT_SOURCES.win += r3/win/dllmain-win.cpp
660VBoxRT_SOURCES.win.x86 += r3/win/VBoxRT-win32.def
661VBoxRT_SOURCES.win.amd64 += r3/win/VBoxRT-win64.def
662VBoxRT_INCS = $(RuntimeR3_INCS)
663VBoxRT_INCS.$(BUILD_TARGET) = $(RuntimeR3_INCS.$(BUILD_TARGET))
664VBoxRT_INCS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
665VBoxRT_LIBS = \
666 $(PATH_LIB)/SUPR3$(VBOX_SUFF_LIB) \
667 $(PATH_LIB)/VBox-liblzf$(VBOX_SUFF_LIB)
668ifdef IPRT_WITH_KSTUFF
669 VBoxRT_LIBS += \
670 $(PATH_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
671endif
672VBoxRT_LIBS.darwin = \
673 iconv
674VBoxRT_LIBS.freebsd = \
675 iconv
676VBoxRT_LIBPATH.freebsd = \
677 /usr/local/lib
678VBoxRT_LDFLAGS.darwin = -framework IOKit -install_name @executable_path/VBoxRT.dylib
679ifdef VBOX_USE_VCC80
680VBoxRT_LDFLAGS.win = /MANIFEST
681endif
682VBoxRT_LDFLAGS.l4 = \
683 -Wl,-whole-archive \
684 $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB) \
685 -Wl,-no-whole-archive
686ifeq ($(BUILD_TARGET),l4)
687VBoxRT_LIBS += \
688 $(L4_LIBDIR)/libl4sys.a \
689 $(L4_LIBDIR)/libl4sys.p.a
690endif
691VBoxRT_LIBS.l4 = \
692 $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB)
693
694
695#
696# RuntimeR3NoCRTGCC - CRT replacement lib for VBoxREM.
697# This is used together with VBoxRT.
698#
699RuntimeR3NoCRTGCC_TEMPLATE = VBOXNOCRTGCC
700RuntimeR3NoCRTGCC_LIBSUFF = $(VBOX_SUFF_LIB)
701RuntimeR3NoCRTGCC_SOURCES = \
702 common/misc/sanity-cpp.cpp \
703 common/misc/sanity-c.c \
704 \
705 common/math/ceill.asm \
706 common/math/cosl.asm \
707 common/math/fabs.asm \
708 common/math/fabsf.asm \
709 common/math/fabsl.asm \
710 common/math/floor.asm \
711 common/math/floorf.asm \
712 common/math/floorl.asm \
713 common/math/ldexpl.asm \
714 common/math/llrint.asm \
715 common/math/llrintf.asm \
716 common/math/llrintl.asm \
717 common/math/logl.asm \
718 common/math/lrint.asm \
719 common/math/lrintf.asm \
720 common/math/lrintl.asm \
721 common/math/remainder.asm \
722 common/math/remainderf.asm \
723 common/math/remainderl.asm \
724 common/math/sinl.asm \
725 common/math/tanl.asm \
726 common/math/trunc.asm \
727 common/math/truncf.asm \
728 common/math/truncl.asm \
729 \
730 common/misc/setjmp.asm \
731 \
732 common/string/memchr.asm \
733 common/string/memchr_alias.c \
734 common/string/memcmp.asm \
735 common/string/memcmp_alias.c \
736 common/string/memcpy.asm \
737 common/string/memcpy_alias.c \
738 common/string/mempcpy.asm \
739 common/string/memmove.asm \
740 common/string/memmove_alias.c \
741 common/string/memset.asm \
742 common/string/memset_alias.c \
743 common/string/strchr.asm \
744 common/string/strchr_alias.c \
745 common/string/strcmp.asm \
746 common/string/strcmp_alias.c
747
748RuntimeR3NoCRTGCC_SOURCES.x86 = \
749 common/math/x86/fenv-x86.c \
750 common/math/gcc/adddi3.c \
751 common/math/gcc/anddi3.c \
752 common/math/gcc/ashldi3.c \
753 common/math/gcc/ashrdi3.c \
754 common/math/gcc/cmpdi2.c \
755 common/math/gcc/divdi3.c \
756 common/math/gcc/iordi3.c \
757 common/math/gcc/lshldi3.c \
758 common/math/gcc/lshrdi3.c \
759 common/math/gcc/moddi3.c \
760 common/math/gcc/muldi3.c \
761 common/math/gcc/negdi2.c \
762 common/math/gcc/notdi2.c \
763 common/math/gcc/qdivrem.c \
764 common/math/gcc/subdi3.c \
765 common/math/gcc/ucmpdi2.c \
766 common/math/gcc/udivdi3.c \
767 common/math/gcc/umoddi3.c \
768 common/math/gcc/xordi3.c
769
770
771## @todo stop using the old memcpy.c and memset.c code.
772
773#
774# RuntimeR0 - Ring0 library for VMMR0.
775#
776RuntimeR0_TEMPLATE = VBOXR0
777RuntimeR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
778RuntimeR0_SOURCES = \
779 common/log/logcom.cpp \
780 common/log/logformat.cpp \
781 common/misc/assert.cpp \
782 common/misc/sanity-c.c \
783 common/misc/sanity-cpp.cpp \
784 common/string/memchr.cpp \
785 common/string/memcmp.cpp \
786 common/string/memcpy.cpp \
787 common/string/memmove.asm \
788 common/string/memset.cpp \
789 common/string/strcmp.asm \
790 common/string/strcpy.cpp \
791 common/string/strformat.cpp \
792 common/string/strformatrt.cpp \
793 common/string/strformattype.cpp \
794 common/string/strlen.cpp \
795 common/string/strncmp.cpp \
796 common/string/strpbrk.cpp \
797 common/string/strprintf.cpp \
798 common/table/avlgcptr.cpp \
799 common/table/avlhcphys.cpp \
800 common/table/avllu32.cpp \
801 common/table/avlogcphys.cpp \
802 common/table/avlogcptr.cpp \
803 common/table/avlohcphys.cpp \
804 common/table/avloioport.cpp \
805 common/table/avlpv.cpp \
806 common/table/avlrogcphys.cpp \
807 common/table/avlrogcptr.cpp \
808 common/table/avlroioport.cpp \
809 common/table/avlroogcptr.cpp \
810 common/table/avlu32.cpp \
811 common/time/timesup.cpp \
812 generic/RTAssertDoBreakpoint-generic.cpp \
813 VBox/strformat-vbox.cpp
814
815#if1of ($(BUILD_TARGET_ARCH),amd64 x86)
816# RuntimeR0_SOURCES += common/time/timesupA.asm
817#else
818 RuntimeR0_SOURCES += common/time/timesupref.cpp
819#endif
820
821RuntimeR0_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
822RuntimeR0_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
823
824RuntimeR0_SOURCES.os2 = \
825 os2/RTErrConvertFromOS2.cpp \
826 os2/sys0.asm
827
828ifeq ($(filter-out darwin solaris freebsd,$(BUILD_TARGET)),)
829RuntimeR0_SOURCES += \
830 common/math/gcc/adddi3.c \
831 common/math/gcc/anddi3.c \
832 common/math/gcc/ashldi3.c \
833 common/math/gcc/ashrdi3.c \
834 common/math/gcc/cmpdi2.c \
835 common/math/gcc/divdi3.c \
836 common/math/gcc/iordi3.c \
837 common/math/gcc/lshldi3.c \
838 common/math/gcc/lshrdi3.c \
839 common/math/gcc/moddi3.c \
840 common/math/gcc/muldi3.c \
841 common/math/gcc/negdi2.c \
842 common/math/gcc/notdi2.c \
843 common/math/gcc/qdivrem.c \
844 common/math/gcc/subdi3.c \
845 common/math/gcc/ucmpdi2.c \
846 common/math/gcc/udivdi3.c \
847 common/math/gcc/umoddi3.c \
848 common/math/gcc/xordi3.c
849endif
850
851
852common/string/memchr.cpp_CXXFLAGS.win = -Oi-
853common/string/memcmp.cpp_CXXFLAGS.win = -Oi-
854common/string/memcpy.cpp_CXXFLAGS.win = -Oi-
855common/string/memset.cpp_CXXFLAGS.win = -Oi-
856common/string/strcpy.cpp_CXXFLAGS.win = -Oi-
857common/string/strlen.cpp_CXXFLAGS.win = -Oi-
858
859ifeq ($(BUILD_TARGET),l4)
860RuntimeR0Drv_BLD_TRG = linux
861RuntimeR0Drv_BLD_TRG_ARCH = x86
862RuntimeR0Drv_BLD_TRG_CPU = i386
863endif
864
865#
866# RuntimeR0Drv - Ring0 library for host drivers.
867#
868RuntimeR0Drv_TEMPLATE = VBOXR0DRV
869RuntimeR0Drv_SDKS.win = W2K3DDK WINPSDKINCS
870RuntimeR0Drv_INCS := $(PATH_SUB_CURRENT)
871RuntimeR0Drv_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
872RuntimeR0Drv_DEFS.win = IN_SUP_R0
873RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 # why is IN_SUP_R0 here? because!
874
875RuntimeR0Drv_INCS.linux = \
876 r0drv/linux
877
878RuntimeR0Drv_SOURCES = \
879 common/checksum/crc32.cpp \
880 common/checksum/crc64.cpp \
881 common/log/log.cpp \
882 common/log/logcom.cpp \
883 common/log/logformat.cpp \
884 common/misc/assert.cpp \
885 common/misc/sanity-c.c \
886 common/misc/sanity-cpp.cpp \
887 common/string/strformat.cpp \
888 common/string/strformatrt.cpp \
889 common/string/strformattype.cpp \
890 common/string/strprintf.cpp \
891 common/string/strtonum.cpp \
892 common/table/avlpv.cpp \
893 generic/RTLogWriteStdErr-stub-generic.cpp \
894 generic/RTLogWriteStdOut-stub-generic.cpp \
895 generic/RTLogWriteUser-generic.cpp \
896 r0drv/alloc-r0drv.cpp \
897 r0drv/initterm-r0drv.cpp \
898 VBox/log-vbox.cpp \
899 VBox/strformat-vbox.cpp
900
901RuntimeR0Drv_SOURCES.linux = \
902 common/alloc/heapsimple.cpp \
903 common/string/strpbrk.cpp \
904 common/err/RTErrConvertToErrno.cpp \
905 generic/RTAssertDoBreakpoint-generic.cpp \
906 r0drv/linux/alloc-r0drv-linux.c \
907 r0drv/linux/initterm-r0drv-linux.c \
908 r0drv/linux/memobj-r0drv-linux.c \
909 r0drv/linux/mp-r0drv-linux.c \
910 r0drv/linux/process-r0drv-linux.c \
911 r0drv/linux/RTLogWriteDebugger-r0drv-linux.c \
912 r0drv/linux/semevent-r0drv-linux.c \
913 r0drv/linux/semeventmulti-r0drv-linux.c \
914 r0drv/linux/semfastmutex-r0drv-linux.c \
915 r0drv/linux/spinlock-r0drv-linux.c \
916 r0drv/linux/thread-r0drv-linux.c \
917 r0drv/memobj-r0drv.cpp
918## @todo thread2-r0drv-linux.c, timer-r0drv-linux.c and assert-r0drv-linux.c
919
920RuntimeR0Drv_SOURCES.win = \
921 common/misc/thread.cpp \
922 common/string/memcmp.cpp \
923 common/string/strncmp.cpp \
924 common/string/strpbrk.cpp \
925 generic/RTAssertDoBreakpoint-generic.cpp \
926 r0drv/nt/mp-r0drv-nt.cpp \
927 nt/RTErrConvertFromNtStatus.cpp \
928 r0drv/memobj-r0drv.cpp \
929 r0drv/nt/alloc-r0drv-nt.cpp \
930 r0drv/nt/initterm-r0drv-nt.cpp \
931 r0drv/nt/memobj-r0drv-nt.cpp \
932 r0drv/nt/process-r0drv-nt.cpp \
933 r0drv/nt/RTLogWriteDebugger-r0drv-nt.cpp \
934 r0drv/nt/semevent-r0drv-nt.cpp \
935 r0drv/nt/semeventmulti-r0drv-nt.cpp \
936 r0drv/nt/semfastmutex-r0drv-nt.cpp \
937 r0drv/nt/semmutex-r0drv-nt.cpp \
938 r0drv/nt/spinlock-r0drv-nt.cpp \
939 r0drv/nt/thread-r0drv-nt.cpp \
940 r0drv/nt/thread2-r0drv-nt.cpp \
941 r0drv/nt/time-r0drv-nt.cpp
942## @todo timer-r0drv-nt.cpp and assert-r0drv-nt.cpp
943
944RuntimeR0Drv_SOURCES.win.amd64 = $(RuntimeWin64ASM_SOURCES)
945RuntimeR0Drv_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
946
947RuntimeR0Drv_SOURCES.darwin = \
948 common/err/RTErrConvertFromErrno.cpp \
949 common/misc/thread.cpp \
950 common/string/memchr.asm \
951 common/string/strpbrk.cpp \
952 darwin/RTErrConvertFromDarwin.cpp \
953 darwin/RTErrConvertFromDarwinIO.cpp \
954 darwin/RTErrConvertFromDarwinKern.cpp \
955 generic/RTAssertDoBreakpoint-generic.cpp \
956 generic/RTMpCpuId-generic.cpp \
957 generic/RTMpCpuIdFromSetIndex-generic.cpp \
958 generic/RTMpCpuIdToSetIndex-generic.cpp \
959 generic/RTMpDoesCpuExist-generic.cpp \
960 generic/RTMpGetCount-generic.cpp \
961 generic/RTMpGetMaxCpuId-generic.cpp \
962 generic/RTMpGetOnlineCount-generic.cpp \
963 generic/RTMpGetOnlineSet-generic.cpp \
964 generic/RTMpGetSet-generic.cpp \
965 generic/RTMpIsCpuOnline-generic.cpp \
966 generic/RTTimerCreate-generic.cpp \
967 generic/timer-generic.cpp \
968 r0drv/generic/RTMpOn-r0drv-generic.cpp \
969 r0drv/darwin/alloc-r0drv-darwin.cpp \
970 r0drv/darwin/assert-r0drv-darwin.cpp \
971 r0drv/darwin/initterm-r0drv-darwin.cpp \
972 r0drv/darwin/memobj-r0drv-darwin.cpp \
973 r0drv/darwin/process-r0drv-darwin.cpp \
974 r0drv/darwin/RTLogWriteDebugger-r0drv-darwin.cpp \
975 r0drv/darwin/semaphore-r0drv-darwin.cpp \
976 r0drv/darwin/spinlock-r0drv-darwin.cpp \
977 r0drv/darwin/thread-r0drv-darwin.cpp \
978 r0drv/darwin/thread2-r0drv-darwin.cpp \
979 r0drv/darwin/time-r0drv-darwin.cpp \
980 r0drv/memobj-r0drv.cpp
981
982RuntimeR0Drv_SOURCES.os2 = \
983 common/string/memchr.asm \
984 common/string/memcmp.asm \
985 common/string/memcpy.asm \
986 common/string/mempcpy.asm \
987 common/string/memmove.asm \
988 common/string/memset.asm \
989 common/string/strchr.asm \
990 common/string/strcmp.asm \
991 \
992 common/string/strcpy.cpp \
993 common/string/strlen.cpp \
994 common/string/strncmp.cpp \
995 common/string/strpbrk.cpp \
996 \
997 common/misc/thread.cpp \
998 generic/RTLogWriteDebugger-generic.cpp \
999 generic/RTMpCpuId-generic.cpp \
1000 generic/RTMpCpuIdFromSetIndex-generic.cpp \
1001 generic/RTMpCpuIdToSetIndex-generic.cpp \
1002 generic/RTMpDoesCpuExist-generic.cpp \
1003 generic/RTMpGetCount-generic.cpp \
1004 generic/RTMpGetMaxCpuId-generic.cpp \
1005 generic/RTMpGetOnlineCount-generic.cpp \
1006 generic/RTMpGetOnlineSet-generic.cpp \
1007 generic/RTMpGetSet-generic.cpp \
1008 generic/RTMpIsCpuOnline-generic.cpp \
1009 generic/RTTimerCreate-generic.cpp \
1010 os2/RTErrConvertFromOS2.cpp \
1011 os2/sys0.asm \
1012 r0drv/memobj-r0drv.cpp \
1013 r0drv/generic/RTMpOn-r0drv-generic.cpp \
1014 r0drv/os2/alloc-r0drv-os2.cpp \
1015 r0drv/os2/assert-r0drv-os2.cpp \
1016 r0drv/os2/assertA-r0drv-os2.asm \
1017 r0drv/os2/initterm-r0drv-os2.cpp \
1018 r0drv/os2/memobj-r0drv-os2.cpp \
1019 r0drv/os2/os2imports.imp \
1020 r0drv/os2/process-r0drv-os2.cpp \
1021 r0drv/os2/RTAssertDoBreakpoint-r0drv-os2.asm \
1022 r0drv/os2/RTR0Os2DHQueryDOSVar.asm \
1023 r0drv/os2/RTR0Os2DHVMGlobalToProcess.asm \
1024 r0drv/os2/semevent-r0drv-os2.cpp \
1025 r0drv/os2/semeventmulti-r0drv-os2.cpp \
1026 r0drv/os2/semfastmutex-r0drv-os2.cpp \
1027 r0drv/os2/spinlock-r0drv-os2.cpp \
1028 r0drv/os2/thread-r0drv-os2.cpp \
1029 r0drv/os2/thread2-r0drv-os2.cpp \
1030 r0drv/os2/time-r0drv-os2.cpp \
1031 r0drv/os2/timer-r0drv-os2.cpp \
1032 r0drv/os2/timerA-r0drv-os2.asm
1033
1034RuntimeR0Drv_SOURCES.freebsd = \
1035 common/err/RTErrConvertFromErrno.cpp \
1036 common/err/RTErrConvertToErrno.cpp \
1037 common/misc/thread.cpp \
1038 common/string/memchr.asm \
1039 common/string/memmove.asm \
1040 common/string/strpbrk.cpp \
1041 common/string/memcmp.asm \
1042 common/string/strchr.asm \
1043 generic/RTAssertDoBreakpoint-generic.cpp \
1044 generic/RTLogWriteDebugger-generic.cpp \
1045 generic/RTMpCpuId-generic.cpp \
1046 generic/RTMpCpuIdFromSetIndex-generic.cpp \
1047 generic/RTMpCpuIdToSetIndex-generic.cpp \
1048 generic/RTMpDoesCpuExist-generic.cpp \
1049 generic/RTMpGetCount-generic.cpp \
1050 generic/RTMpGetMaxCpuId-generic.cpp \
1051 generic/RTMpGetOnlineCount-generic.cpp \
1052 generic/RTMpGetOnlineSet-generic.cpp \
1053 generic/RTMpGetSet-generic.cpp \
1054 generic/RTMpIsCpuOnline-generic.cpp \
1055 generic/RTTimerCreate-generic.cpp \
1056 r0drv/generic/RTMpOn-r0drv-generic.cpp \
1057 r0drv/freebsd/alloc-r0drv-freebsd.c \
1058 r0drv/freebsd/assert-r0drv-freebsd.c \
1059 r0drv/freebsd/initterm-r0drv-freebsd.c \
1060 r0drv/freebsd/memobj-r0drv-freebsd.c \
1061 r0drv/freebsd/process-r0drv-freebsd.c \
1062 r0drv/freebsd/semevent-r0drv-freebsd.c \
1063 r0drv/freebsd/semeventmulti-r0drv-freebsd.c \
1064 r0drv/freebsd/semfastmutex-r0drv-freebsd.c \
1065 r0drv/freebsd/spinlock-r0drv-freebsd.c \
1066 r0drv/freebsd/thread-r0drv-freebsd.c \
1067 r0drv/freebsd/thread2-r0drv-freebsd.c \
1068 r0drv/freebsd/time-r0drv-freebsd.c \
1069 r0drv/freebsd/timer-r0drv-freebsd.c \
1070 r0drv/memobj-r0drv.cpp
1071
1072RuntimeR0Drv_SOURCES.solaris = \
1073 common/err/RTErrConvertFromErrno.cpp \
1074 common/misc/thread.cpp \
1075 common/string/memchr.asm \
1076 generic/RTAssertDoBreakpoint-generic.cpp \
1077 generic/RTTimerCreate-generic.cpp \
1078 generic/RTMpCpuId-generic.cpp \
1079 generic/RTMpCpuIdFromSetIndex-generic.cpp \
1080 generic/RTMpCpuIdToSetIndex-generic.cpp \
1081 generic/RTMpDoesCpuExist-generic.cpp \
1082 generic/RTMpGetCount-generic.cpp \
1083 generic/RTMpGetMaxCpuId-generic.cpp \
1084 generic/RTMpGetOnlineCount-generic.cpp \
1085 generic/RTMpGetOnlineSet-generic.cpp \
1086 generic/RTMpGetSet-generic.cpp \
1087 generic/RTMpIsCpuOnline-generic.cpp \
1088 r0drv/generic/RTMpOn-r0drv-generic.cpp \
1089 r0drv/memobj-r0drv.cpp \
1090 r0drv/solaris/alloc-r0drv-solaris.c \
1091 r0drv/solaris/assert-r0drv-solaris.c \
1092 r0drv/solaris/initterm-r0drv-solaris.c \
1093 r0drv/solaris/memobj-r0drv-solaris.c \
1094 r0drv/solaris/process-r0drv-solaris.c \
1095 r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
1096 r0drv/solaris/semevent-r0drv-solaris.c \
1097 r0drv/solaris/semeventmulti-r0drv-solaris.c \
1098 r0drv/solaris/semfastmutex-r0drv-solaris.c \
1099 r0drv/solaris/spinlock-r0drv-solaris.c \
1100 r0drv/solaris/thread-r0drv-solaris.c \
1101 r0drv/solaris/thread2-r0drv-solaris.c \
1102 r0drv/solaris/time-r0drv-solaris.c \
1103 r0drv/solaris/timer-r0drv-solaris.c
1104
1105## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
1106
1107
1108#
1109# RuntimeGuestR0 - Guest driver runtime.
1110# This is almost the same as the RuntimeR0Drv, the main difference
1111# is in the backdoor logging and the lack of sup.h (which should be
1112# made irrelevant even for RuntimeR0Rdrv).
1113#
1114# TODO: RuntimeGuestR0_EXTENDS = RuntimeR0Drv (kBuild)
1115#
1116RuntimeGuestR0_TEMPLATE := VBOXGUESTR0LIB
1117RuntimeGuestR0_SDKS.win := W2K3DDKX86 WINPSDKINCS
1118RuntimeGuestR0_DEFS := $(RuntimeR0Drv_DEFS)
1119RuntimeGuestR0_DEFS.$(BUILD_TARGET) := $(RuntimeR0Drv_DEFS.$(BUILD_TARGET))
1120RuntimeGuestR0_INCS := $(PATH_SUB_CURRENT)
1121RuntimeGuestR0_INCS.$(BUILD_TARGET) := $(RuntimeR0Drv_INCS.$(BUILD_TARGET))
1122RuntimeGuestR0_SOURCES := $(filter-out generic/RTLogWriteUser-generic.cpp, $(RuntimeR0Drv_SOURCES))
1123RuntimeGuestR0_SOURCES += VBox/logbackdoor.cpp
1124RuntimeGuestR0_SOURCES.$(BUILD_TARGET) := $(RuntimeR0Drv_SOURCES.$(BUILD_TARGET))
1125RuntimeGuestR0_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH) := $(RuntimeR0Drv_SOURCES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH))
1126ifdef VBOX_USE_VCC80
1127RuntimeGuestR0_SOURCES.win += \
1128 common/string/memchr.cpp \
1129 common/string/memcpy.cpp \
1130 common/string/memset.cpp \
1131 common/string/memmove.asm \
1132 common/string/strlen.cpp
1133endif
1134RuntimeGuestR0_SOURCES.freebsd += \
1135 common/string/memset.cpp \
1136 common/string/memcmp.cpp \
1137 common/string/strchr.asm
1138
1139RuntimeOS2GuestR0_TEMPLATE = VBOXOS2GUESTR0LIB
1140RuntimeOS2GuestR0_SOURCES = \
1141 $(filter-out common/misc/assert.cpp generic/RTLogWriteUser-generic.cpp,$(RuntimeR0Drv_SOURCES)) \
1142 $(RuntimeR0Drv_SOURCES.os2) \
1143 VBox/logbackdoor.cpp
1144
1145#
1146# RuntimeW32GuestR0 - Win32 guest driver runtime.
1147#
1148RuntimeW32GuestR0_TEMPLATE = VBOXW32GUESTR0LIB
1149RuntimeW32GuestR0_SDKS = W2K3DDKX86 WINPSDKINCS
1150RuntimeW32GuestR0_INCS := $(PATH_SUB_CURRENT)
1151RuntimeW32GuestR0_DEFS = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS IN_SUP_R0
1152RuntimeW32GuestR0_DEFS.$(BUILD_TARGET) =
1153RuntimeW32GuestR0_SOURCES = \
1154 $(filter-out generic/RTLogWriteUser-generic.cpp,$(RuntimeR0Drv_SOURCES)) \
1155 $(RuntimeR0Drv_SOURCES.win) \
1156 VBox/logbackdoor.cpp
1157ifdef VBOX_USE_VCC80
1158## @todo use the .asm versions of these.
1159RuntimeW32GuestR0_SOURCES += \
1160 common/string/memchr.cpp \
1161 common/string/memcpy.cpp \
1162 common/string/memset.cpp \
1163 common/string/memmove.asm \
1164 common/string/strlen.cpp
1165endif
1166
1167
1168#
1169# RuntimeW32NT4GuestR0 - Win32 NT4 guest driver runtime.
1170#
1171RuntimeW32NT4GuestR0_EXTENDS = RuntimeW32GuestR0
1172RuntimeW32NT4GuestR0_EXTENDS_BY = appending
1173RuntimeW32NT4GuestR0_DEFS = IPRT_TARGET_NT4
1174
1175
1176#
1177# RuntimeGC - Guest context library.
1178#
1179RuntimeGC_TEMPLATE = VBOXGC
1180RuntimeGC_DEFS = IN_RT_GC RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
1181RuntimeGC_SOURCES = \
1182 common/log/log.cpp \
1183 common/log/logcom.cpp \
1184 common/log/logformat.cpp \
1185 common/misc/assert.cpp \
1186 common/misc/sanity-c.c \
1187 common/misc/sanity-cpp.cpp \
1188 common/string/memchr.cpp \
1189 common/string/memcmp.cpp \
1190 common/string/memcpy.cpp \
1191 common/string/memset.cpp \
1192 common/string/memmove.asm \
1193 common/string/strcpy.cpp \
1194 common/string/strformat.cpp \
1195 common/string/strformatrt.cpp \
1196 common/string/strformattype.cpp \
1197 common/string/strlen.cpp \
1198 common/string/strncmp.cpp \
1199 common/string/strpbrk.cpp \
1200 common/string/strprintf.cpp \
1201 common/table/avllu32.cpp \
1202 common/table/avlogcphys.cpp \
1203 common/table/avlogcptr.cpp \
1204 common/table/avlohcphys.cpp \
1205 common/table/avloioport.cpp \
1206 common/table/avlrogcphys.cpp \
1207 common/table/avlrogcptr.cpp \
1208 common/table/avlroioport.cpp \
1209 common/table/avlroogcptr.cpp \
1210 common/table/avlu32.cpp \
1211 common/time/timeprog.cpp \
1212 common/time/timesup.cpp \
1213 gc/initterm-gc.cpp \
1214 generic/RTAssertDoBreakpoint-generic.cpp \
1215 VBox/strformat-vbox.cpp \
1216
1217#if1of ($(BUILD_TARGET_ARCH),amd64 x86)
1218# RuntimeGC_SOURCES += common/time/timesupA.asm
1219#else
1220 RuntimeGC_SOURCES += common/time/timesupref.cpp
1221#endif
1222
1223RuntimeGC_SOURCES.win.x86 = $(RuntimeWin32ASM_SOURCES)
1224
1225ifeq ($(VBOX_LDR_FMT32),lx)
1226 RuntimeGC_SOURCES += os2/sys0.asm
1227endif
1228
1229ifeq ($(filter-out darwin solaris freebsd,$(BUILD_TARGET)),)
1230RuntimeGC_SOURCES += \
1231 common/math/gcc/adddi3.c \
1232 common/math/gcc/anddi3.c \
1233 common/math/gcc/ashldi3.c \
1234 common/math/gcc/ashrdi3.c \
1235 common/math/gcc/cmpdi2.c \
1236 common/math/gcc/divdi3.c \
1237 common/math/gcc/iordi3.c \
1238 common/math/gcc/lshldi3.c \
1239 common/math/gcc/lshrdi3.c \
1240 common/math/gcc/moddi3.c \
1241 common/math/gcc/muldi3.c \
1242 common/math/gcc/negdi2.c \
1243 common/math/gcc/notdi2.c \
1244 common/math/gcc/qdivrem.c \
1245 common/math/gcc/subdi3.c \
1246 common/math/gcc/ucmpdi2.c \
1247 common/math/gcc/udivdi3.c \
1248 common/math/gcc/umoddi3.c \
1249 common/math/gcc/xordi3.c
1250endif
1251
1252
1253#
1254# Static library for new & delete for the electric fence.
1255#
1256RuntimeEFCPP_TEMPLATE = $(RuntimeR3_TEMPLATE)
1257RuntimeEFCPP_SDKS = $(RuntimeR3_SDKS)
1258RuntimeEFCPP_SDKS.$(BUILD_TARGET) = $(RuntimeR3_SDKS.$(BUILD_TARGET))
1259RuntimeEFCPP_DEFS = $(RuntimeR3_DEFS)
1260RuntimeEFCPP_DEFS.$(BUILD_TARGET) = $(RuntimeR3_DEFS.$(BUILD_TARGET))
1261RuntimeEFCPP_INCS = $(RuntimeR3_INCS)
1262RuntimeEFCPP_INCS.$(BUILD_TARGET) = $(RuntimeR3_INCS.$(BUILD_TARGET))
1263RuntimeEFCPP_SOURCES = r3/alloc-ef-cpp.cpp
1264
1265
1266
1267#
1268# errmsg.cpp depends on a generated header.
1269#
1270common/err/errmsg.cpp_DEPS = $(PATH_TARGET)/errmsgdata.h
1271common/err/errmsg.cpp_INCS = $(PATH_TARGET)
1272
1273win/errmsgwin.cpp_DEPS = $(PATH_TARGET)/errmsgcomdata.h
1274win/errmsgwin.cpp_INCS = $(PATH_TARGET)
1275
1276
1277# Generate the rules
1278include $(PATH_KBUILD)/footer.kmk
1279
1280
1281ifneq ($(wildcard /usr/bin/chcon),)
1282# this is needed for testcases executed at build time
1283## @todo Make a special installer tool that does this.
1284$(PATH_BIN)/VBoxRT.so:
1285 $(INSTALL) $(TARGET_VBoxRT) $@
1286 chcon -t texrel_shlib_t $@ || true
1287endif
1288
1289
1290#
1291# Generate the status code data.
1292#
1293$(PATH_TARGET)/errmsgdata.h: common/err/errmsg.sed $(DEPTH)/include/iprt/err.h $(DEPTH)/include/VBox/err.h
1294 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
1295 $(QUIET)$(MKDIR) -p $(PATH_TARGET)
1296 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
1297
1298## @todo r=bird: rename this to indicate that it's not only COM errors, but all win32/64 errors.
1299$(PATH_TARGET)/errmsgcomdata.h: common/err/errmsgcom.sed $(PATH_SDK_WINPSDK_INC)/WinError.h
1300 $(call MSG_GENERATE,,$@,$(filter %.h,$^))
1301 $(QUIET)$(MKDIR) -p $(PATH_TARGET)
1302 $(QUIET)$(REDIRECT) -wo $@ -- $(SED) -f $< $(filter %.h,$^)
1303
1304
1305#
1306# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
1307#
1308ldrELFRelocatable.cpp.o: ldrELF.o
1309ldrELFRelocatable.cpp.obj: ldrELF.obj
1310
1311
1312#
1313# Doxygen documentation.
1314#
1315DOXYGEN_INPUT_DIRS = \
1316 $(PATH_ROOT)/include/iprt \
1317 $(PATH_ROOT)/include/iprt/nocrt \
1318 $(PATH_ROOT)/include/iprt/nocrt/x86 \
1319 $(PATH_ROOT)/include/iprt/nocrt/amd64 \
1320 include/internal \
1321 common/alloc \
1322 common/checksum \
1323 common/err \
1324 common/ldr \
1325 common/log \
1326 common/misc \
1327 common/string \
1328 common/table \
1329 common/time \
1330 VBox/ \
1331 $(foreach dir, . r3 r0drv,\
1332 $(dir) \
1333 $(dir)/darwin \
1334 $(dir)/l4 \
1335 $(dir)/linux \
1336 $(dir)/nt \
1337 $(dir)/os2 \
1338 $(dir)/win \
1339 $(dir)/win32 \
1340 $(dir)/win64 \
1341 $(dir)/generic \
1342 )
1343
1344# These must come first in order to make things look nice.
1345DOXYGEN_INPUT_FIRST =\
1346 $(PATH_ROOT)/include/iprt/cdefs.h \
1347 $(PATH_ROOT)/include/iprt/types.h \
1348 $(PATH_ROOT)/include/iprt/runtime.h \
1349 $(PATH_ROOT)/include/iprt/param.h \
1350 $(PATH_ROOT)/include/iprt/assert.h \
1351 $(PATH_ROOT)/include/iprt/asm.h \
1352
1353DOXYGEN_INPUT := \
1354 $(filter-out %.cpp.h, $(sort $(wildcard $(addsuffix /*.h, $(DOXYGEN_INPUT_DIRS)))) ) \
1355 $(foreach dir, $(DOXYGEN_INPUT_DIRS), $(wildcard $(dir)/*.cpp $(dir)/.c $(dir)/.asm))
1356DOXYGEN_INPUT := \
1357 $(DOXYGEN_INPUT_FIRST) \
1358 $(filter-out $(DOXYGEN_INPUT_FIRST), $(DOXYGEN_INPUT))
1359
1360
1361DOXYGEN_OUTPUT = $(PATH_OUT)/docs/iprt
1362
1363-include $(PATH_TARGET)/Doxyfile.dep
1364
1365# Generate the Doxyfile
1366$(PATH_TARGET)/Doxyfile: Doxyfile Makefile.kmk \
1367 $(comp-vars DOXYGEN_INPUT,DOXYGEN_INPUT_PREV,FORCE) \
1368 $(comp-vars DOXYGEN_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE) \
1369 | $(call DIRDEP, $(PATH_TARGET))
1370 $(RM) -f $@ [email protected] $(PATH_TARGET)/Doxyfile.dep
1371 $(CP) -f Doxyfile [email protected]
1372 $(APPEND) [email protected]
1373 $(APPEND) [email protected] "OUTPUT_DIRECTORY = $(DOXYGEN_OUTPUT)"
1374 $(APPEND) [email protected] "WARN_LOGFILE = $(DOXYGEN_OUTPUT)/errors"
1375 $(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include include . common/table"
1376 $(APPEND) [email protected] "INCLUDE_FILE_PATTERNS = *.cpp.h"
1377 $(APPEND) [email protected] "PREDEFINED += $(ARCH_BITS_DEFS)"
1378 $(APPEND) [email protected]
1379 $(APPEND) [email protected] "INPUT = $(DOXYGEN_INPUT)"
1380 $(APPEND) [email protected]
1381 $(MV) -f [email protected] $@
1382 @$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_OUTPUT_PREV = $(DOXYGEN_OUTPUT)"
1383 @$(APPEND) $(PATH_TARGET)/Doxyfile.dep "DOXYGEN_INPUT_PREV = $(DOXYGEN_INPUT)"
1384
1385# Create the output directory.
1386$(call DIRDEP, $(DOXYGEN_OUTPUT)):
1387 $(MKDIR) -p $@
1388
1389# Do the actual job.
1390$(PATH_TARGET)/docs.iprt: $(PATH_TARGET)/Doxyfile $(DOXYGEN_INPUT) | $(call DIRDEP, $(DOXYGEN_OUTPUT))
1391 $(RM) -f $(wildcard $(DOXYGEN_OUTPUT)/html/*) $(PATH_TARGET)/docs.iprt
1392 doxygen $(PATH_TARGET)/Doxyfile
1393 $(APPEND) $(PATH_TARGET)/docs.iprt
1394
1395# alias
1396docs: $(PATH_TARGET)/docs.iprt
1397
1398test:
1399 @echo test-$(comp-vars DOXYGEN_OUTPUT,DOXYGEN_OUTPUT_PREV,FORCE)
1400 @echo $(DOXYGEN_OUTPUT)
1401 @echo $(DOXYGEN_OUTPUT_PREV)
1402 @echo $(DOXYGEN_INPUT)
1403
Note: See TracBrowser for help on using the repository browser.

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