VirtualBox

source: vbox/trunk/src/libs/xpcom18a4/Makefile.kmk@ 12455

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

Rolled back change set 36536 as some other changes got mixed with the fix

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 63.3 KB
Line 
1# $Id: Makefile.kmk 12455 2008-09-15 10:49:19Z vboxsync $
2## @file
3# Sub-Makefile for XPCOM.
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# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18# Clara, CA 95054 USA or visit http://www.sun.com if you need
19# additional information or have any questions.
20#
21
22SUB_DEPTH = ../../..
23include $(KBUILD_PATH)/subheader.kmk
24
25# File for filtering out C symbols from the XPCOM library. Used to avoid
26# symbol namespace pollution, causing trouble with system libraries.
27XPCOM_C_NAMESPACE_MAP = $(VBOX_PATH_XPCOM_SRC)/xpcom-namespace-cleanup.map
28
29# @todo check whether VBoxXPCOMIPCC.so or VBoxXPCOMIPCD contain undefined
30# symbols starting with NS_, PL_, PR_ or XPT. Would move the test time failure
31# when missing a symbol renaming to a build time failure. Likewise, there
32# should be a check whether VBoxXPCOM.so contains global C symbols (at least
33# where the whitelisting of symbols via the map file is not used).
34
35#
36# Globals.
37#
38VBOX_PATH_XPCOM_SRC := $(PATH_SUB_CURRENT)
39
40BLDDIRS += $(PATH_TARGET)/VBox-xpcom-xpt-files/
41
42
43#
44# Template for building the XPCOM libraries (shared).
45#
46TEMPLATE_XPCOM = XPCOM libraries (shared)
47TEMPLATE_XPCOM_EXTENDS = VBOXR3NP
48## @todo correct inheritance here to make it use all the VBOXR3NP settings instead of overriding all of them.
49TEMPLATE_XPCOM_ASTOOL = $(TEMPLATE_VBOXR3NP_TOOL)
50TEMPLATE_XPCOM_ASFLAGS = $(NO_SUCH_VARIABLE)
51TEMPLATE_XPCOM_ASFLAGS.x86 = -m32
52TEMPLATE_XPCOM_ASFLAGS.amd64 = -m64
53TEMPLATE_XPCOM_ASDEFS = $(NO_SUCH_VARIABLE)
54TEMPLATE_XPCOM_CXXFLAGS = -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
55 $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
56 $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden)
57TEMPLATE_XPCOM_CXXFLAGS.x86 = -m32
58TEMPLATE_XPCOM_CXXFLAGS.amd64 = -m64
59TEMPLATE_XPCOM_CXXFLAGS.release = -O
60TEMPLATE_XPCOM_CXXFLAGS.profile = -O
61TEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
62TEMPLATE_XPCOM_CXXFLAGS.freebsd = -pthread
63TEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc
64TEMPLATE_XPCOM_CXXFLAGS.linux = -pthread
65TEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
66TEMPLATE_XPCOM_CFLAGS = -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden)
67TEMPLATE_XPCOM_CFLAGS.x86 = -m32
68TEMPLATE_XPCOM_CFLAGS.amd64 = -m64
69TEMPLATE_XPCOM_CFLAGS.release = -O
70TEMPLATE_XPCOM_CFLAGS.profile = -O
71TEMPLATE_XPCOM_CFLAGS.freebsd = -pthread
72TEMPLATE_XPCOM_CFLAGS.l4 = -nostdinc
73TEMPLATE_XPCOM_CFLAGS.linux = -pthread -ansi
74TEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
75TEMPLATE_XPCOM_DEFS = MOZILLA_CLIENT=1 NDEBUG=1 _IMPL_NS_COM \
76 XPCOM_DLL_BASE=\"$(basename $(notdir $(LIB_XPCOM)))\" \
77 MOZ_DLL_SUFFIX=\"$(suffix $(LIB_XPCOM))\" \
78 IN_RING3
79ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
80 TEMPLATE_XPCOM_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
81endif
82TEMPLATE_XPCOM_DEFS.x86 = i386=1
83TEMPLATE_XPCOM_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
84TEMPLATE_XPCOM_DEFS.darwin = OSTYPE=\"Darwin8.8.1\" OSARCH=\"Darwin\" XP_UNIX=1 XP_MACOSX=1 TARGET_CARBON=1 HAVE_VISIBILITY_ATTRIBUTE=1 DARWIN=1 $(TEMPLATE_VBOXR3NP_DEFS.darwin)
85TEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
86TEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
87TEMPLATE_XPCOM_DEFS.l4 = OSTYPE=\"L4ENV\" OSARCH=\"L4\" XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
88# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
89TEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
90TEMPLATE_XPCOM_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
91## @todo The LDFLAGS inheriting is being hidden here and below where -fPIC is added.
92ifdef VBOX_WITH_RUNPATH
93TEMPLATE_XPCOM_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
94else ifdef VBOX_WITH_ORIGIN
95TEMPLATE_XPCOM_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)/'
96endif
97TEMPLATE_XPCOM_LDFLAGS.x86 = -m32
98TEMPLATE_XPCOM_LDFLAGS.amd64 = -m64
99TEMPLATE_XPCOM_LDFLAGS.darwin = $(TEMPLATE_VBOXR3NP_LDFLAGS.darwin) \
100 -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
101 -framework CoreServices -framework CoreFoundation -framework Foundation -framework AppKit -framework Carbon \
102 -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)
103ifn1of ($(KBUILD_TARGET), os2 win)
104 TEMPLATE_XPCOM_CXXFLAGS += -fPIC
105 TEMPLATE_XPCOM_CFLAGS += -fPIC
106 TEMPLATE_XPCOM_LDFLAGS += -fPIC
107 TEMPLATE_XPCOM_DEFS += MOZ_PRESERVE_PIC
108endif
109TEMPLATE_XPCOM_INCS = xpcom/build \
110 xpcom/ds \
111 xpcom/io \
112 xpcom/base \
113 xpcom/components \
114 xpcom/threads \
115 xpcom/proxy/src \
116 xpcom/reflect/xptcall/src \
117 ipc/ipcd/client/src \
118 ipc/ipcd/shared/src \
119 ipc/ipcd/extensions/lock/src \
120 ipc/ipcd/extensions/transmngr/src \
121 ipc/ipcd/extensions/dconnect/src \
122 ipc/ipcd/extensions/transmngr/common \
123 $(VBOX_PATH_SDK)/bindings/xpcom/include \
124 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
125 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
126 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
127 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
128 .
129TEMPLATE_XPCOM_INCS.darwin = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon
130TEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
131TEMPLATE_XPCOM_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
132 -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
133 # -Wl,--whole-archive,--no-allow-shlib-undefined
134TEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC)
135TEMPLATE_XPCOM_LIBS.solaris = sendfile
136TEMPLATE_XPCOM_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst))) \
137 $(PATH_VBox-xpcom-string)/idl_ts
138ifeq ($(KBUILD_TARGET),os2)
139 ifndef USE_OS2_TOOLKIT_HEADERS
140 TEMPLATE_XPCOM_DEFS.os2 += OS2EMX_PLAIN_CHAR
141 endif
142 TEMPLATE_XPCOM_DEFS.os2 += XP_OS2_EMX OS2=4
143 # this is at least for strnicmp()
144 TEMPLATE_XPCOM_DEFS.os2 += _EMX_SOURCE
145 # @@todo shouldn't this be somehow default for ASTOOL?
146 TEMPLATE_XPCOM_ASFLAGS.os2 += -Zomf
147endif
148
149# When using IPRT in NSRP or/and using IPRT for logging, link with IPRT.
150TEMPLATE_XPCOM_LIBS += $(LIB_RUNTIME)
151
152#
153# Template for building the XPCOM executables
154#
155TEMPLATE_XPCOMEXE = XPCOM executable files (testcases)
156TEMPLATE_XPCOMEXE_EXTENDS = XPCOM
157## @todo undo -fPIC.
158TEMPLATE_XPCOMEXE_INCS = ipc/ipcd/shared/src \
159 $(VBOX_PATH_SDK)/bindings/xpcom/include \
160 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
161 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
162 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
163 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
164 .
165TEMPLATE_XPCOMEXE_LIBS = \
166 $(TARGET_VBox-xpcom-ipcshared) \
167 $(TARGET_VBoxXPCOM) \
168 $(TEMPLATE_XPCOM_LIBS)
169TEMPLATE_XPCOMEXE_LIBS.freebsd = $(LIB_PTHREAD)
170TEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD)
171TEMPLATE_XPCOMEXE_LIBS.l4 = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
172TEMPLATE_XPCOMEXE_LDFLAGS.darwin = -bind_at_load $(filter-out -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin))
173TEMPLATE_XPCOMEXE_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
174 -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
175 -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
176 -Wl,--rpath-link,$(L4_LIBDIR) \
177 # -Wl,--whole-archive,--no-allow-shlib-undefined
178
179
180#
181# Template for building XPCOM executables for running at build time.
182#
183# It extends the BLDPROG template in config.kmk but overrides CFLAGS
184# and CXXFLAGS completely at the moment.
185#
186TEMPLATE_XPCOMBLDPROG = XPCOM Build programs executables
187TEMPLATE_XPCOMBLDPROG_EXTENDS = VBOXBLDPROG
188## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPCOMEXE is expanded when this is being used.)
189
190TEMPLATE_XPCOMBLDPROG_DEFS = $(TEMPLATE_BLDPROG_DEFS) $(TEMPLATE_XPCOMEXE_DEFS)
191TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_TARGET) = $(TEMPLATE_BLDPROG_DEFS.$(KBUILD_TARGET)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_TARGET))
192TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_BLDPROG_DEFS.$(KBUILD_TARGET_ARCH)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_TARGET_ARCH))
193TEMPLATE_XPCOMBLDPROG_CXXFLAGS = -ansi -Wall -Wno-non-virtual-dtor
194TEMPLATE_XPCOMBLDPROG_CXXFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_CXXFLAGS.$(KBUILD_TARGET_ARCH))
195TEMPLATE_XPCOMBLDPROG_CXXFLAGS.release = -O
196TEMPLATE_XPCOMBLDPROG_CXXFLAGS.profile = -O
197TEMPLATE_XPCOMBLDPROG_CXXFLAGS.freebsd = -pthread
198TEMPLATE_XPCOMBLDPROG_CXXFLAGS.linux = -pthread
199TEMPLATE_XPCOMBLDPROG_CFLAGS = -pipe -ansi -Wall -Wno-unused
200TEMPLATE_XPCOMBLDPROG_CFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_CFLAGS.$(KBUILD_TARGET_ARCH))
201TEMPLATE_XPCOMBLDPROG_CFLAGS.release = -O
202TEMPLATE_XPCOMBLDPROG_CFLAGS.profile = -O
203TEMPLATE_XPCOMBLDPROG_CFLAGS.freebsd = -pthread
204TEMPLATE_XPCOMBLDPROG_CFLAGS.linux = -pthread
205TEMPLATE_XPCOMBLDPROG_INCS = $(VBOX_PATH_SDK)/bindings/xpcom/include \
206 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
207 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
208 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
209 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
210TEMPLATE_XPCOMBLDPROG_INCS.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_INCS.$(KBUILD_TARGET))
211TEMPLATE_XPCOMBLDPROG_INCS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_INCS.$(KBUILD_TARGET_ARCH))
212TEMPLATE_XPCOMBLDPROG_LIBPATH.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_LIBPATH.$(KBUILD_TARGET))
213TEMPLATE_XPCOMBLDPROG_LIBPATH.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LIBPATH.$(KBUILD_TARGET_ARCH))
214TEMPLATE_XPCOMBLDPROG_LDFLAGS.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(KBUILD_TARGET))
215TEMPLATE_XPCOMBLDPROG_LDFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(KBUILD_TARGET_ARCH))
216TEMPLATE_XPCOMBLDPROG_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst)))
217
218
219#
220# Template for building VBoxPhython against the Mac OS X 10.5 SDK.
221# ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
222#
223TEMPLATE_XPCOMOSX105 = XPCOM libraries (shared) built against the Mac OS X 10.5 SDK
224TEMPLATE_XPCOMOSX105_EXTENDS = XPCOM
225TEMPLATE_XPCOMOSX105_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
226TEMPLATE_XPCOMOSX105_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS)
227TEMPLATE_XPCOMOSX105_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
228TEMPLATE_XPCOMOSX105_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
229TEMPLATE_XPCOMOSX105_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_5)/Developer/Headers/FlatCarbon
230
231
232#
233# Header installs.
234#
235INSTALLS += \
236 NSPRPUB-HEADERS \
237 NSPRPUB-MD-HEADERS \
238 NSPRPUB-OBS-HEADERS \
239 NSPRPUB-PRIV-HEADERS \
240 STRING-HEADERS \
241 XPCOM-HEADERS \
242 IPCD-HEADERS
243
244#
245# The IDL compiler and typelib linker.
246#
247BLDPROGS += \
248 xpidl \
249 xpt_link
250
251#
252# We build several libraries so that any linker command line
253# length restrictions limit will be avoided. (Solaris, Mac?)
254#
255
256ifndef VBOX_ONLY_SDK
257LIBRARIES += \
258 VBox-xpcom-nspr \
259 VBox-xpcom-typelib \
260 VBox-xpcom-string \
261 VBox-xpcom-base \
262 VBox-xpcom-ds \
263 VBox-xpcom-io \
264 VBox-xpcom-components \
265 VBox-xpcom-threads \
266 VBox-xpcom-xptinfo \
267 VBox-xpcom-xptcall \
268 VBox-xpcom-proxy \
269 VBoxXPCOMGlue_s \
270 VBoxXPCOMGlue \
271 VBox-xpcom-ipcutils \
272 VBox-xpcom-ipcshared \
273 VBox-xpcom-ipcdlock \
274 VBox-xpcom-ipctransmgr \
275 VBox-xpcom-ipctmgrcom
276
277DLLS += \
278 VBoxXPCOM \
279 VBoxXPCOMIPCC
280
281ifdef VBOX_WITH_TESTCASES
282PROGRAMS += \
283 tstnsIFileEnumerator \
284 tstnsIFileTest \
285 tstTestArray \
286 tstTestAtoms \
287 tstTestAutoLock \
288 tstTestCallTemplates \
289 tstTestCOMPtr \
290 tstTestCOMPtrEq \
291 tstTestCRT \
292 tstTestFactory \
293 tstTestHashtables \
294 tstTestID \
295 tstTestObserverService \
296 tstTestPipes \
297 tstTestServMgr \
298 tstTestThreads \
299 tstTestXPIDLString \
300 tstTestDeque \
301 tstTestAutoPtr \
302 tstTestMinStringAPI \
303 tstTestStrings \
304 tstPrimitiveTest \
305 tstSimpleTypeLib \
306 tstXptDump \
307 tstXptLink
308# tstTestPermanentAtoms
309endif # VBOX_WITH_TESTCASES
310PROGRAMS += VBoxXPCOMIPCD
311
312
313else
314
315PATH_VBox-xpcom-string=$(PATH_BIN)
316
317endif # !VBOX_ONLY_SDK
318
319
320
321
322#
323# SDK headers - lot's of files to install...
324#
325# Tip: If you are going to remove files here, you might
326# wish to do a `kmk uninstall' first to avoid have
327# obsoleted files in the $(INST_SDK) directory.
328#
329NSPRPUB-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/nsprpub/
330NSPRPUB-HEADERS_IFFLAGS = -m 644
331NSPRPUB-HEADERS_SOURCES = \
332 nsprpub/pr/include/nspr.h \
333 nsprpub/lib/ds/plarena.h \
334 nsprpub/lib/ds/plarenas.h \
335 nsprpub/lib/libc/include/plbase64.h \
336 nsprpub/lib/libc/include/plerror.h \
337 nsprpub/lib/libc/include/plgetopt.h \
338 nsprpub/lib/ds/plhash.h \
339 nsprpub/lib/libc/include/plresolv.h \
340 nsprpub/lib/libc/include/plstr.h \
341 nsprpub/pr/include/pratom.h \
342 nsprpub/pr/include/prbit.h \
343 nsprpub/pr/include/prclist.h \
344 nsprpub/pr/include/prcmon.h \
345 nsprpub/pr/include/prcountr.h \
346 nsprpub/pr/include/prcvar.h \
347 nsprpub/pr/include/prdtoa.h \
348 nsprpub/pr/include/prenv.h \
349 nsprpub/pr/include/prerr.h \
350 nsprpub/pr/include/prerror.h \
351 nsprpub/pr/include/prinet.h \
352 nsprpub/pr/include/prinit.h \
353 nsprpub/pr/include/prinrval.h \
354 nsprpub/pr/include/prio.h \
355 nsprpub/pr/include/pripcsem.h \
356 nsprpub/pr/include/prlink.h \
357 nsprpub/pr/include/prlock.h \
358 nsprpub/pr/include/prlog.h \
359 nsprpub/pr/include/prlong.h \
360 nsprpub/pr/include/prmem.h \
361 nsprpub/pr/include/prmon.h \
362 nsprpub/pr/include/prmwait.h \
363 nsprpub/pr/include/prnetdb.h \
364 nsprpub/pr/include/prolock.h \
365 nsprpub/pr/include/prpdce.h \
366 nsprpub/pr/include/prprf.h \
367 nsprpub/pr/include/prproces.h \
368 nsprpub/pr/include/prrng.h \
369 nsprpub/pr/include/prrwlock.h \
370 nsprpub/pr/include/prshm.h \
371 nsprpub/pr/include/prshma.h \
372 nsprpub/pr/include/prsystem.h \
373 nsprpub/pr/include/prthread.h \
374 nsprpub/pr/include/prtime.h \
375 nsprpub/pr/include/prtpool.h \
376 nsprpub/pr/include/prtrace.h \
377 nsprpub/pr/include/prtypes.h \
378 nsprpub/pr/include/prvrsion.h \
379 nsprpub/pr/include/prwin16.h \
380 nsprpub/pr/include/md/_vbox.cfg=>prcpucfg.h \
381
382NSPRPUB-MD-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/nsprpub/md
383NSPRPUB-MD-HEADERS_IFFLAGS = -m 644
384NSPRPUB-MD-HEADERS_SOURCES = \
385 nsprpub/pr/include/md/_darwin.h \
386 nsprpub/pr/include/md/_freebsd.h \
387 nsprpub/pr/include/md/_l4v2.h \
388 nsprpub/pr/include/md/_linux.h \
389 nsprpub/pr/include/md/_macos.h \
390 nsprpub/pr/include/md/_netbsd.h \
391 nsprpub/pr/include/md/_openbsd.h \
392 nsprpub/pr/include/md/_os2_errors.h \
393 nsprpub/pr/include/md/_os2.h \
394 nsprpub/pr/include/md/_pcos.h \
395 nsprpub/pr/include/md/_solaris.h \
396 nsprpub/pr/include/md/_unix_errors.h \
397 nsprpub/pr/include/md/_unixos.h \
398 nsprpub/pr/include/md/_pth.h \
399 nsprpub/pr/include/md/prosdep.h \
400 \
401 nsprpub/pr/include/md/_freebsd.cfg \
402 nsprpub/pr/include/md/_linux.cfg \
403 nsprpub/pr/include/md/_darwin.cfg \
404 nsprpub/pr/include/md/_netbsd.cfg \
405 nsprpub/pr/include/md/_openbsd.cfg \
406 nsprpub/pr/include/md/_os2.cfg \
407 nsprpub/pr/include/md/_solaris32.cfg \
408 nsprpub/pr/include/md/_solaris64.cfg \
409 nsprpub/pr/include/md/_l4v2.cfg
410
411NSPRPUB-OBS-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/nsprpub/obsolete
412NSPRPUB-OBS-HEADERS_IFFLAGS = -m 644
413NSPRPUB-OBS-HEADERS_SOURCES = \
414 nsprpub/pr/include/obsolete/pralarm.h \
415 nsprpub/pr/include/obsolete/probslet.h \
416 nsprpub/pr/include/obsolete/protypes.h \
417 nsprpub/pr/include/obsolete/prsem.h
418
419NSPRPUB-PRIV-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/nsprpub/private
420NSPRPUB-PRIV-HEADERS_IFFLAGS = -m 644
421NSPRPUB-PRIV-HEADERS_SOURCES = \
422 nsprpub/pr/include/private/pprio.h \
423 nsprpub/pr/include/private/pprthred.h \
424 nsprpub/pr/include/private/prpriv.h
425
426STRING-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/string
427STRING-HEADERS_IFFLAGS = -m 644
428STRING-HEADERS_SOURCES = \
429 xpcom/string/public/nsAString.h \
430 xpcom/string/public/nsAlgorithm.h \
431 xpcom/string/public/nsCharTraits.h \
432 xpcom/string/public/nsDependentString.h \
433 xpcom/string/public/nsDependentSubstring.h \
434 xpcom/string/public/nsEmbedString.h \
435 xpcom/string/public/nsLiteralString.h \
436 xpcom/string/public/nsObsoleteAString.h \
437 xpcom/string/public/nsPrintfCString.h \
438 xpcom/string/public/nsPromiseFlatString.h \
439 xpcom/string/public/nsReadableUtils.h \
440 xpcom/string/public/nsString.h \
441 xpcom/string/public/nsStringAPI.h \
442 xpcom/string/public/nsStringFwd.h \
443 xpcom/string/public/nsStringIterator.h \
444 xpcom/string/public/nsSubstring.h \
445 xpcom/string/public/nsSubstringTuple.h \
446 xpcom/string/public/nsTAString.h \
447 xpcom/string/public/nsTDependentString.h \
448 xpcom/string/public/nsTDependentSubstring.h \
449 xpcom/string/public/nsTObsoleteAString.h \
450 xpcom/string/public/nsTPromiseFlatString.h \
451 xpcom/string/public/nsTString.h \
452 xpcom/string/public/nsTSubstring.h \
453 xpcom/string/public/nsTSubstringTuple.h \
454 xpcom/string/public/nsUTF8Utils.h \
455 xpcom/string/public/nsXPIDLString.h \
456 xpcom/string/public/string-template-def-char.h \
457 xpcom/string/public/string-template-def-unichar.h \
458 xpcom/string/public/string-template-undef.h
459
460XPCOM-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/xpcom
461XPCOM-HEADERS_IFFLAGS = -m 644
462XPCOM-HEADERS_SOURCES = \
463 xpcom/base/nsAgg.h \
464 xpcom/io/nsAppDirectoryServiceDefs.h \
465 xpcom/ds/nsArray.h \
466 xpcom/ds/nsArrayEnumerator.h \
467 xpcom/ds/nsAtomService.h \
468 xpcom/ds/nsAutoBuffer.h \
469 xpcom/threads/nsAutoLock.h \
470 xpcom/base/nsAutoPtr.h \
471 xpcom/ds/nsBaseHashtable.h \
472 xpcom/ds/nsCOMArray.h \
473 xpcom/ds/nsCRT.h \
474 xpcom/components/nsCategoryManagerUtils.h \
475 xpcom/ds/nsCheapSets.h \
476 xpcom/ds/nsClassHashtable.h \
477 xpcom/base/nsCom.h \
478 xpcom/components/nsComponentManagerObsolete.h \
479 xpcom/components/nsComponentManagerUtils.h \
480 xpcom/ds/nsCppSharedAllocator.h \
481 xpcom/ds/nsDataHashtable.h \
482 xpcom/base/nsDebugImpl.h \
483 xpcom/ds/nsDeque.h \
484 xpcom/io/nsDirectoryService.h \
485 xpcom/io/nsDirectoryServiceDefs.h \
486 xpcom/io/nsDirectoryServiceUtils.h \
487 xpcom/ds/nsDoubleHashtable.h \
488 xpcom/ds/nsEnumeratorUtils.h \
489 xpcom/base/nsError.h \
490 xpcom/io/nsEscape.h \
491 xpcom/threads/nsEventQueueUtils.h \
492 xpcom/io/nsFastLoadPtr.h \
493 xpcom/io/nsFastLoadService.h \
494 xpcom/ds/nsFixedSizeAllocator.h \
495 xpcom/ds/nsHashKeys.h \
496 xpcom/ds/nsHashSets.h \
497 xpcom/ds/nsHashtable.h \
498 xpcom/base/nsIAllocator.h \
499 xpcom/ds/nsIByteBuffer.h \
500 xpcom/base/nsID.h \
501 xpcom/base/nsIID.h \
502 xpcom/components/nsIServiceManagerObsolete.h \
503 xpcom/components/nsIServiceManagerUtils.h \
504 xpcom/base/nsISupportsBase.h \
505 xpcom/base/nsISupportsObsolete.h \
506 xpcom/ds/nsIUnicharBuffer.h \
507 xpcom/io/nsIUnicharInputStream.h \
508 xpcom/ds/nsInt64.h \
509 xpcom/ds/nsInterfaceHashtable.h \
510 xpcom/io/nsLinebreakConverter.h \
511 xpcom/io/nsLocalFile.h \
512 xpcom/io/nsLocalFileUnix.h \
513 xpcom/io/nsLocalFileOS2.h \
514 xpcom/io/nsLocalFileOSX.h \
515 xpcom/components/nsModule.h \
516 xpcom/io/nsMultiplexInputStream.h \
517 xpcom/io/nsNativeCharsetUtils.h \
518 xpcom/components/nsNativeComponentLoader.h \
519 xpcom/ds/nsObserverService.h \
520 xpcom/components/nsObsoleteModuleLoading.h \
521 xpcom/threads/nsProcess.h \
522 xpcom/proxy/public/nsProxiedService.h \
523 xpcom/proxy/public/nsProxyEvent.h \
524 xpcom/proxy/public/nsProxyRelease.h \
525 xpcom/ds/nsQuickSort.h \
526 xpcom/ds/nsRecyclingAllocator.h \
527 xpcom/ds/nsRefPtrHashtable.h \
528 xpcom/io/nsScriptableInputStream.h \
529 xpcom/ds/nsStaticAtom.h \
530 xpcom/components/nsStaticComponent.h \
531 xpcom/ds/nsStaticNameTable.h \
532 xpcom/io/nsStorageStream.h \
533 xpcom/io/nsStreamUtils.h \
534 xpcom/ds/nsStringEnumerator.h \
535 xpcom/io/nsStringIO.h \
536 xpcom/io/nsStringStream.h \
537 xpcom/ds/nsSupportsArray.h \
538 xpcom/ds/nsSupportsPrimitives.h \
539 xpcom/ds/nsTHashtable.h \
540 xpcom/ds/nsTextFormatter.h \
541 xpcom/ds/nsTime.h \
542 xpcom/base/nsTraceRefcntImpl.h \
543 xpcom/ds/nsUnitConversion.h \
544 xpcom/ds/nsValueArray.h \
545 xpcom/ds/nsVariant.h \
546 xpcom/ds/nsVoidArray.h \
547 xpcom/base/nsWeakPtr.h \
548 xpcom/build/nsXPCOM.h \
549 xpcom/build/nsXPCOMCID.h \
550 xpcom/base/nscore.h \
551 xpcom/ds/pldhash.h \
552 xpcom/threads/plevent.h \
553 xpcom/components/xcDll.h \
554 xpcom/typelib/xpt/public/xpt_arena.h \
555 xpcom/typelib/xpt/public/xpt_struct.h \
556 xpcom/typelib/xpt/public/xpt_xdr.h \
557 xpcom/reflect/xptcall/public/xptcall.h \
558 xpcom/reflect/xptcall/public/xptcstubsdecl.inc \
559 xpcom/reflect/xptcall/public/xptcstubsdef.inc \
560 xpcom/reflect/xptinfo/public/xptinfo.h \
561 \
562 xpcom/glue/nsIInterfaceRequestorUtils.h \
563 xpcom/glue/nsISupportsImpl.h \
564 xpcom/glue/nsISupportsUtils.h \
565 xpcom/glue/nsIWeakReferenceUtils.h \
566 \
567 xpcom/glue/nsCOMPtr.h \
568 xpcom/glue/nsDebug.h \
569 xpcom/glue/nsGenericFactory.h \
570 xpcom/glue/nsIGenericFactory.h \
571 xpcom/glue/nsMemory.h \
572 xpcom/glue/nsTraceRefcnt.h \
573 xpcom/glue/nsWeakReference.h \
574 \
575 xpcom/glue/standalone/nsXPCOMGlue.h \
576 \
577 xpcom-config.h
578
579IPCD-HEADERS_INST = $(INST_SDK)/bindings/xpcom/include/ipcd
580IPCD-HEADERS_IFFLAGS = -m 644
581IPCD-HEADERS_SOURCES = \
582 ipc/ipcd/client/public/ipcCID.h \
583 ipc/ipcd/extensions/lock/public/ipcLockCID.h \
584 ipc/ipcd/util/public/ipcMessageReader.h \
585 ipc/ipcd/util/public/ipcMessageWriter.h \
586 ipc/ipcd/daemon/public/ipcModule.h \
587 ipc/ipcd/daemon/public/ipcModuleUtil.h \
588 ipc/ipcd/client/public/ipcdclient.h
589
590
591#
592# The IDL compiler.
593#
594# We build it statically because we cannot rely on additional .a files
595# like in the original build
596#
597xpidl_TEMPLATE = XPCOMBLDPROG
598xpidl_DEFS = EXPORT_XPT_API
599## @todo This assumes HOST == TARGET.
600xpidl_INST = $(INST_BIN)
601xpidl_SOURCES = \
602 xpcom/typelib/xpidl/xpidl.c \
603 xpcom/typelib/xpidl/xpidl_idl.c \
604 xpcom/typelib/xpidl/xpidl_util.c \
605 xpcom/typelib/xpidl/xpidl_header.c \
606 xpcom/typelib/xpidl/xpidl_typelib.c \
607 xpcom/typelib/xpidl/xpidl_doc.c \
608 xpcom/typelib/xpidl/xpidl_java.c \
609 xpcom/typelib/xpt/src/xpt_arena.c \
610 xpcom/typelib/xpt/src/xpt_struct.c \
611 xpcom/typelib/xpt/src/xpt_xdr.c
612
613ifeq ($(KBUILD_TARGET),os2)
614 # glib and libIDL needed by XPCOM on OS/2.
615 ifeq ($(VBOX_PATH_GLIB),)
616 VBOX_PATH_GLIB := $(lastword $(sort $(wildcard $(PATH_DEVTOOLS_TRG)/glibidl/*/glibidl/gcc335)))
617 endif
618 VBOX_PATH_LIBIDL ?= $(VBOX_PATH_GLIB)
619 ifeq ($(wildcard $(VBOX_PATH_GLIB)),)
620 $(warning VBOX_PATH_GLIB is "$(VBOX_PATH_GLIB)" which is not a valid directory!)
621 endif
622 ifeq ($(wildcard $(VBOX_PATH_LIBIDL)),)
623 $(warning VBOX_PATH_LIBIDL is "$(VBOX_PATH_LIBIDL)" which is not a valid directory!)
624 endif
625 xpidl_INCS = \
626 $(VBOX_PATH_LIBIDL)/include \
627 $(VBOX_PATH_GLIB)/include
628 xpidl_LIBS = \
629 $(VBOX_PATH_LIBIDL)/lib/libidl.lib \
630 $(VBOX_PATH_LIBIDL)/lib/glib.lib
631 # install necessary DLLs to the same place where xpidl goes
632 INSTALLS += xpidl-DLLS
633 xpidl_ORDERDEPS = xpidl-DLLS
634 xpidl-DLLS_INST = $(xpidl_INST)
635 # static libraries of these may be provided instead,
636 # so copy DLLs only when they are present
637 xpidl-DLLS_SOURCES += $(wildcard $(VBOX_PATH_GLIB)/lib/glib.dll)
638 xpidl-DLLS_SOURCES += $(wildcard $(VBOX_PATH_LIBIDL)/lib/libIDL.dll)
639else
640 # We do these ONCE.
641 libIDL_config_cflags := $(shell $(VBOX_LIBIDL_CONFIG) --cflags)
642 libIDL_config_libs := $(shell $(VBOX_LIBIDL_CONFIG) --libs)
643 xpidl_CFLAGS = \
644 $(libIDL_config_cflags)
645 xpidl_LDFLAGS = \
646 $(libIDL_config_libs)
647endif
648
649#
650# The XPT linker.
651#
652xpt_link_TEMPLATE = XPCOMBLDPROG
653xpt_link_SOURCES = \
654 xpcom/typelib/xpt/tools/xpt_link.c \
655 xpcom/typelib/xpt/src/xpt_arena.c \
656 xpcom/typelib/xpt/src/xpt_struct.c \
657 xpcom/typelib/xpt/src/xpt_xdr.c
658
659
660#
661# The NSPR Library.
662#
663VBox-xpcom-nspr_TEMPLATE = XPCOM
664VBox-xpcom-nspr_NOINST = 1
665VBox-xpcom-nspr_DEFS = \
666 _NSPR_BUILD_ \
667 HAVE_LCHOWN=1 \
668 HAVE_STRERROR=1 \
669 FORCE_PR_LOG
670VBox-xpcom-nspr_DEFS += \
671 VBOX_USE_IPRT_IN_NSPR
672VBox-xpcom-nspr_DEFS.darwin = \
673 HAVE_BSD_FLOCK=1 \
674 _PR_PTHREADS
675VBox-xpcom-nspr_DEFS.freebsd = \
676 FREEBSD=1 \
677 HAVE_CVAR_BUILT_ON_SEM \
678 _PR_PTHREADS
679## @todo filling in the missing stuff, please don't just copy it from linux.
680# FIXME: LINUX should be defined by _linux.cfg
681VBox-xpcom-nspr_DEFS.linux = \
682 LINUX=1 \
683 _POSIX_SOURCE=1 \
684 _BSD_SOURCE=1 \
685 _SVID_SOURCE=1 \
686 _REENTRANT=1 \
687 _LARGEFILE64_SOURCE=1 \
688 HAVE_FCNTL_FILE_LOCKING=1 \
689 HAVE_CVAR_BUILT_ON_SEM \
690 _PR_PTHREADS
691# _BSD_SOURCE is here to keep the Glibc header files happy and make them include the right things
692# FIXME: L4 should be defined by _linux.cfg
693VBox-xpcom-nspr_DEFS.l4 = \
694 L4=1 \
695 _REENTRANT=1 \
696 _LARGEFILE64_SOURCE=1 \
697 _POSIX_SOURCE=1 \
698 _BSD_SOURCE=1 \
699 HAVE_FCNTL_FILE_LOCKING=1 \
700 HAVE_CVAR_BUILT_ON_SEM
701VBox-xpcom-nspr_DEFS.netbsd = \
702 _PR_PTHREADS
703VBox-xpcom-nspr_DEFS.openbsd = \
704 _PR_PTHREADS
705VBox-xpcom-nspr_DEFS.os2 =
706VBox-xpcom-nspr_DEFS.solaris = \
707 HAVE_FCNTL_FILE_LOCKING=1 \
708 _PR_PTHREADS
709VBox-xpcom-nspr_INCS = \
710 nsprpub/pr/include/private \
711 $(PATH_VBox-xpcom-nspr)
712
713VBox-xpcom-nspr_SOURCES = \
714 nsprpub/pr/src/io/prfdcach.c \
715 nsprpub/pr/src/io/prmwait.c \
716 nsprpub/pr/src/io/priometh.c \
717 nsprpub/pr/src/io/pripv6.c \
718 nsprpub/pr/src/io/prmapopt.c \
719 nsprpub/pr/src/io/prlayer.c \
720 nsprpub/pr/src/io/prlog.c \
721 nsprpub/pr/src/io/prmmap.c \
722 nsprpub/pr/src/io/prpolevt.c \
723 nsprpub/pr/src/io/prprf.c \
724 nsprpub/pr/src/io/prscanf.c \
725 nsprpub/pr/src/io/prstdio.c \
726 nsprpub/pr/src/linking/prlink.c \
727 nsprpub/pr/src/malloc/prmalloc.c \
728 nsprpub/pr/src/malloc/prmem.c \
729 nsprpub/pr/src/md/prosdep.c \
730 nsprpub/pr/src/memory/prseg.c \
731 nsprpub/pr/src/memory/prshm.c \
732 nsprpub/pr/src/memory/prshma.c \
733 nsprpub/pr/src/misc/pralarm.c \
734 nsprpub/pr/src/misc/pratom.c \
735 nsprpub/pr/src/misc/prcountr.c \
736 nsprpub/pr/src/misc/prdtoa.c \
737 nsprpub/pr/src/misc/prenv.c \
738 nsprpub/pr/src/misc/prerr.c \
739 nsprpub/pr/src/misc/prerror.c \
740 nsprpub/pr/src/misc/prerrortable.c \
741 nsprpub/pr/src/misc/prinit.c \
742 nsprpub/pr/src/misc/prinrval.c \
743 nsprpub/pr/src/misc/pripc.c \
744 nsprpub/pr/src/misc/prlog2.c \
745 nsprpub/pr/src/misc/prlong.c \
746 nsprpub/pr/src/misc/prnetdb.c \
747 nsprpub/pr/src/misc/prolock.c \
748 nsprpub/pr/src/misc/prrng.c \
749 nsprpub/pr/src/misc/prsystem.c \
750 nsprpub/pr/src/misc/prtime.c \
751 nsprpub/pr/src/misc/prthinfo.c \
752 nsprpub/pr/src/misc/prtpool.c \
753 nsprpub/pr/src/misc/prtrace.c \
754 nsprpub/pr/src/threads/prcmon.c \
755 nsprpub/pr/src/threads/prrwlock.c \
756 nsprpub/pr/src/threads/prtpd.c \
757 nsprpub/pr/src/prvrsion.c \
758 nsprpub/lib/ds/plarena.c \
759 nsprpub/lib/ds/plhash.c \
760 nsprpub/lib/libc/src/strlen.c \
761 nsprpub/lib/libc/src/strcpy.c \
762 nsprpub/lib/libc/src/strdup.c \
763 nsprpub/lib/libc/src/strcat.c \
764 nsprpub/lib/libc/src/strcmp.c \
765 nsprpub/lib/libc/src/strccmp.c \
766 nsprpub/lib/libc/src/strchr.c \
767 nsprpub/lib/libc/src/strpbrk.c \
768 nsprpub/lib/libc/src/strstr.c \
769 nsprpub/lib/libc/src/strcstr.c \
770 nsprpub/lib/libc/src/strtok.c \
771 nsprpub/lib/libc/src/base64.c \
772 nsprpub/lib/libc/src/plerror.c \
773 nsprpub/lib/libc/src/plgetopt.c
774
775ifeq ($(filter-out darwin freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),) # unixish
776VBox-xpcom-nspr_SOURCES += \
777 nsprpub/pr/src/md/unix/unix.c \
778 nsprpub/pr/src/md/unix/unix_errors.c \
779 nsprpub/pr/src/md/unix/uxproces.c \
780 nsprpub/pr/src/md/unix/uxrng.c \
781 nsprpub/pr/src/md/unix/uxshm.c \
782 nsprpub/pr/src/md/unix/uxwrap.c \
783 nsprpub/pr/src/pthreads/ptio.c \
784 nsprpub/pr/src/pthreads/ptsynch.c \
785 nsprpub/pr/src/pthreads/ptthread.c \
786 nsprpub/pr/src/pthreads/ptmisc.c
787endif
788
789VBox-xpcom-nspr_SOURCES.darwin = nsprpub/pr/src/md/unix/darwin.c
790VBox-xpcom-nspr_SOURCES.darwin.x86 = nsprpub/pr/src/md/unix/os_Darwin_x86.s
791
792VBox-xpcom-nspr_SOURCES.freebsd = nsprpub/pr/src/md/unix/freebsd.c
793
794VBox-xpcom-nspr_SOURCES.l4 = \
795 nsprpub/pr/src/io/prfile.c /* why not for Linux? */ \
796 nsprpub/pr/src/io/prio.c /* "" "" "" "" */ \
797 nsprpub/pr/src/io/prsocket.c \
798 nsprpub/pr/src/md/unix/unix.c \
799 nsprpub/pr/src/md/unix/unix_errors.c \
800 nsprpub/pr/src/md/unix/uxpoll.c \
801 nsprpub/pr/src/md/unix/uxproces.c \
802 nsprpub/pr/src/md/unix/uxrng.c \
803 nsprpub/pr/src/md/unix/uxshm.c \
804 nsprpub/pr/src/md/unix/uxwrap.c \
805 nsprpub/pr/src/md/unix/l4env.c \
806 nsprpub/pr/src/threads/prcthr.c \
807 nsprpub/pr/src/threads/prmon.c \
808 nsprpub/pr/src/threads/combined/prucpu.c \
809 nsprpub/pr/src/threads/combined/prucv.c \
810 nsprpub/pr/src/threads/combined/prulock.c \
811 nsprpub/pr/src/threads/combined/prustack.c \
812 nsprpub/pr/src/threads/combined/pruthr.c
813# nsprpub/pr/src/md/l4env/prnetdb.c \
814# nsprpub/pr/src/md/l4env/threads.c
815VBox-xpcom-nspr_SOURCES.l4.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s
816VBox-xpcom-nspr_SOURCES.l4.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s
817
818VBox-xpcom-nspr_SOURCES.linux = nsprpub/pr/src/md/unix/linux.c
819VBox-xpcom-nspr_SOURCES.linux.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s
820VBox-xpcom-nspr_SOURCES.linux.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s
821
822VBox-xpcom-nspr_SOURCES.os2 = \
823 nsprpub/pr/src/io/prdir.c \
824 nsprpub/pr/src/io/prfile.c \
825 nsprpub/pr/src/io/prio.c \
826 nsprpub/pr/src/io/prsocket.c \
827 nsprpub/pr/src/md/os2/os2misc.c \
828 nsprpub/pr/src/md/os2/os2sem.c \
829 nsprpub/pr/src/md/os2/os2inrval.c \
830 nsprpub/pr/src/md/os2/os2gc.c \
831 nsprpub/pr/src/md/os2/os2thred.c \
832 nsprpub/pr/src/md/os2/os2io.c \
833 nsprpub/pr/src/md/os2/os2cv.c \
834 nsprpub/pr/src/md/os2/os2sock.c \
835 nsprpub/pr/src/md/os2/os2_errors.c \
836 nsprpub/pr/src/md/os2/os2poll.c \
837 nsprpub/pr/src/md/os2/os2rng.c \
838 nsprpub/pr/src/threads/prdump.c \
839 nsprpub/pr/src/threads/prmon.c \
840 nsprpub/pr/src/threads/prsem.c \
841 nsprpub/pr/src/threads/prcthr.c \
842 nsprpub/pr/src/threads/combined/prucpu.c \
843 nsprpub/pr/src/threads/combined/prucv.c \
844 nsprpub/pr/src/threads/combined/prulock.c \
845 nsprpub/pr/src/threads/combined/prustack.c \
846 nsprpub/pr/src/threads/combined/pruthr.c
847# gcc/emx sources
848VBox-xpcom-nspr_SOURCES.os2 += \
849 nsprpub/pr/src/md/os2/os2emx.s \
850 nsprpub/pr/src/md/os2/os2vaclegacy.s
851# IBM VAC sources (not used)
852#VBox-xpcom-nspr_SOURCES.os2 += \
853# nsprpub/pr/src/md/os2/os2vacpp.asm
854
855VBox-xpcom-nspr_SOURCES.solaris = nsprpub/pr/src/md/unix/solaris.c
856VBox-xpcom-nspr_SOURCES.solaris.x86 = nsprpub/pr/src/md/unix/os_SunOS_x86.s
857VBox-xpcom-nspr_SOURCES.solaris.amd64 = nsprpub/pr/src/md/unix/os_SunOS_x86_64.s
858
859# generate build stamps
860nsprpub/pr/src/prvrsion.c_DEPS = $(PATH_VBox-xpcom-nspr)/_pr_bld.h
861nsprpub/lib/ds/plvrsion.c_DEPS = $(PATH_VBox-xpcom-nspr)/_pl_bld.h
862VBox-xpcom-nspr_CLEAN += \
863 $(PATH_VBox-xpcom-nspr)/_pr_bld.h \
864 $(PATH_VBox-xpcom-nspr)/_pl_bld.h
865
866$$(PATH_VBox-xpcom-nspr)/_pr_bld.h: | $$(PATH_VBox-xpcom-nspr)/
867 $(call MSG_GENERATE,,$@)
868 $(QUIET)$(APPEND) -t $@ '#define _BUILD_STRING "$(date +%Y-%m-%d %T)"'
869
870$$(PATH_VBox-xpcom-nspr)/_pl_bld.h: | $$(PATH_VBox-xpcom-nspr)/
871 $(call MSG_GENERATE,,$@)
872 $(QUIET)$(APPEND) -t $@ '#define _BUILD_STRING "$(date +%Y-%m-%d %T)"'
873
874
875VBox-xpcom-typelib_TEMPLATE = XPCOM
876VBox-xpcom-typelib_NOINST = 1
877VBox-xpcom-typelib_SOURCES = \
878 xpcom/typelib/xpt/src/xpt_arena.c \
879 xpcom/typelib/xpt/src/xpt_struct.c \
880 xpcom/typelib/xpt/src/xpt_xdr.c
881
882VBox-xpcom-string_TEMPLATE = XPCOM
883VBox-xpcom-string_NOINST = 1
884VBox-xpcom-string_SOURCES = \
885 xpcom/string/src/nsAString.cpp \
886 xpcom/string/src/nsDependentSubstring.cpp \
887 xpcom/string/src/nsObsoleteAStringThunk.cpp \
888 xpcom/string/src/nsPrintfCString.cpp \
889 xpcom/string/src/nsPromiseFlatString.cpp \
890 xpcom/string/src/nsReadableUtils.cpp \
891 xpcom/string/src/nsSubstring.cpp \
892 xpcom/string/src/nsSubstringTuple.cpp \
893 xpcom/string/src/nsString.cpp \
894 xpcom/string/src/nsStringComparator.cpp \
895 xpcom/string/src/nsStringObsolete.cpp
896
897VBox-xpcom-base_TEMPLATE = XPCOM
898VBox-xpcom-base_NOINST = 1
899VBox-xpcom-base_DEFS = _IMPL_NS_COM
900VBox-xpcom-base_SOURCES = \
901 xpcom/base/nsAllocator.cpp \
902 xpcom/base/nsConsoleMessage.cpp \
903 xpcom/base/nsConsoleService.cpp \
904 xpcom/base/nsDebugImpl.cpp \
905 xpcom/base/nsErrorService.cpp \
906 xpcom/base/nsExceptionService.cpp \
907 xpcom/base/nsID.cpp \
908 xpcom/base/nsMemoryImpl.cpp \
909 xpcom/base/nsTraceRefcntImpl.cpp \
910 xpcom/base/nsStackFrameUnix.cpp
911
912VBox-xpcom-ds_TEMPLATE = XPCOM
913VBox-xpcom-ds_NOINST = 1
914VBox-xpcom-ds_DEFS = _IMPL_NS_COM
915VBox-xpcom-ds_SOURCES = \
916 xpcom/ds/pldhash.c \
917 xpcom/ds/nsAtomTable.cpp \
918 xpcom/ds/nsAtomService.cpp \
919 xpcom/ds/nsByteBuffer.cpp \
920 xpcom/ds/nsCheapSets.cpp \
921 xpcom/ds/nsCRT.cpp \
922 xpcom/ds/nsDeque.cpp \
923 xpcom/ds/nsEmptyEnumerator.cpp \
924 xpcom/ds/nsEnumeratorUtils.cpp \
925 xpcom/ds/nsFixedSizeAllocator.cpp \
926 xpcom/ds/nsHashSets.cpp \
927 xpcom/ds/nsHashtable.cpp \
928 xpcom/ds/nsObserverList.cpp \
929 xpcom/ds/nsObserverService.cpp \
930 xpcom/ds/nsProperties.cpp \
931 xpcom/ds/nsPersistentProperties.cpp \
932 xpcom/ds/nsQuickSort.cpp \
933 xpcom/ds/nsRecyclingAllocator.cpp \
934 xpcom/ds/nsStaticNameTable.cpp \
935 xpcom/ds/nsStringEnumerator.cpp \
936 xpcom/ds/nsSupportsArray.cpp \
937 xpcom/ds/nsSupportsArrayEnumerator.cpp \
938 xpcom/ds/nsSupportsPrimitives.cpp \
939 xpcom/ds/nsTHashtable.cpp \
940 xpcom/ds/nsUnicharBuffer.cpp \
941 xpcom/ds/nsVariant.cpp \
942 xpcom/ds/nsVoidArray.cpp \
943 xpcom/ds/nsTextFormatter.cpp \
944 xpcom/ds/nsTimelineService.cpp \
945 xpcom/ds/nsValueArray.cpp \
946 xpcom/ds/nsCOMArray.cpp \
947 xpcom/ds/nsArray.cpp \
948 xpcom/ds/nsArrayEnumerator.cpp
949# xpcom/ds/nsHashPropertyBag.cpp
950
951# @todo what about MOZ_USER_DIR?
952VBox-xpcom-io_TEMPLATE = XPCOM
953VBox-xpcom-io_NOINST = 1
954VBox-xpcom-io_DEFS = _IMPL_NS_COM MOZ_USER_DIR=\".mozilla\"
955VBox-xpcom-io_INCS.darwin = \
956 xpcom/MoreFiles
957VBox-xpcom-io_SOURCES = \
958 xpcom/io/nsAppFileLocationProvider.cpp \
959 xpcom/io/nsBinaryStream.cpp \
960 xpcom/io/nsByteArrayInputStream.cpp \
961 xpcom/io/nsDirectoryService.cpp \
962 xpcom/io/nsEscape.cpp \
963 xpcom/io/nsFastLoadFile.cpp \
964 xpcom/io/nsFastLoadService.cpp \
965 xpcom/io/nsInputStreamTee.cpp \
966 xpcom/io/nsLinebreakConverter.cpp \
967 xpcom/io/nsLocalFileCommon.cpp \
968 xpcom/io/nsMultiplexInputStream.cpp \
969 xpcom/io/nsPipe3.cpp \
970 xpcom/io/nsStreamUtils.cpp \
971 xpcom/io/nsScriptableInputStream.cpp \
972 xpcom/io/nsSegmentedBuffer.cpp \
973 xpcom/io/SpecialSystemDirectory.cpp \
974 xpcom/io/nsStorageStream.cpp \
975 xpcom/io/nsStringStream.cpp \
976 xpcom/io/nsUnicharInputStream.cpp \
977 xpcom/io/nsNativeCharsetUtils.cpp
978VBox-xpcom-io_SOURCES.darwin = \
979 xpcom/io/nsLocalFileOSX.cpp \
980 xpcom/MoreFiles/FSCopyObject.c \
981 xpcom/MoreFiles/MoreFilesX.c
982VBox-xpcom-io_SOURCES.l4 = \
983 xpcom/io/nsLocalFileL4.cpp
984ifeq ($(filter-out freebsd linux netbsd openbsd solaris,$(KBUILD_TARGET)),)
985VBox-xpcom-io_SOURCES += \
986 xpcom/io/nsLocalFileUnix.cpp
987endif
988VBox-xpcom-io_SOURCES.os2 = \
989 xpcom/io/nsLocalFileOS2.cpp
990
991VBox-xpcom-components_TEMPLATE = XPCOM
992VBox-xpcom-components_NOINST = 1
993VBox-xpcom-components_DEFS = _IMPL_NS_COM EXPORT_XPTI_API
994VBox-xpcom-components_SOURCES = \
995 xpcom/components/nsCategoryManager.cpp \
996 xpcom/components/nsComponentManager.cpp \
997 xpcom/components/nsComponentManagerObsolete.cpp \
998 xpcom/components/nsNativeComponentLoader.cpp \
999 xpcom/components/nsServiceManagerObsolete.cpp \
1000 xpcom/components/xcDll.cpp \
1001 xpcom/components/nsStaticComponentLoader.cpp
1002
1003VBox-xpcom-threads_TEMPLATE = XPCOM
1004VBox-xpcom-threads_NOINST = 1
1005VBox-xpcom-threads_DEFS = _IMPL_NS_COM
1006VBox-xpcom-threads_SOURCES = \
1007 xpcom/threads/plevent.c \
1008 xpcom/threads/nsAutoLock.cpp \
1009 xpcom/threads/nsEnvironment.cpp \
1010 xpcom/threads/nsEventQueue.cpp \
1011 xpcom/threads/nsEventQueueService.cpp \
1012 xpcom/threads/nsThread.cpp \
1013 xpcom/threads/nsTimerImpl.cpp \
1014 xpcom/threads/nsProcessCommon.cpp \
1015 xpcom/threads/TimerThread.cpp
1016
1017VBox-xpcom-xptinfo_TEMPLATE = XPCOM
1018VBox-xpcom-xptinfo_NOINST = 1
1019VBox-xpcom-xptinfo_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTI_API EXPORT_XPT_API
1020VBox-xpcom-xptinfo_SOURCES = \
1021 xpcom/reflect/xptinfo/src/xptiFile.cpp \
1022 xpcom/reflect/xptinfo/src/xptiInterfaceInfo.cpp \
1023 xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp \
1024 xpcom/reflect/xptinfo/src/xptiManifest.cpp \
1025 xpcom/reflect/xptinfo/src/xptiMisc.cpp \
1026 xpcom/reflect/xptinfo/src/xptiTypelibGuts.cpp \
1027 xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp \
1028 xpcom/reflect/xptinfo/src/xptiZipItem.cpp \
1029 xpcom/reflect/xptinfo/src/xptiZipLoader.cpp
1030
1031
1032VBox-xpcom-xptcall_TEMPLATE = XPCOM
1033VBox-xpcom-xptcall_NOINST = 1
1034VBox-xpcom-xptcall_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTC_API
1035VBox-xpcom-xptcall_DEFS.darwin = KEEP_STACK_16_BYTE_ALIGNED
1036VBox-xpcom-xptcall_DEFS.l4 = L4
1037VBox-xpcom-xptcall_DEFS.os2 = MOZ_NEED_LEADING_UNDERSCORE
1038VBox-xpcom-xptcall_INCS.os2 = xpcom/reflect/xptcall/src/md/unix
1039VBox-xpcom-xptcall_SOURCES = xpcom/reflect/xptcall/src/xptcall.cpp
1040VBox-xpcom-xptcall_SOURCES.darwin.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_x86.cpp \
1041 xpcom/reflect/xptcall/src/md/unix/xptcstubs_unixish_x86.cpp
1042VBox-xpcom-xptcall_SOURCES.freebsd.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
1043 xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
1044VBox-xpcom-xptcall_SOURCES.freebsd.amd64= xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
1045 xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp ## ???
1046VBox-xpcom-xptcall_SOURCES.linux.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
1047 xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
1048VBox-xpcom-xptcall_SOURCES.linux.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
1049 xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
1050VBox-xpcom-xptcall_SOURCES.os2 = xpcom/reflect/xptcall/src/md/os2/xptcinvoke_gcc_x86_os2.cpp \
1051 xpcom/reflect/xptcall/src/md/os2/xptcstubs_gcc_x86_os2.cpp
1052VBox-xpcom-xptcall_SOURCES.solaris.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_solaris.cpp \
1053 xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp
1054VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
1055 xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
1056
1057xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_solaris.cpp_CXXFLAGS = -O0
1058# -O0 works fine, while -O1 doesn't. The gcc man page can't be listing all the -f*
1059# stuff that -O1 enables, because when using the options without -O1, it's -fomit-frame-pointer
1060# that triggers is, while -O1 -fno-omit-frame-pointer does not work. Anyway, it's probably a gcc/mozila
1061# bug and it's not worth investigating as I'm not the maintainger of the solaris gcc port. [bird, 2007-09-17]
1062
1063
1064VBox-xpcom-proxy_TEMPLATE = XPCOM
1065VBox-xpcom-proxy_NOINST = 1
1066VBox-xpcom-proxy_DEFS = _IMPL_NS_COM EXPORT_XPTC_API EXPORT_XPTI_API
1067VBox-xpcom-proxy_SOURCES = xpcom/proxy/src/nsProxyEvent.cpp \
1068 xpcom/proxy/src/nsProxyEventClass.cpp \
1069 xpcom/proxy/src/nsProxyEventObject.cpp \
1070 xpcom/proxy/src/nsProxyObjectManager.cpp \
1071 xpcom/proxy/src/nsProxyRelease.cpp
1072
1073
1074#
1075# The VBoxXPCOM Glue static libraries.
1076#
1077# See http://developer.mozilla.org/en/docs/XPCOM_Glue for details about the
1078# original XPCOM glue library purpose and usage.
1079#
1080# We don't really use the glue library in the described way because we don't
1081# provide frozen APIs (yet), so all VBox XPCOM client applications are
1082# dependent on the given version of both the VBox XPCOM runtime (binary
1083# dependency) and VirtualBox component library (COM interface dependency). For
1084# this reason, VBox client applications link to the VBox XPCOM shared library
1085# directly (instead of linking to the standalone XPCOM glue library that would
1086# dynamically search for and load the installed XPCOM runtime). For the same
1087# reason, we link all parts of XPCOM into a single shared XPCOM library below
1088# (as opposed to the original XPCOM where e.g. NSPR lives in a separate DLL).
1089#
1090VBoxXPCOMGlue_COMMON_SOURCES = \
1091 xpcom/glue/nsCOMPtr.cpp \
1092 xpcom/glue/nsComponentManagerUtils.cpp \
1093 xpcom/glue/nsDebug.cpp \
1094 xpcom/glue/nsGenericFactory.cpp \
1095 xpcom/glue/nsIInterfaceRequestorUtils.cpp \
1096 xpcom/glue/nsMemory.cpp \
1097 xpcom/glue/nsTraceRefcnt.cpp \
1098 xpcom/glue/nsWeakReference.cpp
1099
1100# dependent glue library which goes in to the VBoxXPCOM shared library
1101VBoxXPCOMGlue_s_TEMPLATE = XPCOM
1102VBoxXPCOMGlue_s_NOINST = 1
1103VBoxXPCOMGlue_s_DEFS = _IMPL_NS_COM
1104VBoxXPCOMGlue_s_SOURCES = $(VBoxXPCOMGlue_COMMON_SOURCES)
1105
1106# standalone glue library which all third-party client apps (if any) will link with
1107# (currently not used anywhere (see above) but still built to make sure
1108# the code inside #ifdef XPCOM_GLUE compiles)
1109VBoxXPCOMGlue_TEMPLATE = XPCOM
1110VBoxXPCOMGlue_DEFS = XPCOM_GLUE
1111VBoxXPCOMGlue_SOURCES = $(VBoxXPCOMGlue_COMMON_SOURCES) \
1112 xpcom/glue/standalone/nsXPCOMGlue.cpp \
1113 xpcom/glue/standalone/nsGREDirServiceProvider.cpp
1114VBoxXPCOMGlue_SOURCES += \
1115 $(TARGET_VBox-xpcom-string)
1116#VBoxXPCOMGlue_INST = lib/ $(INST_SDK)lib/
1117
1118
1119#
1120# The VBoxXPCOM Shared Object, assembling all lib files.
1121#
1122VBoxXPCOM_TEMPLATE = XPCOM
1123VBoxXPCOM_NAME = $(basename $(notdir $(LIB_XPCOM)))
1124VBoxXPCOM_DEFS = BUILD_DCONNECT="1" _IMPL_NS_COM
1125ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
1126 VBoxXPCOM_LDFLAGS.linux = -Wl,--version-script=$(XPCOM_C_NAMESPACE_MAP)
1127 VBoxXPCOM_DEPS.linux += $(XPCOM_C_NAMESPACE_MAP)
1128# Disable temporarily, as Solaris doesn't support map files with non-trivial wildcards.
1129# VBoxXPCOM_LDFLAGS.solaris = -Wl,-M,$(XPCOM_C_NAMESPACE_MAP)
1130# VBoxXPCOM_DEPS.solaris += $(XPCOM_C_NAMESPACE_MAP)
1131endif
1132VBoxXPCOM_SOURCES = \
1133 xpcom/build/nsXPComInit.cpp \
1134 xpcom/build/nsStringAPI.cpp
1135VBoxXPCOM_SOURCES.darwin = \
1136 vboxdeps.cpp
1137VBoxXPCOM_SOURCES.os2 = \
1138 vboxdeps.cpp
1139VBoxXPCOM_SOURCES.solaris = \
1140 vboxdeps.cpp
1141VBoxXPCOM_LIBS = \
1142 $(TARGET_VBox-xpcom-typelib) \
1143 $(TARGET_VBox-xpcom-string) \
1144 $(TARGET_VBox-xpcom-base) \
1145 $(TARGET_VBox-xpcom-ds) \
1146 $(TARGET_VBox-xpcom-io) \
1147 $(TARGET_VBox-xpcom-components) \
1148 $(TARGET_VBox-xpcom-threads) \
1149 $(TARGET_VBox-xpcom-xptinfo) \
1150 $(TARGET_VBox-xpcom-xptcall) \
1151 $(TARGET_VBox-xpcom-proxy) \
1152 $(TARGET_VBox-xpcom-nspr) \
1153 $(TARGET_VBoxXPCOMGlue_s)
1154
1155ifeq ($(filter-out freebsd l4 linux netbsd openbsd,$(KBUILD_TARGET)),) # gnu ld.
1156VBoxXPCOM_LDFLAGS = -Wl,--whole-archive \
1157 $(TARGET_VBox-xpcom-typelib) \
1158 $(TARGET_VBox-xpcom-string) \
1159 $(TARGET_VBox-xpcom-base) \
1160 $(TARGET_VBox-xpcom-ds) \
1161 $(TARGET_VBox-xpcom-io) \
1162 $(TARGET_VBox-xpcom-components) \
1163 $(TARGET_VBox-xpcom-threads) \
1164 $(TARGET_VBox-xpcom-xptinfo) \
1165 $(TARGET_VBox-xpcom-xptcall) \
1166 $(TARGET_VBox-xpcom-proxy) \
1167 $(TARGET_VBox-xpcom-nspr) \
1168 $(TARGET_VBoxXPCOMGlue_s) \
1169 -Wl,--no-whole-archive
1170endif
1171
1172VBoxXPCOM_LDFLAGS.solaris += -Wl,-z,allextract \
1173 $(TARGET_VBox-xpcom-typelib) \
1174 $(TARGET_VBox-xpcom-string) \
1175 $(TARGET_VBox-xpcom-base) \
1176 $(TARGET_VBox-xpcom-ds) \
1177 $(TARGET_VBox-xpcom-io) \
1178 $(TARGET_VBox-xpcom-components) \
1179 $(TARGET_VBox-xpcom-threads) \
1180 $(TARGET_VBox-xpcom-xptinfo) \
1181 $(TARGET_VBox-xpcom-xptcall) \
1182 $(TARGET_VBox-xpcom-proxy) \
1183 $(TARGET_VBox-xpcom-nspr) \
1184 $(TARGET_VBoxXPCOMGlue_s) \
1185 -Wl,-z,defaultextract
1186
1187#VBoxXPCOM_LIBS.l4 = $(L4_LIBDIR)/libxpcomstubs.a $(L4_LIBDIR)/../libuc_c++.a \
1188# $(VBOX_PATH_L4_GCC3_INSTALL)/libsupc++.a $(VBOX_PATH_L4_GCC3_INSTALL)/libgcc_eh.a
1189# EF heap
1190#VBoxXPCOM_LIBS += $(LIB_RUNTIME_EF)
1191#VBoxXPCOM_LDFLAGS = -Wl,--whole-archive $(VBoxXPCOM_LIBS) -Wl,--no-whole-archive $(LIB_RUNTIME)
1192VBoxXPCOM_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxXPCOM.dylib
1193
1194ifdef VBOX_IPC_RELEASE_LOG
1195IPC_LOGGING = 1
1196else ifneq ($(KBUILD_TYPE),release)
1197IPC_LOGGING = 1
1198endif
1199
1200TEMPLATE_XPCOMIPC = XPCOM IPC libraries
1201TEMPLATE_XPCOMIPC_EXTENDS = XPCOM
1202TEMPLATE_XPCOMIPC_DEFS = \
1203 $(TEMPLATE_XPCOM_DEFS) BUILD_DCONNECT="1" \
1204 IPC_DAEMON_APP_NAME=\"VBoxXPCOMIPCD$(SUFF_EXE)\"
1205ifdef IPC_LOGGING
1206 TEMPLATE_XPCOMIPC_DEFS += IPC_LOGGING
1207endif
1208
1209TEMPLATE_XPCOMIPC_LIBS = $(TARGET_VBoxXPCOM) $(TEMPLATE_XPCOM_LIBS)
1210
1211TEMPLATE_XPCOMIPCEXE = XPCOM IPC executables
1212TEMPLATE_XPCOMIPCEXE_EXTENDS = XPCOMEXE
1213TEMPLATE_XPCOMIPCEXE_DEFS = $(TEMPLATE_XPCOMEXE_DEFS) BUILD_DCONNECT="1"
1214ifdef IPC_LOGGING
1215 TEMPLATE_XPCOMIPCEXE_DEFS += IPC_LOGGING
1216endif
1217
1218VBox-xpcom-ipcutils_TEMPLATE = XPCOMIPC
1219VBox-xpcom-ipcutils_NOINST = 1
1220VBox-xpcom-ipcutils_SOURCES = \
1221 ipc/ipcd/util/src/ipcMessageReader.cpp \
1222 ipc/ipcd/util/src/ipcMessageWriter.cpp
1223
1224VBox-xpcom-ipcshared_TEMPLATE = XPCOMIPC
1225VBox-xpcom-ipcshared_NOINST = 1
1226VBox-xpcom-ipcshared_SOURCES = \
1227 ipc/ipcd/shared/src/ipcLog.cpp \
1228 ipc/ipcd/shared/src/ipcConfig.cpp \
1229 ipc/ipcd/shared/src/ipcMessage.cpp \
1230 ipc/ipcd/shared/src/ipcMessagePrimitives.cpp \
1231 ipc/ipcd/shared/src/ipcStringList.cpp \
1232 ipc/ipcd/shared/src/ipcIDList.cpp \
1233 ipc/ipcd/shared/src/ipcm.cpp
1234
1235VBox-xpcom-ipcdlock_TEMPLATE = XPCOMIPC
1236VBox-xpcom-ipcdlock_NOINST = 1
1237VBox-xpcom-ipcdlock_SOURCES = \
1238 ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \
1239 ipc/ipcd/extensions/lock/src/ipcLockService.cpp
1240
1241VBox-xpcom-ipctransmgr_TEMPLATE = XPCOMIPC
1242VBox-xpcom-ipctransmgr_NOINST = 1
1243VBox-xpcom-ipctransmgr_SOURCES = \
1244 ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp
1245
1246VBox-xpcom-ipctmgrcom_TEMPLATE = XPCOMIPC
1247VBox-xpcom-ipctmgrcom_NOINST = 1
1248VBox-xpcom-ipctmgrcom_SOURCES = \
1249 ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \
1250 ipc/ipcd/extensions/transmngr/common/tmVector.cpp
1251
1252
1253#
1254# DCONNECT client shared object
1255#
1256VBoxXPCOMIPCC_TEMPLATE = XPCOMIPC
1257VBoxXPCOMIPCC_NAME.os2 = VBoxIPCC
1258VBoxXPCOMIPCC_INST = $(INST_BIN)components/
1259VBoxXPCOMIPCC_DEFS = HAVE_DEPENDENT_LIBS
1260VBoxXPCOMIPCC_SOURCES = \
1261 ipc/ipcd/client/src/ipcdclient.cpp \
1262 ipc/ipcd/client/src/ipcService.cpp \
1263 ipc/ipcd/client/src/ipcModuleFactory.cpp \
1264 ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp
1265ifeq ($(KBUILD_TARGET),win)
1266VBoxXPCOMIPCC_SOURCES += \
1267 ipc/ipcd/client/src/ipcConnectionWin.cpp
1268else
1269VBoxXPCOMIPCC_SOURCES += \
1270 ipc/ipcd/client/src/ipcConnectionUnix.cpp
1271endif
1272VBoxXPCOMIPCC_LDFLAGS.darwin = -install_name $(VBOX_DYLD_EXECUTABLE_PATH)/components/VBoxXPCOMIPCC.dylib
1273VBoxXPCOMIPCC_LIBS = \
1274 $(TARGET_VBox-xpcom-ipcutils) \
1275 $(TARGET_VBox-xpcom-ipcshared) \
1276 $(TARGET_VBox-xpcom-ipcdlock) \
1277 $(TARGET_VBox-xpcom-ipctransmgr) \
1278 $(TARGET_VBox-xpcom-ipctmgrcom)
1279# EF
1280#VBoxXPCOMIPCC_LIBS += $(LIB_RUNTIME)
1281
1282
1283#
1284# DCONNECT daemon executable
1285#
1286VBoxXPCOMIPCD_TEMPLATE = XPCOMIPCEXE
1287VBoxXPCOMIPCD_SOURCES = \
1288 ipc/ipcd/daemon/src/ipcd.cpp \
1289 ipc/ipcd/daemon/src/ipcClient.cpp \
1290 ipc/ipcd/daemon/src/ipcModuleReg.cpp \
1291 ipc/ipcd/daemon/src/ipcCommandModule.cpp
1292ifeq ($(KBUILD_TARGET),win)
1293 VBoxXPCOMIPCD_SOURCES += \
1294 ipc/ipcd/daemon/src/ipcdWin.cpp
1295else
1296 VBoxXPCOMIPCD_SOURCES += \
1297 ipc/ipcd/daemon/src/ipcdUnix.cpp
1298endif
1299
1300
1301#
1302# Python<->XPCOM bridge.
1303#
1304
1305# Find the Python headers for the Python<->XPCOM bridge if enabled.
1306ifdef VBOX_WITH_PYTHON
1307 if "$(KBUILD_TARGET)" == "darwin" && !defined(VBOX_PATH_PYTHON_INC) && !defined(VBOX_LIB_PYTHON)
1308 ifndef VBOX_PYTHON_FRAMEWORK
1309 ifneq ($(VBOX_DEF_MACOSX_VERSION_MIN),10.4)
1310 $(error we are assuming 10.4 here; VBOX_DEF_MACOSX_VERSION_MIN=$(VBOX_DEF_MACOSX_VERSION_MIN))
1311 endif
1312 # Does -framework really work with CXXFLAGS and CFLAGS?
1313 VBOX_PYTHON_FRAMEWORK := -framework Python
1314 VBOX_PATH_PYTHON_INC := $(VBOX_PATH_MACOSX_SDK_10_4)/System/Library/Frameworks/Python.framework/Headers
1315 endif
1316 else # !darwin || configured darwin
1317 ifndef VBOX_PATH_PYTHON_INC
1318 VBOX_PATH_PYTHON_INC := $(patsubst %/Python.h,%, $(lastword $(sort $(wildcard \
1319 /usr/include/python2.*/Python.h \
1320 /usr/local/include/python2.*/Python.h \
1321 ))))
1322 ifeq ($(VBOX_PATH_PYTHON_INC),)
1323 $(warning Unable to determine the python include directory (VBOX_PATH_PYTHON_INC).)
1324 endif
1325 endif
1326 VBOX_PYTHON_VER := 2$(lastword $(subst ., .,$(VBOX_PATH_PYTHON_INC)))
1327 ifndef VBOX_LIB_PYTHON
1328 VBOX_TMP := $(if $(eq $(KBUILD_TARGET).$(KBUILD_TARGET_ARCH),solaris.amd64),64/,)
1329 VBOX_LIB_PYTHON := $(firstword $(wildcard \
1330 /usr/lib/$(VBOX_TMP)libpython$(VBOX_PYTHON_VER)$(SUFF_DLL) \
1331 /usr/local/lib/$(VBOX_TMP)libpython$(VBOX_PYTHON_VER)$(SUFF_DLL) \
1332 /usr/lib/$(VBOX_TMP)libpython2$(SUFF_DLL) \
1333 /usr/local/lib/$(VBOX_TMP)libpython2$(SUFF_DLL) \
1334 /usr/lib/$(VBOX_TMP)libpython$(SUFF_DLL) \
1335 /usr/local/lib/$(VBOX_TMP)libpython$(SUFF_DLL) \
1336 ))
1337 ifeq ($(VBOX_LIB_PYTHON),)
1338 $(warning Unable to determine the python library (VBOX_LIB_PYTHON).)
1339 endif
1340 endif # !darwin || configured darwin
1341 endif
1342 ifndef VBOX_ONLY_SDK
1343 DLLS += VBoxPython
1344 endif
1345 INSTALLS += VBoxPython-inst-py-xpcom
1346 INSTALLS += VBoxPython-inst-sample
1347endif
1348
1349# Python Client Module - the C++/XPCOM bits.
1350VBoxPython_TEMPLATE = XPCOM
1351VBoxPython_DEFS = _IMPL_NS_COM _IMPL_NS_BASE EXPORT_XPTI_API EXPORT_XPT_API \
1352 VBOX_PYXPCOM VBOX_WITH_XPCOM
1353VBoxPython_DEFS.darwin = VBOX_PYXPCOM_VERSIONED
1354VBoxPython_NAME.darwin = VBoxPython2_3
1355ifeq ($(KBUILD_TARGET),darwin)
1356 ## @todo kBuild - this ain't working: VBoxPython_DLLSUFF.darwin = .so
1357 VBoxPython_DLLSUFF = .so
1358endif
1359VBoxPython_CFLAGS.darwin = $(VBOX_PYTHON_FRAMEWORK)
1360VBoxPython_CXXFLAGS.darwin = $(VBOX_PYTHON_FRAMEWORK)
1361VBoxPython_LDFLAGS.darwin = $(VBOX_PYTHON_FRAMEWORK)
1362VBoxPython_INCS = \
1363 python/src \
1364 $(VBOX_PATH_PYTHON_INC)
1365VBoxPython_SOURCES = \
1366 python/src/module/_xpcom.cpp \
1367 python/src/dllmain.cpp \
1368 python/src/ErrorUtils.cpp \
1369 python/src/PyGBase.cpp \
1370 python/src/PyGInputStream.cpp \
1371 python/src/PyGModule.cpp \
1372 python/src/PyGStub.cpp \
1373 python/src/PyGWeakReference.cpp \
1374 python/src/PyIClassInfo.cpp \
1375 python/src/PyIComponentManager.cpp \
1376 python/src/PyIComponentManagerObsolete.cpp \
1377 python/src/PyIEnumerator.cpp \
1378 python/src/PyIID.cpp \
1379 python/src/PyIInputStream.cpp \
1380 python/src/PyIInterfaceInfo.cpp \
1381 python/src/PyIInterfaceInfoManager.cpp \
1382 python/src/PyISimpleEnumerator.cpp \
1383 python/src/PyISupports.cpp \
1384 python/src/PyIVariant.cpp \
1385 python/src/Pyxpt_info.cpp \
1386 python/src/TypeObject.cpp \
1387 python/src/VariantUtils.cpp
1388VBoxPython_LIBS = \
1389 $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB) \
1390 $(PATH_BIN)/VBoxXPCOM$(VBOX_SUFF_DLL) \
1391 $(VBOX_LIB_PYTHON)
1392
1393if defined(VBOX_WITH_VBOXPYTHON_FOR_OSX_10_5) && "$(KBUILD_TARGET)" == "darwin"
1394# Same VBoxPython except built against the Mac OS X 10.5 SDK.
1395DLLS += VBoxPython2_5
1396VBoxPython2_5_EXTENDS = VBoxPython
1397VBoxPython2_5_TEMPLATE = XPCOMOSX105
1398VBoxPython2_5_NAME.darwin = VBoxPython2_5
1399VBoxPython2_5_INCS = \
1400 python/src \
1401 $(VBOX_PATH_MACOSX_SDK_10_5)/System/Library/Frameworks/Python.framework/Headers
1402endif
1403
1404# Python Client Module - the Python bits.
1405VBoxPython-inst-py-xpcom_INST = $(INST_SDK)bindings/xpcom/python/xpcom/
1406VBoxPython-inst-py-xpcom_SOURCES = \
1407 python/vboxxpcom.py \
1408 python/components.py \
1409 python/file.py \
1410 python/__init__.py \
1411 python/nsError.py \
1412 python/primitives.py \
1413 python/xpcom_consts.py \
1414 python/xpt.py \
1415 python/client/__init__.py=>client/__init__.py \
1416 python/server/__init__.py=>server/__init__.py \
1417 python/server/enumerator.py=>server/enumerator.py \
1418 python/server/factory.py=>server/factory.py \
1419 python/server/loader.py=>server/loader.py \
1420 python/server/module.py=>server/module.py \
1421 python/server/policy.py=>server/policy.py
1422
1423# Python Client Module - a sample script.
1424VBoxPython-inst-sample_INST = $(INST_SDK)bindings/xpcom/python/sample/
1425VBoxPython-inst-sample_SOURCES = \
1426 python/sample/vboxshell.py \
1427 python/sample/shellcommon.py
1428
1429
1430#
1431# testcases
1432#
1433tstnsIFileEnumerator_TEMPLATE = XPCOMEXE
1434tstnsIFileEnumerator_SOURCES = xpcom/tests/nsIFileEnumerator.cpp
1435tstnsIFileTest_TEMPLATE = XPCOMEXE
1436tstnsIFileTest_SOURCES = xpcom/tests/nsIFileTest.cpp
1437tstTestArray_TEMPLATE = XPCOMEXE
1438tstTestArray_SOURCES = xpcom/tests/TestArray.cpp
1439tstTestAtoms_TEMPLATE = XPCOMEXE
1440tstTestAtoms_SOURCES = xpcom/tests/TestAtoms.cpp
1441tstTestAutoLock_TEMPLATE = XPCOMEXE
1442tstTestAutoLock_SOURCES = xpcom/tests/TestAutoLock.cpp
1443tstTestCallTemplates_TEMPLATE = XPCOMEXE
1444tstTestCallTemplates_SOURCES = xpcom/tests/TestCallTemplates.cpp
1445tstTestCOMPtr_TEMPLATE = XPCOMEXE
1446tstTestCOMPtr_SOURCES = xpcom/tests/TestCOMPtr.cpp
1447tstTestCOMPtrEq_TEMPLATE = XPCOMEXE
1448tstTestCOMPtrEq_SOURCES = xpcom/tests/TestCOMPtrEq.cpp
1449tstTestCRT_TEMPLATE = XPCOMEXE
1450tstTestCRT_SOURCES = xpcom/tests/TestCRT.cpp
1451tstTestFactory_TEMPLATE = XPCOMEXE
1452tstTestFactory_SOURCES = xpcom/tests/TestFactory.cpp
1453tstTestHashtables_TEMPLATE = XPCOMEXE
1454tstTestHashtables_SOURCES = xpcom/tests/TestHashtables.cpp
1455tstTestID_TEMPLATE = XPCOMEXE
1456tstTestID_SOURCES = xpcom/tests/TestID.cpp
1457tstTestObserverService_TEMPLATE= XPCOMEXE
1458tstTestObserverService_SOURCES = xpcom/tests/TestObserverService.cpp
1459tstTestPermanentAtoms_TEMPLATE = XPCOMEXE
1460tstTestPermanentAtoms_SOURCES = xpcom/tests/TestPermanentAtoms.cpp
1461tstTestPipes_TEMPLATE = XPCOMEXE
1462tstTestPipes_SOURCES = xpcom/tests/TestPipes.cpp
1463tstTestServMgr_TEMPLATE = XPCOMEXE
1464tstTestServMgr_SOURCES = xpcom/tests/TestServMgr.cpp
1465tstTestServMgr_INCS = xpcom/tests/services
1466tstTestThreads_TEMPLATE = XPCOMEXE
1467tstTestThreads_SOURCES = xpcom/tests/TestThreads.cpp
1468tstTestXPIDLString_TEMPLATE = XPCOMEXE
1469tstTestXPIDLString_SOURCES = xpcom/tests/TestXPIDLString.cpp
1470tstTestDeque_TEMPLATE = XPCOMEXE
1471tstTestDeque_SOURCES = xpcom/tests/TestDeque.cpp
1472tstTestAutoPtr_TEMPLATE = XPCOMEXE
1473tstTestAutoPtr_SOURCES = xpcom/tests/TestAutoPtr.cpp
1474tstTestMinStringAPI_TEMPLATE = XPCOMEXE
1475tstTestMinStringAPI_SOURCES = xpcom/tests/TestMinStringAPI.cpp
1476tstTestStrings_TEMPLATE = XPCOMEXE
1477tstTestStrings_SOURCES = xpcom/tests/TestStrings.cpp
1478tstPrimitiveTest_TEMPLATE = XPCOMEXE
1479tstPrimitiveTest_SOURCES = xpcom/typelib/xpt/tests/PrimitiveTest.c
1480tstSimpleTypeLib_TEMPLATE = XPCOMEXE
1481tstSimpleTypeLib_SOURCES = xpcom/typelib/xpt/tests/SimpleTypeLib.c
1482tstXptDump_TEMPLATE = XPCOMEXE
1483tstXptDump_SOURCES = xpcom/typelib/xpt/tools/xpt_dump.c
1484tstXptLink_TEMPLATE = XPCOMEXE
1485tstXptLink_SOURCES = xpcom/typelib/xpt/tools/xpt_link.c
1486
1487
1488
1489
1490XPCOM_IDLFILES = \
1491 xpcom/base/nsIDebug.idl \
1492 xpcom/base/nsIInterfaceRequestor.idl \
1493 xpcom/base/nsIMemory.idl \
1494 xpcom/base/nsIProgrammingLanguage.idl \
1495 xpcom/base/nsISupports.idl \
1496 xpcom/base/nsITraceRefcnt.idl \
1497 xpcom/base/nsIWeakReference.idl \
1498 xpcom/base/nsIConsoleMessage.idl \
1499 xpcom/base/nsIConsoleService.idl \
1500 xpcom/base/nsIConsoleListener.idl \
1501 xpcom/base/nsIErrorService.idl \
1502 xpcom/base/nsIException.idl \
1503 xpcom/base/nsIExceptionService.idl \
1504 xpcom/base/nsrootidl.idl \
1505 xpcom/components/nsIClassInfo.idl \
1506 xpcom/components/nsIComponentRegistrar.idl \
1507 xpcom/components/nsIFactory.idl \
1508 xpcom/components/nsIModule.idl \
1509 xpcom/components/nsIServiceManager.idl \
1510 xpcom/components/nsIComponentManager.idl \
1511 xpcom/components/nsICategoryManager.idl \
1512 xpcom/components/nsIComponentLoader.idl \
1513 xpcom/components/nsINativeComponentLoader.idl \
1514 xpcom/components/nsIComponentManagerObsolete.idl \
1515 xpcom/components/nsIComponentLoaderManager.idl \
1516 xpcom/ds/nsISupportsArray.idl \
1517 xpcom/ds/nsICollection.idl \
1518 xpcom/ds/nsISerializable.idl \
1519 xpcom/ds/nsIEnumerator.idl \
1520 xpcom/ds/nsISimpleEnumerator.idl \
1521 xpcom/ds/nsIObserverService.idl \
1522 xpcom/ds/nsIObserver.idl \
1523 xpcom/ds/nsIAtom.idl \
1524 xpcom/ds/nsIAtomService.idl \
1525 xpcom/ds/nsIProperties.idl \
1526 xpcom/ds/nsIPersistentProperties2.idl \
1527 xpcom/ds/nsIRecyclingAllocator.idl \
1528 xpcom/ds/nsIStringEnumerator.idl \
1529 xpcom/ds/nsISupportsPrimitives.idl \
1530 xpcom/ds/nsISupportsIterators.idl \
1531 xpcom/ds/nsIVariant.idl \
1532 xpcom/ds/nsITimelineService.idl \
1533 xpcom/ds/nsIArray.idl \
1534 xpcom/ds/nsIPropertyBag.idl \
1535 xpcom/ds/nsIHashable.idl \
1536 xpcom/io/nsIDirectoryService.idl \
1537 xpcom/io/nsIDirectoryEnumerator.idl \
1538 xpcom/io/nsIFile.idl \
1539 xpcom/io/nsILocalFile.idl \
1540 xpcom/io/nsILocalFileMac.idl \
1541 xpcom/io/nsIInputStream.idl \
1542 xpcom/io/nsIObjectInputStream.idl \
1543 xpcom/io/nsIBinaryInputStream.idl \
1544 xpcom/io/nsIObjectOutputStream.idl \
1545 xpcom/io/nsIBinaryOutputStream.idl \
1546 xpcom/io/nsIOutputStream.idl \
1547 xpcom/io/nsIStreamBufferAccess.idl \
1548 xpcom/io/nsIByteArrayInputStream.idl \
1549 xpcom/io/nsISeekableStream.idl \
1550 xpcom/io/nsIFastLoadFileControl.idl \
1551 xpcom/io/nsIFastLoadService.idl \
1552 xpcom/io/nsIInputStreamTee.idl \
1553 xpcom/io/nsIMultiplexInputStream.idl \
1554 xpcom/io/nsIPipe.idl \
1555 xpcom/io/nsIAsyncInputStream.idl \
1556 xpcom/io/nsIAsyncOutputStream.idl \
1557 xpcom/io/nsIScriptableInputStream.idl \
1558 xpcom/io/nsIStorageStream.idl \
1559 xpcom/io/nsIStringStream.idl \
1560 xpcom/io/nsILineInputStream.idl \
1561 xpcom/proxy/public/nsIProxyObjectManager.idl \
1562 xpcom/threads/nsIEventQueueService.idl \
1563 xpcom/threads/nsIEventQueue.idl \
1564 xpcom/threads/nsIEventTarget.idl \
1565 xpcom/threads/nsIRunnable.idl \
1566 xpcom/threads/nsIThread.idl \
1567 xpcom/threads/nsITimer.idl \
1568 xpcom/threads/nsIEnvironment.idl \
1569 xpcom/threads/nsITimerInternal.idl \
1570 xpcom/threads/nsITimerManager.idl \
1571 xpcom/threads/nsIProcess.idl \
1572 xpcom/reflect/xptinfo/public/nsIInterfaceInfo.idl \
1573 xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl \
1574 xpcom/reflect/xptinfo/public/nsIXPTLoader.idl \
1575 ipc/ipcd/client/public/ipcIService.idl \
1576 ipc/ipcd/client/public/ipcIMessageObserver.idl \
1577 ipc/ipcd/client/public/ipcIClientObserver.idl \
1578 ipc/ipcd/extensions/lock/public/ipcILockService.idl \
1579 ipc/ipcd/extensions/transmngr/public/ipcITransactionService.idl \
1580 ipc/ipcd/extensions/dconnect/public/ipcIDConnectService.idl \
1581 ipc/ipcd/extensions/transmngr/public/ipcITransactionObserver.idl
1582
1583
1584OTHER_CLEAN += \
1585 $(PATH_VBox-xpcom-string)/idl_ts \
1586 $(addprefix $(VBOX_PATH_SDK)/bindings/xpcom/include,$(notdir $(subst .idl,.h,$(XPCOM_IDLFILES)))) \
1587 $(addprefix $(VBOX_PATH_SDK)/bindings/xpcom/include,$(notdir $(subst .idl,.xpt,$(XPCOM_IDLFILES)))) \
1588 $(addprefix $(VBOX_PATH_SDK)/bindings/xpcom/idl/,$(notdir $(XPCOM_IDLFILES))) \
1589 $(addprefix $(PATH_TARGET)/VBox-xpcom-xpt-files/,$(notdir $(subst .idl,.xpt,$(XPCOM_IDLFILES))))
1590
1591
1592#
1593# Create and install VBoxXPCOMBase.xpt
1594#
1595INSTALLS += VBoxXPCOMBase-xpt-inst
1596VBOX_XPTFILES = $(addprefix $(PATH_TARGET)/VBox-xpcom-xpt-files/, \
1597 nsIConsoleListener.xpt \
1598 nsIConsoleMessage.xpt \
1599 nsIConsoleService.xpt \
1600 nsIErrorService.xpt \
1601 nsIException.xpt \
1602 nsIExceptionService.xpt \
1603 nsIDebug.xpt \
1604 nsIInterfaceRequestor.xpt \
1605 nsIMemory.xpt \
1606 nsIProgrammingLanguage.xpt \
1607 nsISupports.xpt \
1608 nsITraceRefcnt.xpt \
1609 nsIWeakReference.xpt \
1610 nsrootidl.xpt \
1611 nsIAtom.xpt \
1612 nsIAtomService.xpt \
1613 nsICollection.xpt \
1614 nsIEnumerator.xpt \
1615 nsIPersistentProperties2.xpt \
1616 nsIPropertyBag.xpt \
1617 nsIRecyclingAllocator.xpt \
1618 nsIVariant.xpt \
1619 nsISerializable.xpt \
1620 nsIStringEnumerator.xpt \
1621 nsISupportsArray.xpt \
1622 nsISupportsIterators.xpt \
1623 nsITimelineService.xpt \
1624 nsIArray.xpt \
1625 nsIObserverService.xpt \
1626 nsIObserver.xpt \
1627 nsIProperties.xpt \
1628 nsISimpleEnumerator.xpt \
1629 nsISupportsPrimitives.xpt \
1630 nsIBinaryInputStream.xpt \
1631 nsIBinaryOutputStream.xpt \
1632 nsIByteArrayInputStream.xpt \
1633 nsIFastLoadFileControl.xpt \
1634 nsIFastLoadService.xpt \
1635 nsIInputStreamTee.xpt \
1636 nsILineInputStream.xpt \
1637 nsIMultiplexInputStream.xpt \
1638 nsIObjectInputStream.xpt \
1639 nsIObjectOutputStream.xpt \
1640 nsIPipe.xpt \
1641 nsISeekableStream.xpt \
1642 nsIStorageStream.xpt \
1643 nsIStringStream.xpt \
1644 nsIStreamBufferAccess.xpt \
1645 nsIAsyncInputStream.xpt \
1646 nsIAsyncOutputStream.xpt \
1647 nsIDirectoryService.xpt \
1648 nsIFile.xpt \
1649 nsILocalFile.xpt \
1650 nsIInputStream.xpt \
1651 nsIOutputStream.xpt \
1652 nsIScriptableInputStream.xpt \
1653 nsIComponentLoader.xpt \
1654 nsIComponentLoaderManager.xpt \
1655 nsIComponentManagerObsolete.xpt \
1656 nsINativeComponentLoader.xpt \
1657 nsIClassInfo.xpt \
1658 nsIComponentRegistrar.xpt \
1659 nsIFactory.xpt \
1660 nsIModule.xpt \
1661 nsIServiceManager.xpt \
1662 nsIComponentManager.xpt \
1663 nsICategoryManager.xpt \
1664 nsIThread.xpt \
1665 nsITimer.xpt \
1666 nsITimerInternal.xpt \
1667 nsITimerManager.xpt \
1668 nsIRunnable.xpt \
1669 nsIEventTarget.xpt \
1670 nsIEventQueue.xpt \
1671 nsIEventQueueService.xpt \
1672 nsIEnvironment.xpt \
1673 nsIProcess.xpt \
1674 nsIInterfaceInfo.xpt \
1675 nsIInterfaceInfoManager.xpt \
1676 nsIXPTLoader.xpt)
1677
1678VBoxXPCOMBase-xpt-inst_INST = $(INST_BIN)components/
1679VBoxXPCOMBase-xpt-inst_MODE = 0644
1680VBoxXPCOMBase-xpt-inst_SOURCES = \
1681 $(PATH_TARGET)/VBox-xpcom-xpt-files/VBoxXPCOMBase.xpt
1682VBoxXPCOMBase-xpt-inst_CLEAN = \
1683 $(VBOX_XPTFILES) \
1684 $(PATH_TARGET)/VBox-xpcom-xpt-files/VBoxXPCOMBase.xpt
1685
1686# combined typelib library
1687$(PATH_TARGET)/VBox-xpcom-xpt-files/VBoxXPCOMBase.xpt: $(VBOX_XPTFILES) | $$(TARGET_xpt_link) $(PATH_TARGET)/VBox-xpcom-xpt-files/
1688 $(call MSG_LINK,XPCOM_TYPELIB,$@)
1689 $(QUIET)$(MKDIR) -p -- $(PATH_BIN)/components
1690 $(QUIET)$(TARGET_xpt_link) $@ $^
1691
1692
1693
1694# generate rules
1695include $(KBUILD_PATH)/subfooter.kmk
1696
1697
1698
1699#
1700# Generate IDL rules.
1701#
1702
1703##
1704# Define for compiling one IDL into a header and a typelib
1705# @param idl The filename with everything.
1706XPIDL_INCS = \
1707 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/base/ \
1708 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/ds/ \
1709 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/components/ \
1710 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/io/ \
1711 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/threads/ \
1712 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptinfo/public/
1713define def_IDL
1714$(VBOX_PATH_SDK)/bindings/xpcom/include/$(notdir $(subst .idl,.h,$(idl))) \
1715+ $(PATH_TARGET)/VBox-xpcom-xpt-files/$(notdir $(subst .idl,.xpt,$(idl))): \
1716 $(VBOX_PATH_XPCOM_SRC)/$(idl) \
1717 | $$$$(TARGET_xpidl) \
1718 $(PATH_TARGET)/VBox-xpcom-xpt-files/
1719 $$(call MSG_TOOL,xpidl,XPCOM,$$<,$$@)
1720 $$(QUIET)$(MKDIR) -p $(VBOX_PATH_SDK)/bindings/xpcom/include $(VBOX_PATH_SDK)/bindings/xpcom/idl
1721 $$(QUIET)$$(TARGET_xpidl) -m header $(XPIDL_INCS) -e $$@ $$<
1722 $$(QUIET)$$(TARGET_xpidl) -m typelib $(XPIDL_INCS) -e $(addprefix $(PATH_TARGET)/VBox-xpcom-xpt-files/,$(notdir $(subst .idl,.xpt,$(idl)))) $$<
1723 $$(QUIET)$(CP) $$< $$(VBOX_PATH_SDK)/bindings/xpcom/idl
1724endef
1725
1726$(foreach idl, $(XPCOM_IDLFILES), $(eval $(def_IDL)))
1727
1728# dummy target.
1729$(PATH_VBox-xpcom-string)/idl_ts: $(addprefix $(VBOX_PATH_SDK)/bindings/xpcom/include/,$(notdir $(subst .idl,.h,$(XPCOM_IDLFILES))))
1730 $(call MSG_L1,IDL processing completed.)
1731 $(QUIET)$(MKDIR) -p $(dir $@)
1732 $(QUIET)$(ECHO_EXT) > $@
1733
1734# Make sure main doesn't start using xpidl before we're done with the idl files here.
1735$(VBOX_XPIDL): $$(PATH_VBox-xpcom-string)/idl_ts
1736
Note: See TracBrowser for help on using the repository browser.

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