~ubuntu-branches/ubuntu/raring/virtualbox-ose/raring

« back to all changes in this revision

Viewing changes to src/VBox/Runtime/Makefile.kmk

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2009-12-18 16:44:29 UTC
  • mfrom: (0.3.3 upstream) (0.4.6 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091218164429-jd34ccexpv5na11a
Tags: 3.1.2-dfsg-1ubuntu1
* Merge from Debian unstable (LP: #498219), remaining changes:
  - Disable update action
    - debian/patches/u01-disable-update-action.dpatch
  - VirtualBox should go in Accessories, not in System tools (LP: #288590)
    - debian/virtualbox-ose-qt.files/virtualbox-ose.desktop
  - Add Apport hook
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Add Launchpad integration
    - debian/control
    - debian/lpi-bug.xpm
    - debian/patches/u02-lp-integration.dpatch
* Fixes the following bugs:
  - Kernel module fails to build with Linux >= 2.6.32 (LP: #474625)
  - X.Org drivers need to be rebuilt against X-Server 1.7 (LP: #495935)
  - The *-source packages try to build the kernel modules even though the
    kernel headers aren't available (LP: #473334)
* Replace *-source packages with transitional packages for *-dkms.
* Adapt u01-disable-update-action.dpatch and u02-lp-integration.dpatch for
  new upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 #
36
36
 # Only build the additions, sort out the legacy names first.
37
37
 #
38
 
 LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
39
 
 #LIBRARIES.os2 = RuntimeGuestR0OS2Warp3
 
38
 LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
 
39
 ifdef VBOX_WITH_ADDITION_DRIVERS
 
40
  LIBRARIES += RuntimeGuestR0
 
41
 endif
 
42
 #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
40
43
 LIBRARIES.win.x86 += RuntimeGuestR0NT4
41
 
 ifndef VBOX_WITH_ADDITION_DRIVERS
42
 
  if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
43
 
   LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
44
 
  endif
45
 
 endif
46
44
 
47
45
else ifdef VBOX_ONLY_DOCS
48
46
 #
51
49
 LIBRARIES += RuntimeR3
52
50
 DLLS += VBoxRT
53
51
 
54
 
 # Temporary(?) hack.
55
 
 VBOX_WITH_LIBXML2_IN_VBOXRT=
56
 
 
57
52
else # !VBOX_ONLY_ADDITIONS && !VBOX_ONLY_DOCS
58
53
 
59
54
 #
67
62
  LIBRARIES += RuntimeR0Drv
68
63
 endif
69
64
 ifdef VBOX_WITH_ADDITIONS
70
 
  LIBRARIES += RuntimeGuestR0 RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
 
65
  LIBRARIES += RuntimeGuestR3 RuntimeGuestR3Shared RuntimeGuestR3Mini
 
66
  ifdef VBOX_WITH_ADDITION_DRIVERS
 
67
   LIBRARIES += RuntimeGuestR0
 
68
  endif
71
69
  #LIBRARIES.os2 += RuntimeGuestR0OS2Warp3
72
70
  LIBRARIES.win.x86 += RuntimeGuestR0NT4
73
 
  ifndef VBOX_WITH_ADDITION_DRIVERS
74
 
   if1of ($(KBUILD_TARGET), linux l4) # All drivers are optional, can skip RuntimeGuestR0.
75
 
    LIBRARIES := $(filter-out RuntimeGuestR0, $(LIBRARIES))
76
 
   endif
77
 
  endif
78
71
 endif # VBOX_WITH_ADDITIONS
79
72
 LIBRARIES.l4 += RuntimeR3L4 RuntimeLnxHostR3
80
73
 DLLS += VBoxRT
99
92
 
100
93
 
101
94
#
 
95
# Set the defines that buildconfig.cpp needs. Its used by several targets.
 
96
#
 
97
common/misc/buildconfig.cpp_DEFS = \
 
98
        IPRT_BLDCFG_SCM_REV=$(VBOX_SVN_REV) \
 
99
        IPRT_BLDCFG_VERSION_STRING=\"$(VBOX_VERSION_STRING)\" \
 
100
        IPRT_BLDCFG_VERSION_MAJOR=$(VBOX_VERSION_MAJOR) \
 
101
        IPRT_BLDCFG_VERSION_MINOR=$(VBOX_VERSION_MINOR) \
 
102
        IPRT_BLDCFG_VERSION_BUILD=$(VBOX_VERSION_BUILD)
 
103
 
 
104
#
102
105
# Unicode Specification reader used to regenerate unidata.cpp.
103
106
#
104
107
uniread_TEMPLATE = VBOXBLDPROG
165
168
# RuntimeR3 - Static Runtime for Ring-3 executables.
166
169
#
167
170
RuntimeR3_TEMPLATE      = VBOXR3STATIC
 
171
RuntimeR3_SDKS          = VBOX_LIBXML2 VBOX_BOOST
168
172
RuntimeR3_SDKS.win      = WINPSDK W2K3DDK
169
173
RuntimeR3_DEFS          = IN_RT_R3 IN_SUP_R3 LDR_WITH_NATIVE LDR_WITH_ELF32 LDR_WITH_PE RT_WITH_VBOX RT_NO_GIP
170
174
ifdef IPRT_WITH_KSTUFF
173
177
ifdef VBOX_MAIN_RELEASE_LOG ## @todo (dmik): temporary, until RTThreadSelf/RTThreadAdopt are properly updated
174
178
 RuntimeR3_DEFS         += RTCRITSECT_STRICT
175
179
endif
 
180
ifdef IPRT_WITH_LZJB
 
181
 RuntimeR3_DEFS         += RTZIP_USE_LZJB
 
182
endif
 
183
ifdef IPRT_WITH_LZO
 
184
 RuntimeR3_DEFS         += RTZIP_USE_LZO
 
185
endif
176
186
ifdef IPRT_WITH_FUTEX_BASED_SEMS
177
187
 RuntimeR3_DEFS.linux   += IPRT_WITH_FUTEX_BASED_SEMS
178
188
endif
179
189
RuntimeR3_INCS          = \
180
190
        include \
181
191
        $(SDK_VBOX_ZLIB_INCS)
182
 
ifdef VBOX_WITH_NEW_LIBLZF
183
192
RuntimeR3_INCS         += \
184
193
        $(PATH_ROOT)/src/libs/liblzf-3.4
185
 
else
186
 
RuntimeR3_INCS         += \
187
 
        $(PATH_ROOT)/src/libs/liblzf-1.51
188
 
endif
189
194
ifdef IPRT_WITH_KSTUFF
190
195
 RuntimeR3_INCS        += \
191
196
        $(PATH_ROOT)/src/libs/kStuff/kStuff/include
199
204
RuntimeR3_SOURCES       = \
200
205
        common/alloc/alloc.cpp \
201
206
        common/alloc/heapsimple.cpp \
202
 
        common/checksum/crc32.cpp \
 
207
        common/alloc/heapoffset.cpp \
 
208
        common/checksum/adler32.cpp \
 
209
        common/checksum/crc32-zlib.cpp \
203
210
        common/checksum/crc64.cpp \
204
211
        common/checksum/md5.cpp \
 
212
        common/checksum/md5str.cpp \
205
213
        common/checksum/ipv4.cpp \
206
214
        common/dbg/dbg.cpp \
207
215
        common/dbg/dbgas.cpp \
224
232
        common/log/logcom.cpp \
225
233
        common/log/logformat.cpp \
226
234
        common/misc/assert.cpp \
 
235
        common/misc/buildconfig.cpp \
227
236
        common/misc/cache.cpp \
228
237
        common/misc/cidr.cpp \
229
238
        common/misc/getopt.cpp \
230
239
        common/misc/handletable.cpp \
231
240
        common/misc/handletablectx.cpp \
232
241
        common/misc/handletablesimple.cpp \
 
242
        common/misc/message.cpp \
233
243
        common/misc/once.cpp \
234
244
        common/misc/req.cpp \
235
245
        common/misc/sanity-c.c \
238
248
        common/misc/thread.cpp \
239
249
        common/misc/zip.cpp \
240
250
        common/misc/term.cpp \
 
251
        common/misc/tar.cpp \
 
252
        common/path/rtPathVolumeSpecLen.cpp \
 
253
        common/path/RTPathAbsDup.cpp \
 
254
        common/path/RTPathAbsEx.cpp \
 
255
        common/path/RTPathAbsExDup.cpp \
 
256
        common/path/RTPathAppend.cpp \
 
257
        common/path/RTPathExt.cpp \
 
258
        common/path/RTPathFilename.cpp \
 
259
        common/path/RTPathHaveExt.cpp \
 
260
        common/path/RTPathHavePath.cpp \
 
261
        common/path/RTPathParse.cpp \
 
262
        common/path/RTPathRealDup.cpp \
 
263
        common/path/RTPathStripExt.cpp \
 
264
        common/path/RTPathStripFilename.cpp \
 
265
        common/path/RTPathStripTrailingSlash.cpp \
 
266
        common/path/RTPathTraverseList.cpp \
 
267
        common/path/comparepaths.cpp \
241
268
        common/rand/rand.cpp \
242
269
        common/rand/randadv.cpp \
243
270
        common/rand/randparkmiller.cpp \
 
271
        common/string/RTStrConvertHexBytes.cpp \
244
272
        common/string/RTStrNLen.cpp \
245
273
        common/string/RTStrNLenEx.cpp \
 
274
        common/string/RTStrPrintHexBytes.cpp \
246
275
        common/string/base64.cpp \
247
276
        common/string/simplepattern.cpp \
248
277
        common/string/straprintf.cpp \
254
283
        common/string/strspace.cpp \
255
284
        common/string/strstrip.cpp \
256
285
        common/string/strtonum.cpp \
 
286
        common/string/strversion.cpp \
257
287
        common/string/uni.cpp \
258
288
        common/string/unidata.cpp \
259
289
        common/string/utf-16.cpp \
260
290
        common/string/utf-8.cpp \
 
291
        common/string/ministring.cpp \
261
292
        common/table/avlgcptr.cpp \
262
293
        common/table/avlhcphys.cpp \
263
294
        common/table/avllu32.cpp \
273
304
        common/table/avlroioport.cpp \
274
305
        common/table/avlroogcptr.cpp \
275
306
        common/table/avlruintptr.cpp \
 
307
        common/table/avlrfoff.cpp \
276
308
        common/table/avlu32.cpp \
277
309
        common/table/avluintptr.cpp \
278
310
        common/table/avlul.cpp \
284
316
        generic/env-generic.cpp \
285
317
        generic/RTDirCreateTemp-generic.cpp \
286
318
        generic/RTFileCopy-generic.cpp \
 
319
        generic/RTFileQuerySize-generic.cpp \
287
320
        generic/RTFileReadAll-generic.cpp \
288
321
        generic/RTFileReadAllEx-generic.cpp \
289
322
        generic/RTFileReadAllByHandle-generic.cpp \
292
325
        generic/RTLogWriteStdErr-generic.cpp \
293
326
        generic/RTLogWriteStdOut-generic.cpp \
294
327
        generic/RTLogWriteUser-generic.cpp \
 
328
        generic/RTMpGetDescription-generic.cpp \
295
329
        generic/RTTimerLRCreate-generic.cpp \
296
330
        generic/mempool-generic.cpp \
297
331
        generic/semfastmutex-generic.cpp \
309
343
        r3/stream.cpp \
310
344
        r3/test.cpp \
311
345
        r3/testi.cpp \
312
 
        r3/tcp.cpp
 
346
        r3/tcp.cpp \
 
347
        r3/generic/semspinmutex-r3-generic.cpp
313
348
 
314
349
#if1of ($(KBUILD_TARGET_ARCH),amd64 x86)
315
350
# RuntimeR3_SOURCES += common/time/timesupA.asm
317
352
 RuntimeR3_SOURCES += common/time/timesupref.cpp
318
353
#endif
319
354
 
 
355
ifdef IPRT_WITH_LZJB
 
356
 RuntimeR3_SOURCES += common/misc/lzjb.c
 
357
endif
 
358
 
320
359
# Some versions of GCC might require this.
321
360
RuntimeR3_SOURCES.x86 += \
322
361
        common/asm/ASMAtomicCmpXchgU64.asm \
336
375
RuntimeR3_SOURCES += \
337
376
        common/err/errmsgxpcom.cpp
338
377
endif
 
378
if1of ($(KBUILD_TARGET),freebsd linux netbsd openbsd solaris)
 
379
RuntimeR3_SOURCES += \
 
380
        $(if $(VBOX_WITH_DBUS),VBox/dbus.cpp,)
 
381
endif
339
382
 
340
383
RuntimeR3_SOURCES.win = \
 
384
        generic/RTDirExists-generic.cpp \
341
385
        generic/RTDirQueryInfo-generic.cpp \
342
386
        generic/RTDirSetTimes-generic.cpp \
 
387
        generic/RTFileExists-generic.cpp \
343
388
        generic/RTMpGetCurFrequency-generic.cpp \
344
389
        generic/RTMpGetMaxFrequency-generic.cpp \
345
390
        generic/RTRandAdvCreateSystemFaster-generic.cpp \
397
442
        r3/linux/sysfs.cpp \
398
443
        r3/linux/time-linux.cpp \
399
444
        r3/linux/RTProcIsRunningByName-linux.cpp \
 
445
        r3/posix/RTFileQueryFsSizes-posix.cpp \
400
446
        r3/posix/RTSystemQueryOSInfo-posix.cpp \
401
447
        r3/posix/alloc-posix.cpp \
402
448
        r3/posix/dir-posix.cpp \
465
511
        r3/os2/sems-os2.cpp \
466
512
        r3/os2/thread-os2.cpp \
467
513
        r3/os2/time-os2.cpp \
 
514
        r3/posix/RTFileQueryFsSizes-posix.cpp \
468
515
        r3/posix/RTSystemQueryOSInfo-posix.cpp \
469
516
        r3/posix/alloc-posix.cpp \
470
517
        r3/posix/dir-posix.cpp \
502
549
        r3/darwin/rtProcInitExePath-darwin.cpp \
503
550
        r3/darwin/sched-darwin.cpp \
504
551
        r3/darwin/time-darwin.cpp \
 
552
        r3/posix/RTFileQueryFsSizes-posix.cpp \
505
553
        r3/posix/RTSystemQueryOSInfo-posix.cpp \
506
554
        r3/posix/dir-posix.cpp \
507
555
        r3/posix/env-posix.cpp \
546
594
        r3/freebsd/mp-freebsd.cpp \
547
595
        r3/freebsd/alloc-freebsd.cpp \
548
596
        r3/freebsd/rtProcInitExePath-freebsd.cpp \
 
597
        r3/posix/RTFileQueryFsSizes-posix.cpp \
549
598
        r3/posix/RTSystemQueryOSInfo-posix.cpp \
550
599
        r3/posix/dir-posix.cpp \
551
600
        r3/posix/env-posix.cpp \
582
631
        generic/utf16locale-generic.cpp \
583
632
        generic/uuid-generic.cpp \
584
633
        generic/RTProcIsRunningByName-generic.cpp \
 
634
        r3/posix/RTFileQueryFsSizes-posix.cpp \
585
635
        r3/posix/RTSystemQueryOSInfo-posix.cpp \
586
636
        r3/posix/dir-posix.cpp \
587
637
        r3/posix/env-posix.cpp \
605
655
        r3/posix/utf8-posix.cpp \
606
656
        r3/solaris/alloc-solaris.cpp \
607
657
        r3/solaris/mp-solaris.cpp \
608
 
        r3/solaris/rtProcInitExePath-solaris.cpp
609
 
 
610
 
ifdef RT_ASYNC_IO_CODE
611
 
 RuntimeR3_SOURCES.linux += \
612
 
        r3/linux/fileaio-linux.cpp
613
 
 RuntimeR3_SOURCES.solaris += \
614
 
        r3/solaris/fileaio-solaris.cpp
615
 
 RuntimeR3_SOURCES.win += \
616
 
        r3/win/fileaio-win.cpp
617
 
 RuntimeR3_SOURCES.freebsd += \
618
 
        r3/freebsd/fileaio-freebsd.cpp
619
 
 RuntimeR3_SOURCES.darwin += \
620
 
        r3/posix/fileaio-posix.cpp
621
 
endif
 
658
        r3/solaris/rtProcInitExePath-solaris.cpp \
622
659
 
623
660
## PORTME: Porters add their selection of platform specific files for Ring-3 here.
624
661
 
659
696
        l4/thread-l4env.cpp \
660
697
        l4/timer-l4env.cpp \
661
698
        l4/utf8-l4env.cpp \
 
699
        r3/posix/RTFileQueryFsSizes-posix.cpp \
662
700
        r3/posix/alloc-posix.cpp \
663
701
        r3/posix/dir-posix.cpp \
664
702
        r3/posix/env-posix.cpp \
730
768
        common/err/RTErrConvertFromErrno.cpp \
731
769
        common/log/logformat.cpp \
732
770
        common/misc/assert.cpp \
 
771
        common/misc/buildconfig.cpp \
733
772
        common/misc/sanity-c.c \
734
773
        common/misc/sanity-cpp.cpp \
 
774
        common/path/rtPathVolumeSpecLen.cpp \
 
775
        common/path/RTPathAbsDup.cpp \
 
776
        common/path/RTPathAbsEx.cpp \
 
777
        common/path/RTPathAbsExDup.cpp \
 
778
        common/path/RTPathAppend.cpp \
 
779
        common/path/RTPathExt.cpp \
 
780
        common/path/RTPathFilename.cpp \
 
781
        common/path/RTPathHaveExt.cpp \
 
782
        common/path/RTPathHavePath.cpp \
 
783
        common/path/RTPathParse.cpp \
 
784
        common/path/RTPathRealDup.cpp \
 
785
        common/path/RTPathStripExt.cpp \
 
786
        common/path/RTPathStripFilename.cpp \
 
787
        common/path/RTPathStripTrailingSlash.cpp \
 
788
        common/string/RTStrNLen.cpp \
 
789
        common/string/RTStrNLenEx.cpp \
735
790
        common/string/straprintf.cpp \
736
791
        common/string/strformat.cpp \
737
792
        common/string/strformatrt.cpp \
746
801
        generic/RTAssertShouldPanic-generic.cpp \
747
802
        r3/alloc.cpp \
748
803
        r3/fileio.cpp \
749
 
        r3/fs.cpp \
750
 
        r3/path.cpp
 
804
        r3/fs.cpp
751
805
RuntimeGuestR3Mini_SOURCES.freebsd = \
752
806
        r3/posix/env-posix.cpp \
753
807
        r3/posix/fileio-posix.cpp \
797
851
# VBoxRT - Shared Object / DLL version.
798
852
#
799
853
VBoxRT_TEMPLATE                = VBOXR3
800
 
ifdef VBOX_WITH_LIBXML2_IN_VBOXRT
801
 
VBoxRT_SDKS                    = VBOX_OPENSSL VBOX_LIBXML2 VBOX_LIBCURL
802
 
endif
 
854
VBoxRT_SDKS                    = VBOX_OPENSSL VBOX_LIBXML2 VBOX_LIBCURL VBOX_BOOST
803
855
VBoxRT_SDKS.win                = WINPSDK W2K3DDK VBOX_NTDLL
804
856
ifeq ($(KBUILD_TARGET)$(VBOX_WITH_HARDENING),darwin)
805
857
VBoxRT_INST                    = $(INST_DLL) $(INST_TESTCASE)
809
861
VBoxRT_SOURCES                 = \
810
862
        VBox/VBoxRTDeps.cpp \
811
863
        $(RuntimeR3_SOURCES)
812
 
if defined(VBOX_WITH_LIBXML2_IN_VBOXRT)
813
864
VBoxRT_SOURCES                += \
814
 
        common/misc/s3.cpp
815
 
endif
 
865
        common/misc/s3.cpp \
 
866
        r3/xml.cpp \
 
867
        common/checksum/RTSha1Digest.cpp \
 
868
        common/checksum/manifest.cpp \
 
869
        common/checksum/sha1.cpp \
 
870
        common/checksum/sha1str.cpp \
 
871
        common/checksum/sha256.cpp \
 
872
        common/checksum/sha256str.cpp \
 
873
        common/checksum/sha512.cpp \
 
874
        common/checksum/sha512str.cpp
816
875
VBoxRT_SOURCES.$(KBUILD_TARGET) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET))
817
876
VBoxRT_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
818
877
VBoxRT_SOURCES.$(KBUILD_TARGET_ARCH) = $(RuntimeR3_SOURCES.$(KBUILD_TARGET_ARCH))
819
 
VBoxRT_SOURCES.win            += r3/win/dllmain-win.cpp $(VBoxRT_0_OUTDIR)/VBoxRT.def
 
878
VBoxRT_SOURCES.win            += \
 
879
        r3/win/dllmain-win.cpp \
 
880
        r3/win/fileaio-win.cpp \
 
881
        $(VBoxRT_0_OUTDIR)/VBoxRT.def
 
882
VBoxRT_SOURCES.linux          += \
 
883
        r3/linux/fileaio-linux.cpp
 
884
VBoxRT_SOURCES.solaris        += \
 
885
        r3/solaris/fileaio-solaris.cpp
 
886
VBoxRT_SOURCES.darwin         += \
 
887
        r3/posix/fileaio-posix.cpp
 
888
VBoxRT_SOURCES.freebsd        += \
 
889
        r3/freebsd/fileaio-freebsd.cpp
820
890
VBoxRT_INCS                    = $(RuntimeR3_INCS)
821
891
VBoxRT_INCS.$(KBUILD_TARGET)   = $(RuntimeR3_INCS.$(KBUILD_TARGET))
822
892
VBoxRT_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH) = $(RuntimeR3_INCS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
828
898
 VBoxRT_LIBS                  += \
829
899
        $(PATH_LIB)/VBox-kStuff$(VBOX_SUFF_LIB)
830
900
endif
831
 
ifdef VBOX_WITH_LIBXML2_IN_VBOXRT
832
 
 ifndef SDK_VBOX_LIBXML2_LIBS
833
 
  VBoxRT_LIBS                 += \
 
901
ifndef  SDK_VBOX_LIBXML2_LIBS
 
902
 VBoxRT_LIBS                 += \
834
903
        $(PATH_LIB)/VBox-libxml2$(VBOX_SUFF_LIB)
835
 
 endif
836
 
 ifndef SDK_VBOX_OPENSSL_LIBS
837
 
  VBoxRT_LIBS                 += \
 
904
endif
 
905
ifndef  SDK_VBOX_OPENSSL_LIBS
 
906
 VBoxRT_LIBS                 += \
838
907
        $(PATH_LIB)/VBox-libcrypto$(VBOX_SUFF_LIB)
839
 
 endif
 
908
endif
 
909
ifdef IPRT_WITH_LZO
 
910
 VBoxRT_LIBS                  += lzo2
840
911
endif
841
912
VBoxRT_LIBS.darwin             = \
842
913
        iconv
861
932
VBoxRT_LIBS.l4                 = \
862
933
        $(PATH_LIB)/RuntimeR3L4$(VBOX_SUFF_LIB)
863
934
 
864
 
ifdef VBOX_WITH_LIBXML2_IN_VBOXRT
865
 
VBox/VBoxRTDeps.cpp_DEFS = VBOX_WITH_LIBXML2_IN_VBOXRT
866
 
endif
867
 
 
868
935
if1of ($(DLLS), VBoxRT)
869
936
$$(VBoxRT_0_OUTDIR)/VBoxRT.def: \
870
937
                $(PATH_SUB_CURRENT)/r3/win/VBoxRT-$$(if-expr $$(KBUILD_TARGET_ARCH) == amd64,win64,win32).def \
871
 
                $(if-expr defined(VBOX_WITH_LIBXML2_IN_VBOXRT),$(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def),)
 
938
                $(PATH_SUB_CURRENT)/r3/win/$(if $(VBOX_OSE),VBoxRT-openssl-ose.def,VBoxRT-openssl.def)
872
939
        $(RM) -f -- $@
873
940
        $(REDIRECT) -wto $@ -- $(CAT_EXT) $^
874
941
endif
989
1056
        common/log/logcom.cpp \
990
1057
        common/log/logformat.cpp \
991
1058
        common/misc/assert.cpp \
 
1059
        common/misc/buildconfig.cpp \
992
1060
        common/misc/handletable.cpp \
993
1061
        common/misc/handletablectx.cpp \
994
1062
        common/misc/handletablesimple.cpp \
1005
1073
        common/table/avlgcptr.cpp \
1006
1074
        common/table/avlhcphys.cpp \
1007
1075
        common/table/avllu32.cpp \
1008
 
        common/table/avlou32.cpp \
1009
1076
        common/table/avlogcphys.cpp \
1010
1077
        common/table/avlogcptr.cpp \
1011
1078
        common/table/avlohcphys.cpp \
1016
1083
        common/table/avlroioport.cpp \
1017
1084
        common/table/avlroogcptr.cpp \
1018
1085
        common/table/avlu32.cpp \
 
1086
        common/table/avlou32.cpp \
1019
1087
        common/time/timesup.cpp \
1020
1088
        generic/RTAssertShouldPanic-generic.cpp \
1021
1089
        VBox/strformat-vbox.cpp \
1066
1134
#
1067
1135
RuntimeR0Drv_TEMPLATE   = VBOXR0DRV
1068
1136
RuntimeR0Drv_SDKS.win   = W2K3DDK WINPSDKINCS
 
1137
RuntimeR0Drv_DEFS       = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS RT_NO_EXPORT_SYMBOL
 
1138
RuntimeR0Drv_DEFS.win   = IN_SUP_R0
 
1139
RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0
 
1140
 
1069
1141
RuntimeR0Drv_INCS      := $(PATH_SUB_CURRENT) include
1070
 
RuntimeR0Drv_DEFS       = IN_RT_R0 RT_WITH_VBOX RT_WITHOUT_NOCRT_WRAPPERS
1071
 
RuntimeR0Drv_DEFS.win   = IN_SUP_R0
1072
 
RuntimeR0Drv_DEFS.linux = MODULE KBUILD_MODNAME=KBUILD_STR\(vboxdrv\) KBUILD_BASENAME=KBUILD_STR\(vboxdrv\) IN_SUP_R0 # why is IN_SUP_R0 here? because!
1073
 
 
 
1142
RuntimeR0Drv_INCS.freebsd = \
 
1143
        $(PATH_INS)/gen-sys-hdrs
1074
1144
RuntimeR0Drv_INCS.linux = \
1075
1145
        r0drv/linux
1076
 
ifdef VBOX_WITH_SOLARIS_VBI
1077
 
 RuntimeR0Drv_INCS.solaris = \
1078
 
        r0drv/solaris/vbi/i86pc
1079
 
endif
 
1146
RuntimeR0Drv_INCS.solaris = \
 
1147
        r0drv/solaris/vbi/i86pc \
 
1148
        r0drv/solaris/vbi/i86pc/sys
1080
1149
 
1081
1150
RuntimeR0Drv_SOURCES    = \
1082
1151
        common/alloc/alloc.cpp \
1083
1152
        common/alloc/heapsimple.cpp \
 
1153
        common/alloc/heapoffset.cpp \
1084
1154
        common/misc/RTAssertMsg2.cpp \
1085
1155
        common/checksum/crc32.cpp \
1086
1156
        common/checksum/crc64.cpp \
1093
1163
        common/log/logcom.cpp \
1094
1164
        common/log/logformat.cpp \
1095
1165
        common/misc/assert.cpp \
 
1166
        common/misc/buildconfig.cpp \
1096
1167
        common/misc/handletable.cpp \
1097
1168
        common/misc/handletablectx.cpp \
1098
1169
        common/misc/handletablesimple.cpp \
1100
1171
        common/misc/sanity-c.c \
1101
1172
        common/misc/sanity-cpp.cpp \
1102
1173
        common/misc/term.cpp \
 
1174
        common/path/rtPathVolumeSpecLen.cpp \
 
1175
        common/path/RTPathAbsDup.cpp \
 
1176
        common/path/RTPathAbsEx.cpp \
 
1177
        common/path/RTPathAbsExDup.cpp \
 
1178
        common/path/RTPathAppend.cpp \
 
1179
        common/path/RTPathExt.cpp \
 
1180
        common/path/RTPathFilename.cpp \
 
1181
        common/path/RTPathHaveExt.cpp \
 
1182
        common/path/RTPathHavePath.cpp \
 
1183
        common/path/RTPathParse.cpp \
 
1184
        common/path/RTPathRealDup.cpp \
 
1185
        common/path/RTPathStripExt.cpp \
 
1186
        common/path/RTPathStripFilename.cpp \
 
1187
        common/path/RTPathStripTrailingSlash.cpp \
1103
1188
        common/rand/rand.cpp \
1104
1189
        common/rand/randadv.cpp \
1105
1190
        common/rand/randparkmiller.cpp \
1116
1201
        generic/uuid-generic.cpp \
1117
1202
        r0drv/alloc-r0drv.cpp \
1118
1203
        r0drv/initterm-r0drv.cpp \
 
1204
        r0drv/generic/semspinmutex-r0drv-generic.c \
1119
1205
        VBox/log-vbox.cpp \
1120
1206
        VBox/strformat-vbox.cpp
1121
1207
 
1141
1227
        r0drv/linux/assert-r0drv-linux.c \
1142
1228
        r0drv/linux/initterm-r0drv-linux.c \
1143
1229
        r0drv/linux/memobj-r0drv-linux.c \
 
1230
        r0drv/linux/memuserkernel-r0drv-linux.c \
1144
1231
        r0drv/linux/mp-r0drv-linux.c \
1145
1232
        r0drv/linux/mpnotification-r0drv-linux.c \
1146
1233
        r0drv/linux/process-r0drv-linux.c \
1179
1266
        r0drv/nt/assert-r0drv-nt.cpp \
1180
1267
        r0drv/nt/initterm-r0drv-nt.cpp \
1181
1268
        r0drv/nt/memobj-r0drv-nt.cpp \
 
1269
        r0drv/nt/memuserkernel-r0drv-nt.cpp \
1182
1270
        r0drv/nt/mp-r0drv-nt.cpp \
1183
1271
        r0drv/nt/mpnotification-r0drv-nt.cpp \
1184
1272
        r0drv/nt/process-r0drv-nt.cpp \
1216
1304
        r0drv/darwin/initterm-r0drv-darwin.cpp \
1217
1305
        r0drv/darwin/memobj-r0drv-darwin.cpp \
1218
1306
        r0drv/darwin/mp-r0drv-darwin.cpp \
 
1307
        r0drv/darwin/memuserkernel-r0drv-darwin.cpp \
1219
1308
        r0drv/darwin/process-r0drv-darwin.cpp \
1220
1309
        r0drv/darwin/RTLogWriteDebugger-r0drv-darwin.cpp \
1221
1310
        r0drv/darwin/RTLogWriteStdOut-r0drv-darwin.cpp \
1271
1360
        r0drv/os2/assertA-r0drv-os2.asm \
1272
1361
        r0drv/os2/initterm-r0drv-os2.cpp \
1273
1362
        r0drv/os2/memobj-r0drv-os2.cpp \
 
1363
        r0drv/os2/memuserkernel-r0drv-os2.cpp \
1274
1364
        r0drv/os2/os2imports.imp \
1275
1365
        r0drv/os2/process-r0drv-os2.cpp \
1276
1366
        r0drv/os2/RTR0AssertPanicSystem-r0drv-os2.asm \
1306
1396
        r0drv/freebsd/assert-r0drv-freebsd.c \
1307
1397
        r0drv/freebsd/initterm-r0drv-freebsd.c \
1308
1398
        r0drv/freebsd/memobj-r0drv-freebsd.c \
 
1399
        r0drv/freebsd/memuserkernel-r0drv-freebsd.c \
1309
1400
        r0drv/freebsd/process-r0drv-freebsd.c \
1310
1401
        r0drv/freebsd/semevent-r0drv-freebsd.c \
1311
1402
        r0drv/freebsd/semeventmulti-r0drv-freebsd.c \
1318
1409
        generic/timer-generic.cpp \
1319
1410
        r0drv/memobj-r0drv.cpp \
1320
1411
        r0drv/powernotification-r0drv.c
1321
 
RuntimeR0Drv_DEPS.freebsd = \
1322
 
        $(PATH_RuntimeR0Drv)/bus_if.h \
1323
 
        $(PATH_RuntimeR0Drv)/device_if.h
1324
 
RuntimeR0Drv_CLEAN.freebsd = $(RuntimeR0Drv_DEPS.freebsd)
1325
 
RuntimeR0Drv_INCS.freebsd += $(PATH_RuntimeR0Drv)
1326
 
 
1327
 
 ifeq ($(KBUILD_TARGET),freebsd)
1328
 
  #
1329
 
  # FreeBSD: Generate bus and device interface headers.
1330
 
  # We have to include headers for the RTMp* API which
1331
 
  # depends on these files.
1332
 
  #
1333
 
  # We cannot give a output path to the awk program, it will always generate
1334
 
  # the header next to the source. So, we'll have to temporarily copy the
1335
 
  # source file to the destination directory to work.
1336
 
  #
1337
 
  ## @todo Create an install target for this and install it to gen-sys-hdrs/, user order deps to force RuntimeR0Drv to build it. Use it for the other drivers as well.
1338
 
  VBOX_AWK := /usr/bin/awk
1339
 
  $$(PATH_RuntimeR0Drv)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
1340
 
        $(call MSG_TOOL,awk,RuntimeR0Drv,$<,$@)
1341
 
        $(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/bus_if.m $(PATH_RuntimeR0Drv)/bus_if.m
1342
 
        $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_RuntimeR0Drv)/bus_if.m -h -p
1343
 
        $(QUIET)$(RM) $(PATH_RuntimeR0Drv)/bus_if.m
1344
 
 
1345
 
  $$(PATH_RuntimeR0Drv)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
1346
 
        $(call MSG_TOOL,awk,RuntimeR0Drv,$<,$@)
1347
 
        $(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/device_if.m $(PATH_RuntimeR0Drv)/device_if.m
1348
 
        $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_RuntimeR0Drv)/device_if.m -h -p
1349
 
        $(QUIET)$(RM) $(PATH_RuntimeR0Drv)/device_if.m
1350
 
 endif # FreeBSD
1351
1412
 
1352
1413
RuntimeR0Drv_SOURCES.solaris = \
1353
1414
        common/err/RTErrConvertFromErrno.cpp \
1361
1422
        r0drv/memobj-r0drv.cpp \
1362
1423
        r0drv/mpnotification-r0drv.c \
1363
1424
        r0drv/powernotification-r0drv.c \
 
1425
        r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
1364
1426
        r0drv/solaris/assert-r0drv-solaris.c \
1365
1427
        r0drv/solaris/initterm-r0drv-solaris.c \
 
1428
        r0drv/solaris/memuserkernel-r0drv-solaris.c \
1366
1429
        r0drv/solaris/semevent-r0drv-solaris.c \
1367
1430
        r0drv/solaris/semeventmulti-r0drv-solaris.c \
1368
1431
        r0drv/solaris/semfastmutex-r0drv-solaris.c \
1369
1432
        r0drv/solaris/spinlock-r0drv-solaris.c
1370
1433
 
1371
 
ifdef VBOX_WITH_SOLARIS_VBI
 
1434
 # VBI is now compiled into IPRT
1372
1435
 RuntimeR0Drv_SOURCES.solaris += \
1373
1436
        r0drv/solaris/vbi/RTMpPokeCpu-r0drv-solaris.c \
1374
1437
        r0drv/solaris/vbi/mpnotification-r0drv-solaris.c \
1376
1439
        r0drv/solaris/vbi/memobj-r0drv-solaris.c \
1377
1440
        r0drv/solaris/vbi/mp-r0drv-solaris.c \
1378
1441
        r0drv/solaris/vbi/process-r0drv-solaris.c \
1379
 
        r0drv/solaris/vbi/RTLogWriteDebugger-r0drv-solaris.c \
1380
1442
        r0drv/solaris/vbi/thread-r0drv-solaris.c \
1381
1443
        r0drv/solaris/vbi/thread2-r0drv-solaris.c \
1382
1444
        r0drv/solaris/vbi/time-r0drv-solaris.c \
1383
 
        r0drv/solaris/vbi/timer-r0drv-solaris.c
1384
 
else  # !VBOX_WITH_SOLARIS_VBI
1385
 
 RuntimeR0Drv_SOURCES.solaris += \
1386
 
        r0drv/solaris/mpnotification-r0drv-solaris.c \
1387
 
        r0drv/solaris/alloc-r0drv-solaris.c \
1388
 
        r0drv/solaris/memobj-r0drv-solaris.c \
1389
 
        r0drv/solaris/process-r0drv-solaris.c \
1390
 
        r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
1391
 
        r0drv/solaris/thread-r0drv-solaris.c \
1392
 
        r0drv/solaris/thread2-r0drv-solaris.c \
1393
 
        r0drv/solaris/time-r0drv-solaris.c \
1394
 
        r0drv/solaris/timer-r0drv-solaris.c
1395
 
 # Don't use mp-r0drv-solaris.c because it will cause crashes due to incorrect memobj-r0drv-solaris.c code.
1396
 
 ifeq (0,0)
1397
 
  # Stub it. ## @todo limit the stubbing to RTMpOn*.
1398
 
  RuntimeR0Drv_SOURCES.solaris += \
1399
 
        generic/RTMpCpuId-generic.cpp \
1400
 
        generic/RTMpCpuIdFromSetIndex-generic.cpp \
1401
 
        generic/RTMpCpuIdToSetIndex-generic.cpp \
1402
 
        generic/RTMpIsCpuPossible-generic.cpp \
1403
 
        generic/RTMpGetCount-generic.cpp \
1404
 
        generic/RTMpGetMaxCpuId-generic.cpp \
1405
 
        generic/RTMpGetOnlineCount-generic.cpp \
1406
 
        generic/RTMpGetOnlineSet-generic.cpp \
1407
 
        generic/RTMpGetSet-generic.cpp \
1408
 
        generic/RTMpIsCpuOnline-generic.cpp \
1409
 
        r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
1410
 
        r0drv/generic/RTMpOn-r0drv-generic.cpp \
1411
 
        r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c
1412
 
 else
1413
 
  # Use mp-r0drv-solaris.c.
1414
 
  RuntimeR0Drv_SOURCES.solaris += \
1415
 
        r0drv/solaris/mp-r0drv-solaris.c \
1416
 
        r0drv/solaris/RTMpPokeCpu-r0drv-solaris.c
1417
 
#       r0drv/solaris/mpnotification-r0drv-solaris.c
1418
 
 endif
 
1445
        r0drv/solaris/vbi/timer-r0drv-solaris.c \
 
1446
        r0drv/solaris/vbi/i86pc/os/vbi.c
1419
1447
 
1420
 
endif # !VBOX_WITH_SOLARIS_VBI
1421
1448
 
1422
1449
## PORTME: Porters create and add their selection of platform specific Ring-0 Driver files here.
1423
1450
 
 
1451
RuntimeR0Drv_ORDERDEPS.freebsd = \
 
1452
        $(PATH_INS)/gen-sys-hdrs/bus_if.h \
 
1453
        $(PATH_INS)/gen-sys-hdrs/device_if.h
 
1454
 
1424
1455
 
1425
1456
#
1426
1457
# RuntimeGuestR0 - Guest driver runtime.
1434
1465
        VBox/logbackdoor.cpp
1435
1466
RuntimeGuestR0_EXTENDS    = RuntimeR0Drv
1436
1467
 
1437
 
# HACK: no vbi for the solaris guest additions - yet.
1438
 
RuntimeGuestR0_SOURCES.solaris = \
1439
 
        common/err/RTErrConvertFromErrno.cpp \
1440
 
        common/err/RTErrConvertToErrno.cpp \
1441
 
        common/misc/thread.cpp \
1442
 
        common/string/memchr.asm \
1443
 
        generic/RTAssertShouldPanic-generic.cpp \
1444
 
        generic/RTTimerCreate-generic.cpp \
1445
 
        r0drv/memobj-r0drv.cpp \
1446
 
        generic/RTMpCpuId-generic.cpp \
1447
 
        generic/RTMpCpuIdFromSetIndex-generic.cpp \
1448
 
        generic/RTMpCpuIdToSetIndex-generic.cpp \
1449
 
        generic/RTMpIsCpuPossible-generic.cpp \
1450
 
        generic/RTMpGetCount-generic.cpp \
1451
 
        generic/RTMpGetMaxCpuId-generic.cpp \
1452
 
        generic/RTMpGetOnlineCount-generic.cpp \
1453
 
        generic/RTMpGetOnlineSet-generic.cpp \
1454
 
        generic/RTMpGetSet-generic.cpp \
1455
 
        generic/RTMpIsCpuOnline-generic.cpp \
1456
 
        generic/RTLogWriteStdOut-stub-generic.cpp \
1457
 
        generic/mppresent-generic.cpp \
1458
 
        r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp \
1459
 
        r0drv/generic/RTMpOn-r0drv-generic.cpp \
1460
 
        r0drv/generic/RTMpPokeCpu-r0drv-generic.cpp \
1461
 
        r0drv/generic/mpnotification-r0drv-generic.cpp \
1462
 
        r0drv/solaris/alloc-r0drv-solaris.c \
1463
 
        r0drv/solaris/assert-r0drv-solaris.c \
1464
 
        r0drv/solaris/initterm-r0drv-solaris.c \
1465
 
        r0drv/solaris/memobj-r0drv-solaris.c \
1466
 
        r0drv/solaris/process-r0drv-solaris.c \
1467
 
        r0drv/solaris/RTLogWriteDebugger-r0drv-solaris.c \
1468
 
        r0drv/solaris/semevent-r0drv-solaris.c \
1469
 
        r0drv/solaris/semeventmulti-r0drv-solaris.c \
1470
 
        r0drv/solaris/semfastmutex-r0drv-solaris.c \
1471
 
        r0drv/solaris/spinlock-r0drv-solaris.c \
1472
 
        r0drv/solaris/thread-r0drv-solaris.c \
1473
 
        r0drv/solaris/thread2-r0drv-solaris.c \
1474
 
        r0drv/solaris/time-r0drv-solaris.c \
1475
 
        r0drv/solaris/timer-r0drv-solaris.c
1476
1468
 
1477
1469
#
1478
1470
# RuntimeGuestR0NT4 - Win32 NT4 guest driver runtime.
1496
1488
        common/log/logcom.cpp \
1497
1489
        common/log/logformat.cpp \
1498
1490
        common/misc/assert.cpp \
 
1491
        common/misc/buildconfig.cpp \
1499
1492
        common/misc/sanity-c.c \
1500
1493
        common/misc/sanity-cpp.cpp \
1501
1494
        common/string/strformat.cpp \
1618
1611
        $(VBOX_XSLTPROC) -o $@ $< $(filter %.xidl,$^)
1619
1612
 
1620
1613
 
 
1614
if "$(KBUILD_TARGET)" == "freebsd"
 
1615
#
 
1616
# FreeBSDGeneratedKernelHeaders - Generate some kernel interface headers.
 
1617
#
 
1618
# These are used by:
 
1619
#      - The RTMp* API in IPRT.
 
1620
#      - VBoxGuest
 
1621
#
 
1622
# Note! We cannot give a output path to the awk program, it will always
 
1623
# generate the header next to the source. So, we'll have to temporarily copy
 
1624
# the source file to the destination directory to work.
 
1625
#
 
1626
VBOX_AWK := /usr/bin/awk
 
1627
INSTALLS += FreeBSDGeneratedKernelHeaders
 
1628
FreeBSDGeneratedKernelHeaders_INST = gen-sys-hdrs/
 
1629
FreeBSDGeneratedKernelHeaders_SOURCES = \
 
1630
        $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h \
 
1631
        $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h \
 
1632
        $(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h
 
1633
FreeBSDGeneratedKernelHeaders_CLEAN = $(FreeBSDGeneratedKernelHeaders_SOURCES)
 
1634
 
 
1635
$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m | $$(dir $$@)
 
1636
        $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
 
1637
        $(QUIET)$(CP) -f $< $(@D)/bus_if.m
 
1638
        $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/bus_if.m -h -p
 
1639
        $(QUIET)$(RM) $(@D)/bus_if.m
 
1640
 
 
1641
$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m | $$(dir $$@)
 
1642
        $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
 
1643
        $(QUIET)$(CP) -f $< $(@D)/device_if.m
 
1644
        $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/device_if.m -h -p
 
1645
        $(QUIET)$(RM) $(@D)/device_if.m
 
1646
 
 
1647
$$(FreeBSDGeneratedKernelHeaders_0_OUTDIR)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m | $$(dir $$@)
 
1648
        $(call MSG_TOOL,awk,FreeBSDGeneratedKernelHeaders,$<,$@)
 
1649
        $(QUIET)$(CP) -f $< $(@D)/pci_if.m
 
1650
        $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(@D)/pci_if.m -h -p
 
1651
        $(QUIET)$(RM) $(@D)/pci_if.m
 
1652
endif # FreeBSD
 
1653
 
 
1654
 
1621
1655
#
1622
1656
# Aliases for .cpp.h files so we can more easily do syntax checking from the editor.
1623
1657
#
1719
1753
        @echo $(DOXYGEN_OUTPUT_PREV)
1720
1754
        @echo $(IPRT_DOXYFILE_INPUT)
1721
1755
 
1722
 
 
1723
1756
#
1724
1757
# Generate the rules (we're the to sub-makefile).
1725
1758
#