VirtualBox

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

Last change on this file since 10690 was 10614, checked in by vboxsync, 16 years ago

Enable posix timers by default by all users of the code (requirement of VBoxSVC now). Enabled VBOX_WITH_RESOURECE_USAGE_API everywhere as it turned out Darwin is using the generic timers and not the posix ones as initially thought.

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