VirtualBox

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

Last change on this file since 1 was 1, checked in by vboxsync, 54 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 44.5 KB
Line 
1#
2# Makefile for XPCOM.
3#
4
5#
6# Copyright (C) 2006 InnoTek Systemberatung GmbH
7#
8# This file is part of VirtualBox Open Source Edition (OSE), as
9# available from http://www.virtualbox.org. This file is free software;
10# you can redistribute it and/or modify it under the terms of the GNU
11# General Public License as published by the Free Software Foundation,
12# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
13# distribution. VirtualBox OSE is distributed in the hope that it will
14# be useful, but WITHOUT ANY WARRANTY of any kind.
15#
16# If you received this file as part of a commercial VirtualBox
17# distribution, then only the terms of your commercial VirtualBox
18# license agreement apply instead of the previous paragraph.
19#
20
21DEPTH = ../../..
22include $(PATH_KBUILD)/header.kmk
23
24
25# We start by creating a couple of templates for building XPCOM. In L4, this is slightly
26# complicated by the fact that we still build the tools for use in Linux, since L4 isn't
27# really up to scratch yet as a development environment. Whereas formerly the operating
28# system definitions were "hard coded" by copying the correct file to prcpucfg.h, we now
29# use a file which will include the correct definitions based on whether the variable
30# __LINUX_XPCOM__ or __L4_XPCOM__ is defined. Unfortunately, we can't use __LINUX__ and
31# __L4ENV__, since these are defined globally, not on a per-template basis, so __L4ENV__
32# will also be defined when building the Linux-based tools.
33
34XPCOM_SUFF_LIB.linux = .a
35XPCOM_SUFF_LIB.l4 = .a
36XPCOM_SUFF_LIB = $(XPCOM_SUFF_LIB.$(BUILD_TARGET))
37XPCOM_SUFF_DLL.linux = .so
38XPCOM_SUFF_DLL.l4 = .s.so
39XPCOM_SUFF_DLL = $(XPCOM_SUFF_DLL.$(BUILD_TARGET))
40
41#
42# Template for building the XPCOM libraries
43#
44TEMPLATE_XPCOM = XPCOM libraries
45TEMPLATE_XPCOM_TOOL = GCC3
46TEMPLATE_XPCOM_CXXFLAGS = -pipe -fPIC -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
47 $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy
48TEMPLATE_XPCOM_CXXFLAGS.debug = -fno-inline
49TEMPLATE_XPCOM_CXXFLAGS.release = -O
50TEMPLATE_XPCOM_CXXFLAGS.profile = -O
51TEMPLATE_XPCOM_CXXFLAGS.linux = -pthread
52TEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc
53TEMPLATE_XPCOM_CFLAGS = -pipe -fPIC -ansi -pthread -Wall -Wno-unused \
54 -Wno-parentheses -Wno-uninitialized
55TEMPLATE_XPCOM_CFLAGS.debug = -fno-inline
56TEMPLATE_XPCOM_CFLAGS.release = -O
57TEMPLATE_XPCOM_CFLAGS.profile = -O
58TEMPLATE_XPCOM_CFLAGS.linux = -pthread
59TEMPLATE_XPCOM_CFLAGS.l4 = -nostdinc
60TEMPLATE_XPCOM_DEFS = MOZILLA_CLIENT=1 MOZ_PRESERVE_PIC
61TEMPLATE_XPCOM_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
62TEMPLATE_XPCOM_DEFS.linux = XP_UNIX=1 __LINUX_XPCOM__ OSTYPE="Linux2.6" OSARCH="Linux" \
63 MOZ_DLL_SUFFIX="\".so\""
64TEMPLATE_XPCOM_DEFS.l4 = XP_UNIX=1 __L4_XPCOM__ OSTYPE="L4ENV" OSARCH="L4" \
65 MOZ_DLL_SUFFIX="\".s.so\"" L4ENV
66TEMPLATE_XPCOM_INCS = $(PATH_TARGET) \
67 xpcom/build \
68 xpcom/ds \
69 xpcom/io \
70 xpcom/base \
71 xpcom/components \
72 xpcom/threads \
73 xpcom/proxy/src \
74 xpcom/reflect/xptcall/src \
75 ipc/ipcd/client/src \
76 ipc/ipcd/shared/src \
77 ipc/ipcd/extensions/lock/src \
78 ipc/ipcd/extensions/transmngr/src \
79 ipc/ipcd/extensions/dconnect/src \
80 ipc/ipcd/extensions/transmngr/common \
81 $(PATH_BIN)/sdk/include \
82 $(PATH_BIN)/sdk/include/xpcom \
83 $(PATH_BIN)/sdk/include/xpcom/nsprpub \
84 $(PATH_BIN)/sdk/include/xpcom/string \
85 $(PATH_BIN)/sdk/include/xpcom/xpcom \
86 $(PATH_BIN)/sdk/include/xpcom/ipcd
87TEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
88TEMPLATE_XPCOM_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
89 -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
90 # -Wl,--whole-archive,--no-allow-shlib-undefined
91TEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC)
92
93#
94# Template for building the XPCOM executables
95#
96TEMPLATE_XPCOMEXE = XPCOM executable files
97TEMPLATE_XPCOMEXE_TOOL = GCC3
98TEMPLATE_XPCOMEXE_CXXFLAGS = -pipe -ansi -Wall -Wno-non-virtual-dtor
99TEMPLATE_XPCOMEXE_CXXFLAGS.debug = -fno-inline
100TEMPLATE_XPCOMEXE_CXXFLAGS.release = -O
101TEMPLATE_XPCOMEXE_CXXFLAGS.profile = -O
102TEMPLATE_XPCOMEXE_CXXFLAGS.linux = -pthread
103TEMPLATE_XPCOMEXE_CXXFLAGS.l4 = -fno-exceptions -nostdinc
104TEMPLATE_XPCOMEXE_CFLAGS = -pipe -ansi -Wall
105TEMPLATE_XPCOMEXE_CFLAGS.debug = -fno-inline
106TEMPLATE_XPCOMEXE_CFLAGS.release = -O
107TEMPLATE_XPCOMEXE_CFLAGS.profile = -O
108TEMPLATE_XPCOMEXE_CFLAGS.linux = -pthread
109TEMPLATE_XPCOMEXE_CFLAGS.l4 = -fno-exceptions -nostdinc
110TEMPLATE_XPCOMEXE_DEFS = MOZILLA_CLIENT=1 BUILD_DCONNECT="1"
111TEMPLATE_XPCOMEXE_DEFS.linux = XP_UNIX=1 __LINUX_XPCOM__ OSTYPE="Linux2.6" \
112 OSARCH="Linux" MOZ_DLL_SUFFIX="\".so\"" _BSD_SOURCE
113TEMPLATE_XPCOMEXE_DEFS.l4 = XP_UNIX=1 __L4_XPCOM__ OSTYPE="L4ENV" OSARCH="L4" \
114 MOZ_DLL_SUFFIX="\".s.so\"" _BSD_SOURCE L4ENV
115TEMPLATE_XPCOMEXE_INCS = $(PATH_TARGET) ipc/ipcd/shared/src \
116 $(PATH_BIN)/sdk/include \
117 $(PATH_BIN)/sdk/include/xpcom \
118 $(PATH_BIN)/sdk/include/xpcom/nsprpub \
119 $(PATH_BIN)/sdk/include/xpcom/string \
120 $(PATH_BIN)/sdk/include/xpcom/xpcom \
121 $(PATH_BIN)/sdk/include/xpcom/ipcd
122TEMPLATE_XPCOMEXE_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
123TEMPLATE_XPCOMEXE_LIBS = \
124 $(PATH_LIB)/VBox-xpcom-ipcshared$(VBOX_SUFF_LIB) \
125 $(PATH_BIN)/VBoxXPCOM$(XPCOM_SUFF_DLL)
126TEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD)
127TEMPLATE_XPCOMEXE_LIBS.l4 = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
128TEMPLATE_XPCOMEXE_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
129 -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
130 -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
131 -Wl,--rpath-link,$(L4_LIBDIR) \
132 # -Wl,--whole-archive,--no-allow-shlib-undefined
133
134#
135# Template for building XPCOM Linux-based executables.
136#
137TEMPLATE_XPCOMLINUX = XPCOM Linux executables
138TEMPLATE_XPCOMLINUX_TOOL = GCC3
139TEMPLATE_XPCOMLINUX_ASTOOL = NASM
140TEMPLATE_XPCOMLINUX_DEFS = __LINUX_XPCOM__ MOZILLA_CLIENT=1 \
141 OSTYPE="Linux2.6" OSARCH="Linux"
142TEMPLATE_XPCOMLINUX_CXXFLAGS = -pipe -ansi -Wall -pthread -Wno-non-virtual-dtor
143TEMPLATE_XPCOMLINUX_CXXFLAGS.debug = fno-inline
144TEMPLATE_XPCOMLINUX_CXXFLAGS.release = -O
145TEMPLATE_XPCOMLINUX_CXXFLAGS.profile = -O
146TEMPLATE_XPCOMLINUX_CFLAGS = -pipe -ansi -Wall -pthread -Wno-unused
147TEMPLATE_XPCOMLINUX_CFLAGS.debug = -fno-inline
148TEMPLATE_XPCOMLINUX_CFLAGS.release = -O
149TEMPLATE_XPCOMLINUX_CFLAGS.profile = -O
150TEMPLATE_XPCOMLINUX_LIBS = dl
151TEMPLATE_XPCOMLINUX_INCS = $(PATH_BIN)/sdk/include \
152 $(PATH_BIN)/sdk/include/xpcom \
153 $(PATH_BIN)/sdk/include/xpcom/nsprpub \
154 $(PATH_BIN)/sdk/include/xpcom/string \
155 $(PATH_BIN)/sdk/include/xpcom/xpcom \
156 $(PATH_BIN)/sdk/include/xpcom/ipcd
157ifdef VBOX_USE_GPROF
158TEMPLATE_XPCOMLINUX_CFLAGS.profile += -pg
159TEMPLATE_XPCOMLINUX_CXXFLAGS.profile += -pg
160TEMPLATE_XPCOMLINUX_LDFLAGS.profile += -pg
161endif
162ifdef VBOX_USE_FNCCHECK
163TEMPLATE_XPCOMLINUX_CFLAGS.profile += -finstrument-functions
164TEMPLATE_XPCOMLINUX_CXXFLAGS.profile += -finstrument-functions
165TEMPLATE_XPCOMLINUX_LDFLAGS.profile += -lfnccheck_hack -lfnccheck
166endif
167
168#
169# First we have to build the IDL compiler as it is required for the rest
170#
171BLDPROGS = \
172 xpidl \
173 xpt_link
174
175#
176# We build several libraries so that the Win32 linker command line
177# length limit will not be hit
178#
179LIBRARIES = \
180 VBox-xpcom-nspr \
181 VBox-xpcom-typelib \
182 VBox-xpcom-string \
183 VBox-xpcom-base \
184 VBox-xpcom-ds \
185 VBox-xpcom-io \
186 VBox-xpcom-components \
187 VBox-xpcom-threads \
188 VBox-xpcom-xptinfo \
189 VBox-xpcom-xptcall \
190 VBox-xpcom-proxy \
191 VBoxXPCOMGlue \
192 VBox-xpcom-ipcutils \
193 VBox-xpcom-ipcshared \
194 VBox-xpcom-ipcdlock \
195 VBox-xpcom-ipctransmgr \
196 VBox-xcpom-ipctmgrcom
197
198DLLS = \
199 VBoxXPCOM \
200 VBoxXPCOMIPCC
201
202ifdef VBOX_WITH_TESTCASES
203PROGRAMS = \
204 tstnsIFileEnumerator \
205 tstnsIFileTest \
206 tstTestArray \
207 tstTestAtoms \
208 tstTestAutoLock \
209 tstTestCallTemplates \
210 tstTestCOMPtr \
211 tstTestCOMPtrEq \
212 tstTestCRT \
213 tstTestFactory \
214 tstTestHashtables \
215 tstTestID \
216 tstTestObserverService \
217 tstTestPipes \
218 tstTestServMgr \
219 tstTestThreads \
220 tstTestXPIDLString \
221 tstTestDeque \
222 tstTestAutoPtr \
223 tstTestMinStringAPI \
224 tstTestStrings
225# tstTestPermanentAtoms
226endif # VBOX_WITH_TESTCASES
227PROGRAMS.linux = VBoxXPCOMIPCD
228
229OTHERS = \
230 $(PATH_BIN)/VBoxXPCOMBase.xpt
231
232OTHER_CLEAN = \
233 $(PATH_TARGET)/VBox-xpcom-nspr/_pr_bld.h \
234 $(PATH_TARGET)/VBox-xpcom-nspr/_pl_bld.h \
235 $(PATH_BIN)/VBoxXPCOMBase.xpt
236
237#
238# defines for all libraries. Unfortunately, a global DEFS
239# statement doesn't appear to work
240#
241# r=bird: Yes, it DOES work. It just depends on when config.kmk is included and += vs =.
242XPCOMDEFS = \
243 HAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1 \
244 HAVE_VISIBILITY_PRAGMA=1 \
245 _LARGEFILE64_SOURCE=1 \
246 HAVE_FCNTL_FILE_LOCKING=1 \
247 HAVE_LCHOWN=1 \
248 HAVE_STRERROR=1 \
249 _REENTRANT=1 \
250 FORCE_PR_LOG \
251 HAVE_CVAR_BUILT_ON_SEM \
252 _NSPR_BUILD_
253XPCOMDEFS.linux = \
254 _POSIX_SOURCE=1 \
255 _BSD_SOURCE=1 \
256 _SVID_SOURCE=1 \
257 LINUX=1 \
258 i386=1 \
259 _PR_PTHREADS
260# _BSD_SOURCE is here to keep the Glibc header files happy and make them include the right things
261XPCOMDEFS.l4 = \
262 L4=1 \
263 _POSIX_SOURCE=1 \
264 _BSD_SOURCE=1 \
265 i386=1
266
267# The IDL compiler. We build it statically because we cannot
268# rely on additional .a files like in the original build
269xpidl_TEMPLATE = XPCOMLINUX
270xpidl_DEFS = EXPORT_XPT_API
271xpidl_INST = bin/ $(INST_SDK)/bin/
272xpidl_SOURCES = \
273 xpcom/typelib/xpidl/xpidl.c \
274 xpcom/typelib/xpidl/xpidl_idl.c \
275 xpcom/typelib/xpidl/xpidl_util.c \
276 xpcom/typelib/xpidl/xpidl_header.c \
277 xpcom/typelib/xpidl/xpidl_typelib.c \
278 xpcom/typelib/xpidl/xpidl_doc.c \
279 xpcom/typelib/xpidl/xpidl_java.c \
280 xpcom/typelib/xpt/src/xpt_arena.c \
281 xpcom/typelib/xpt/src/xpt_struct.c \
282 xpcom/typelib/xpt/src/xpt_xdr.c
283# This will, because this is the very first target built, cause the headers
284# to be installed.
285xpidl_DEPS = \
286 $(PATH_BIN)/sdk/include/xpcom/.keep
287
288# We do these ONCE.
289libIDL_config := $(firstword $(shell which libIDL-config-2 libIDL-config 2> /dev/null))
290libIDL_config_cflags := $(shell $(libIDL_config) --cflags)
291libIDL_config_libs := $(shell $(libIDL_config) --libs)
292xpidl_CFLAGS = \
293 $(libIDL_config_cflags)
294xpidl_LDFLAGS = \
295 $(libIDL_config_libs)
296
297# XPT linker
298xpt_link_TEMPLATE = XPCOMLINUX
299xpt_link_SOURCES = \
300 xpcom/typelib/xpt/tools/xpt_link.c \
301 xpcom/typelib/xpt/src/xpt_arena.c \
302 xpcom/typelib/xpt/src/xpt_struct.c \
303 xpcom/typelib/xpt/src/xpt_xdr.c
304
305VBox-xpcom-nspr_TEMPLATE = XPCOM
306VBox-xpcom-nspr_DEFS = $(XPCOMDEFS)
307VBox-xpcom-nspr_DEFS.linux = $(XPCOMDEFS.linux)
308VBox-xpcom-nspr_DEFS.l4 = $(XPCOMDEFS.l4)
309VBox-xpcom-nspr_DEFS.debug = NDEBUG
310VBox-xpcom-nspr_INCS = \
311 nsprpub/pr/include/private \
312 $(PATH_TARGET)/VBox-xpcom-nspr
313VBoxXPCOM_LIBS.l4 = $(L4_LIBDIR)/libxpcomstubs.a $(L4_LIBDIR)/../libuc_c++.a \
314 $(VBOX_PATH_L4_GCC3_INSTALL)/libsupc++.a $(VBOX_PATH_L4_GCC3_INSTALL)/libgcc_eh.a
315VBox-xpcom-nspr_SOURCES = \
316 nsprpub/pr/src/io/prfdcach.c \
317 nsprpub/pr/src/io/prmwait.c \
318 nsprpub/pr/src/io/priometh.c \
319 nsprpub/pr/src/io/pripv6.c \
320 nsprpub/pr/src/io/prmapopt.c \
321 nsprpub/pr/src/io/prlayer.c \
322 nsprpub/pr/src/io/prlog.c \
323 nsprpub/pr/src/io/prmmap.c \
324 nsprpub/pr/src/io/prpolevt.c \
325 nsprpub/pr/src/io/prprf.c \
326 nsprpub/pr/src/io/prscanf.c \
327 nsprpub/pr/src/io/prstdio.c \
328 nsprpub/pr/src/linking/prlink.c \
329 nsprpub/pr/src/malloc/prmalloc.c \
330 nsprpub/pr/src/malloc/prmem.c \
331 nsprpub/pr/src/md/prosdep.c \
332 nsprpub/pr/src/memory/prseg.c \
333 nsprpub/pr/src/memory/prshm.c \
334 nsprpub/pr/src/memory/prshma.c \
335 nsprpub/pr/src/misc/pralarm.c \
336 nsprpub/pr/src/misc/pratom.c \
337 nsprpub/pr/src/misc/prcountr.c \
338 nsprpub/pr/src/misc/prdtoa.c \
339 nsprpub/pr/src/misc/prenv.c \
340 nsprpub/pr/src/misc/prerr.c \
341 nsprpub/pr/src/misc/prerror.c \
342 nsprpub/pr/src/misc/prerrortable.c \
343 nsprpub/pr/src/misc/prinit.c \
344 nsprpub/pr/src/misc/prinrval.c \
345 nsprpub/pr/src/misc/pripc.c \
346 nsprpub/pr/src/misc/prlog2.c \
347 nsprpub/pr/src/misc/prlong.c \
348 nsprpub/pr/src/misc/prnetdb.c \
349 nsprpub/pr/src/misc/prolock.c \
350 nsprpub/pr/src/misc/prrng.c \
351 nsprpub/pr/src/misc/prsystem.c \
352 nsprpub/pr/src/misc/prtime.c \
353 nsprpub/pr/src/misc/prthinfo.c \
354 nsprpub/pr/src/misc/prtpool.c \
355 nsprpub/pr/src/misc/prtrace.c \
356 nsprpub/pr/src/threads/prcmon.c \
357 nsprpub/pr/src/threads/prrwlock.c \
358 nsprpub/pr/src/threads/prtpd.c \
359 nsprpub/pr/src/prvrsion.c \
360 nsprpub/lib/ds/plarena.c \
361 nsprpub/lib/ds/plhash.c \
362 nsprpub/lib/libc/src/strlen.c \
363 nsprpub/lib/libc/src/strcpy.c \
364 nsprpub/lib/libc/src/strdup.c \
365 nsprpub/lib/libc/src/strcat.c \
366 nsprpub/lib/libc/src/strcmp.c \
367 nsprpub/lib/libc/src/strccmp.c \
368 nsprpub/lib/libc/src/strchr.c \
369 nsprpub/lib/libc/src/strpbrk.c \
370 nsprpub/lib/libc/src/strstr.c \
371 nsprpub/lib/libc/src/strcstr.c \
372 nsprpub/lib/libc/src/strtok.c \
373 nsprpub/lib/libc/src/base64.c \
374 nsprpub/lib/libc/src/plerror.c \
375 nsprpub/lib/libc/src/plgetopt.c
376
377VBox-xpcom-nspr_SOURCES.linux = \
378 nsprpub/pr/src/md/unix/unix.c \
379 nsprpub/pr/src/md/unix/unix_errors.c \
380 nsprpub/pr/src/md/unix/uxproces.c \
381 nsprpub/pr/src/md/unix/uxrng.c \
382 nsprpub/pr/src/md/unix/uxshm.c \
383 nsprpub/pr/src/md/unix/uxwrap.c \
384 nsprpub/pr/src/md/unix/linux.c \
385 nsprpub/pr/src/pthreads/ptio.c \
386 nsprpub/pr/src/pthreads/ptsynch.c \
387 nsprpub/pr/src/pthreads/ptthread.c \
388 nsprpub/pr/src/pthreads/ptmisc.c
389
390# L4 is ok with os_Linux_x86.
391VBox-xpcom-nspr_SOURCES.x86 = nsprpub/pr/src/md/unix/os_Linux_x86.s
392VBox-xpcom-nspr_SOURCES.amd64 = nsprpub/pr/src/md/unix/os_Linux_x86_64.s
393
394VBox-xpcom-nspr_SOURCES.l4 = \
395 nsprpub/pr/src/io/prfile.c /* why not for Linux? */ \
396 nsprpub/pr/src/io/prio.c /* "" "" "" "" */ \
397 nsprpub/pr/src/io/prsocket.c \
398 nsprpub/pr/src/md/unix/unix.c \
399 nsprpub/pr/src/md/unix/unix_errors.c \
400 nsprpub/pr/src/md/unix/uxpoll.c \
401 nsprpub/pr/src/md/unix/uxproces.c \
402 nsprpub/pr/src/md/unix/uxrng.c \
403 nsprpub/pr/src/md/unix/uxshm.c \
404 nsprpub/pr/src/md/unix/uxwrap.c \
405 nsprpub/pr/src/md/unix/l4env.c \
406 nsprpub/pr/src/threads/prcthr.c \
407 nsprpub/pr/src/threads/prmon.c \
408 nsprpub/pr/src/threads/combined/prucpu.c \
409 nsprpub/pr/src/threads/combined/prucv.c \
410 nsprpub/pr/src/threads/combined/prulock.c \
411 nsprpub/pr/src/threads/combined/prustack.c \
412 nsprpub/pr/src/threads/combined/pruthr.c
413# nsprpub/pr/src/md/l4env/prnetdb.c \
414# nsprpub/pr/src/md/l4env/threads.c
415
416nsprpub/pr/src/linking/prlink.c_DEFS = _GNU_SOURCE
417nsprpub/pr/src/prvrsion.c_DEPS = $(PATH_VBox-xpcom-nspr)/_pr_bld.h
418nsprpub/lib/ds/plvrsion.c_DEPS = $(PATH_VBox-xpcom-nspr)/_pl_bld.h
419
420IDLFILES = \
421 xpcom/base/nsIDebug.idl \
422 xpcom/base/nsIInterfaceRequestor.idl \
423 xpcom/base/nsIMemory.idl \
424 xpcom/base/nsIProgrammingLanguage.idl \
425 xpcom/base/nsISupports.idl \
426 xpcom/base/nsITraceRefcnt.idl \
427 xpcom/base/nsIWeakReference.idl \
428 xpcom/base/nsIConsoleMessage.idl \
429 xpcom/base/nsIConsoleService.idl \
430 xpcom/base/nsIConsoleListener.idl \
431 xpcom/base/nsIErrorService.idl \
432 xpcom/base/nsIException.idl \
433 xpcom/base/nsIExceptionService.idl \
434 xpcom/base/nsrootidl.idl \
435 xpcom/components/nsIClassInfo.idl \
436 xpcom/components/nsIComponentRegistrar.idl \
437 xpcom/components/nsIFactory.idl \
438 xpcom/components/nsIModule.idl \
439 xpcom/components/nsIServiceManager.idl \
440 xpcom/components/nsIComponentManager.idl \
441 xpcom/components/nsICategoryManager.idl \
442 xpcom/components/nsIComponentLoader.idl \
443 xpcom/components/nsINativeComponentLoader.idl \
444 xpcom/components/nsIComponentManagerObsolete.idl \
445 xpcom/components/nsIComponentLoaderManager.idl \
446 xpcom/ds/nsISupportsArray.idl \
447 xpcom/ds/nsICollection.idl \
448 xpcom/ds/nsISerializable.idl \
449 xpcom/ds/nsIEnumerator.idl \
450 xpcom/ds/nsISimpleEnumerator.idl \
451 xpcom/ds/nsIObserverService.idl \
452 xpcom/ds/nsIObserver.idl \
453 xpcom/ds/nsIAtom.idl \
454 xpcom/ds/nsIAtomService.idl \
455 xpcom/ds/nsIProperties.idl \
456 xpcom/ds/nsIPersistentProperties2.idl \
457 xpcom/ds/nsIRecyclingAllocator.idl \
458 xpcom/ds/nsIStringEnumerator.idl \
459 xpcom/ds/nsISupportsPrimitives.idl \
460 xpcom/ds/nsISupportsIterators.idl \
461 xpcom/ds/nsIVariant.idl \
462 xpcom/ds/nsITimelineService.idl \
463 xpcom/ds/nsIArray.idl \
464 xpcom/ds/nsIPropertyBag.idl \
465 xpcom/io/nsIDirectoryService.idl \
466 xpcom/io/nsIFile.idl \
467 xpcom/io/nsILocalFile.idl \
468 xpcom/io/nsIInputStream.idl \
469 xpcom/io/nsIObjectInputStream.idl \
470 xpcom/io/nsIBinaryInputStream.idl \
471 xpcom/io/nsIObjectOutputStream.idl \
472 xpcom/io/nsIBinaryOutputStream.idl \
473 xpcom/io/nsIOutputStream.idl \
474 xpcom/io/nsIStreamBufferAccess.idl \
475 xpcom/io/nsIByteArrayInputStream.idl \
476 xpcom/io/nsISeekableStream.idl \
477 xpcom/io/nsIFastLoadFileControl.idl \
478 xpcom/io/nsIFastLoadService.idl \
479 xpcom/io/nsIInputStreamTee.idl \
480 xpcom/io/nsIMultiplexInputStream.idl \
481 xpcom/io/nsIPipe.idl \
482 xpcom/io/nsIAsyncInputStream.idl \
483 xpcom/io/nsIAsyncOutputStream.idl \
484 xpcom/io/nsIScriptableInputStream.idl \
485 xpcom/io/nsIStorageStream.idl \
486 xpcom/io/nsIStringStream.idl \
487 xpcom/io/nsILineInputStream.idl \
488 xpcom/proxy/public/nsIProxyObjectManager.idl \
489 xpcom/threads/nsIEventQueueService.idl \
490 xpcom/threads/nsIEventQueue.idl \
491 xpcom/threads/nsIEventTarget.idl \
492 xpcom/threads/nsIRunnable.idl \
493 xpcom/threads/nsIThread.idl \
494 xpcom/threads/nsITimer.idl \
495 xpcom/threads/nsIEnvironment.idl \
496 xpcom/threads/nsITimerInternal.idl \
497 xpcom/threads/nsITimerManager.idl \
498 xpcom/threads/nsIProcess.idl \
499 xpcom/reflect/xptinfo/public/nsIInterfaceInfo.idl \
500 xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl \
501 xpcom/reflect/xptinfo/public/nsIXPTLoader.idl \
502 ipc/ipcd/client/public/ipcIService.idl \
503 ipc/ipcd/client/public/ipcIMessageObserver.idl \
504 ipc/ipcd/client/public/ipcIClientObserver.idl \
505 ipc/ipcd/extensions/lock/public/ipcILockService.idl \
506 ipc/ipcd/extensions/transmngr/public/ipcITransactionService.idl \
507 ipc/ipcd/extensions/dconnect/public/ipcIDConnectService.idl \
508 ipc/ipcd/extensions/transmngr/public/ipcITransactionObserver.idl
509
510VBox-xpcom-typelib_TEMPLATE = XPCOM
511VBox-xpcom-typelib_SOURCES = \
512 xpcom/typelib/xpt/src/xpt_arena.c \
513 xpcom/typelib/xpt/src/xpt_struct.c \
514 xpcom/typelib/xpt/src/xpt_xdr.c
515
516VBox-xpcom-string_TEMPLATE = XPCOM
517VBox-xpcom-string_DEFS = _IMPL_NS_COM
518VBox-xpcom-string_SOURCES = \
519 xpcom/string/src/nsAString.cpp \
520 xpcom/string/src/nsDependentSubstring.cpp \
521 xpcom/string/src/nsObsoleteAStringThunk.cpp \
522 xpcom/string/src/nsPrintfCString.cpp \
523 xpcom/string/src/nsPromiseFlatString.cpp \
524 xpcom/string/src/nsReadableUtils.cpp \
525 xpcom/string/src/nsSubstring.cpp \
526 xpcom/string/src/nsSubstringTuple.cpp \
527 xpcom/string/src/nsString.cpp \
528 xpcom/string/src/nsStringComparator.cpp \
529 xpcom/string/src/nsStringObsolete.cpp
530
531VBox-xpcom-base_TEMPLATE = XPCOM
532VBox-xpcom-base_SOURCES = \
533 xpcom/base/nsAllocator.cpp \
534 xpcom/base/nsConsoleMessage.cpp \
535 xpcom/base/nsConsoleService.cpp \
536 xpcom/base/nsDebugImpl.cpp \
537 xpcom/base/nsErrorService.cpp \
538 xpcom/base/nsExceptionService.cpp \
539 xpcom/base/nsID.cpp \
540 xpcom/base/nsMemoryImpl.cpp \
541 xpcom/base/nsTraceRefcntImpl.cpp \
542 xpcom/base/nsStackFrameUnix.cpp
543
544VBox-xpcom-ds_TEMPLATE = XPCOM
545VBox-xpcom-ds_SOURCES = \
546 xpcom/ds/pldhash.c \
547 xpcom/ds/nsAtomTable.cpp \
548 xpcom/ds/nsAtomService.cpp \
549 xpcom/ds/nsByteBuffer.cpp \
550 xpcom/ds/nsCheapSets.cpp \
551 xpcom/ds/nsCRT.cpp \
552 xpcom/ds/nsDeque.cpp \
553 xpcom/ds/nsEmptyEnumerator.cpp \
554 xpcom/ds/nsEnumeratorUtils.cpp \
555 xpcom/ds/nsFixedSizeAllocator.cpp \
556 xpcom/ds/nsHashSets.cpp \
557 xpcom/ds/nsHashtable.cpp \
558 xpcom/ds/nsObserverList.cpp \
559 xpcom/ds/nsObserverService.cpp \
560 xpcom/ds/nsProperties.cpp \
561 xpcom/ds/nsPersistentProperties.cpp \
562 xpcom/ds/nsQuickSort.cpp \
563 xpcom/ds/nsRecyclingAllocator.cpp \
564 xpcom/ds/nsStaticNameTable.cpp \
565 xpcom/ds/nsStringEnumerator.cpp \
566 xpcom/ds/nsSupportsArray.cpp \
567 xpcom/ds/nsSupportsArrayEnumerator.cpp \
568 xpcom/ds/nsSupportsPrimitives.cpp \
569 xpcom/ds/nsTHashtable.cpp \
570 xpcom/ds/nsUnicharBuffer.cpp \
571 xpcom/ds/nsVariant.cpp \
572 xpcom/ds/nsVoidArray.cpp \
573 xpcom/ds/nsTextFormatter.cpp \
574 xpcom/ds/nsTimelineService.cpp \
575 xpcom/ds/nsValueArray.cpp \
576 xpcom/ds/nsCOMArray.cpp \
577 xpcom/ds/nsArray.cpp \
578 xpcom/ds/nsArrayEnumerator.cpp
579# xpcom/ds/nsHashPropertyBag.cpp
580
581# @todo what about MOZ_USER_DIR?
582VBox-xpcom-io_TEMPLATE = XPCOM
583VBox-xpcom-io_DEFS = MOZ_USER_DIR="\".mozilla\""
584VBox-xpcom-io_SOURCES = \
585 xpcom/io/nsAppFileLocationProvider.cpp \
586 xpcom/io/nsBinaryStream.cpp \
587 xpcom/io/nsByteArrayInputStream.cpp \
588 xpcom/io/nsDirectoryService.cpp \
589 xpcom/io/nsEscape.cpp \
590 xpcom/io/nsFastLoadFile.cpp \
591 xpcom/io/nsFastLoadService.cpp \
592 xpcom/io/nsInputStreamTee.cpp \
593 xpcom/io/nsLinebreakConverter.cpp \
594 xpcom/io/nsLocalFileCommon.cpp \
595 xpcom/io/nsMultiplexInputStream.cpp \
596 xpcom/io/nsPipe3.cpp \
597 xpcom/io/nsStreamUtils.cpp \
598 xpcom/io/nsScriptableInputStream.cpp \
599 xpcom/io/nsSegmentedBuffer.cpp \
600 xpcom/io/SpecialSystemDirectory.cpp \
601 xpcom/io/nsStorageStream.cpp \
602 xpcom/io/nsStringStream.cpp \
603 xpcom/io/nsUnicharInputStream.cpp \
604 xpcom/io/nsNativeCharsetUtils.cpp
605VBox-xpcom-io_SOURCES.linux = \
606 xpcom/io/nsLocalFileUnix.cpp
607VBox-xpcom-io_SOURCES.l4 = \
608 xpcom/io/nsLocalFileL4.cpp
609
610VBox-xpcom-components_TEMPLATE = XPCOM
611VBox-xpcom-components_DEFS = EXPORT_XPTI_API
612VBox-xpcom-components_SOURCES = \
613 xpcom/components/nsCategoryManager.cpp \
614 xpcom/components/nsComponentManager.cpp \
615 xpcom/components/nsComponentManagerObsolete.cpp \
616 xpcom/components/nsNativeComponentLoader.cpp \
617 xpcom/components/nsServiceManagerObsolete.cpp \
618 xpcom/components/xcDll.cpp \
619 xpcom/components/nsStaticComponentLoader.cpp
620
621VBox-xpcom-threads_TEMPLATE = XPCOM
622VBox-xpcom-threads_SOURCES = \
623 xpcom/threads/plevent.c \
624 xpcom/threads/nsAutoLock.cpp \
625 xpcom/threads/nsEnvironment.cpp \
626 xpcom/threads/nsEventQueue.cpp \
627 xpcom/threads/nsEventQueueService.cpp \
628 xpcom/threads/nsThread.cpp \
629 xpcom/threads/nsTimerImpl.cpp \
630 xpcom/threads/nsProcessCommon.cpp \
631 xpcom/threads/TimerThread.cpp
632
633VBox-xpcom-xptinfo_TEMPLATE = XPCOM
634VBox-xpcom-xptinfo_DEFS = EXPORT_XPTI_API
635VBox-xpcom-xptinfo_SOURCES = \
636 xpcom/reflect/xptinfo/src/xptiFile.cpp \
637 xpcom/reflect/xptinfo/src/xptiInterfaceInfo.cpp \
638 xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp \
639 xpcom/reflect/xptinfo/src/xptiManifest.cpp \
640 xpcom/reflect/xptinfo/src/xptiMisc.cpp \
641 xpcom/reflect/xptinfo/src/xptiTypelibGuts.cpp \
642 xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp \
643 xpcom/reflect/xptinfo/src/xptiZipItem.cpp \
644 xpcom/reflect/xptinfo/src/xptiZipLoader.cpp
645
646
647VBox-xpcom-xptcall_TEMPLATE = XPCOM
648VBox-xpcom-xptcall_DEFS = EXPORT_XPTC_API
649VBox-xpcom-xptcall_DEFS.l4 = L4
650VBox-xpcom-xptcall_SOURCES = xpcom/reflect/xptcall/src/xptcall.cpp
651VBox-xpcom-xptcall_SOURCES.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
652 xpcom/reflect/xptcall/src/md/unix/xptcstubs_gcc_x86_unix.cpp
653VBox-xpcom-xptcall_SOURCES.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
654 xpcom/reflect/xptcall/src/md/unix/xptcstubs_x86_64_linux.cpp
655
656VBox-xpcom-proxy_TEMPLATE = XPCOM
657VBox-xpcom-proxy_SOURCES = xpcom/proxy/src/nsProxyEvent.cpp \
658 xpcom/proxy/src/nsProxyEventClass.cpp \
659 xpcom/proxy/src/nsProxyEventObject.cpp \
660 xpcom/proxy/src/nsProxyObjectManager.cpp \
661 xpcom/proxy/src/nsProxyRelease.cpp
662
663# glue library which all client apps will link with
664VBoxXPCOMGlue_TEMPLATE = XPCOM
665VBoxXPCOMGlue_DEFS = XPCOM_GLUE
666VBoxXPCOMGlue_SOURCES = xpcom/glue/nsCOMPtr.cpp \
667 xpcom/glue/nsComponentManagerUtils.cpp \
668 xpcom/glue/nsDebug.cpp \
669 xpcom/glue/nsGenericFactory.cpp \
670 xpcom/glue/nsIInterfaceRequestorUtils.cpp \
671 xpcom/glue/nsMemory.cpp \
672 xpcom/glue/nsTraceRefcnt.cpp \
673 xpcom/glue/nsWeakReference.cpp \
674 xpcom/glue/standalone/nsXPCOMGlue.cpp \
675 xpcom/glue/standalone/nsGREDirServiceProvider.cpp
676VBoxXPCOMGlue_INST = lib/ $(INST_SDK)/lib/
677
678# the big DLL, assembling all lib files
679VBoxXPCOM_TEMPLATE = XPCOM
680VBoxXPCOM_DEFS = BUILD_DCONNECT="1"
681VBoxXPCOM_SOURCES = \
682 xpcom/glue/nsCOMPtr.cpp \
683 xpcom/glue/nsComponentManagerUtils.cpp \
684 xpcom/glue/nsDebug.cpp \
685 xpcom/glue/nsGenericFactory.cpp \
686 xpcom/glue/nsIInterfaceRequestorUtils.cpp \
687 xpcom/glue/nsMemory.cpp \
688 xpcom/glue/nsTraceRefcnt.cpp \
689 xpcom/glue/nsWeakReference.cpp \
690 xpcom/build/nsXPComInit.cpp \
691 xpcom/build/nsStringAPI.cpp
692VBoxXPCOM_LIBS = \
693 $(PATH_LIB)/VBox-xpcom-typelib$(XPCOM_SUFF_LIB) \
694 $(PATH_LIB)/VBox-xpcom-string$(XPCOM_SUFF_LIB) \
695 $(PATH_LIB)/VBox-xpcom-base$(XPCOM_SUFF_LIB) \
696 $(PATH_LIB)/VBox-xpcom-ds$(XPCOM_SUFF_LIB) \
697 $(PATH_LIB)/VBox-xpcom-io$(XPCOM_SUFF_LIB) \
698 $(PATH_LIB)/VBox-xpcom-components$(XPCOM_SUFF_LIB) \
699 $(PATH_LIB)/VBox-xpcom-threads$(XPCOM_SUFF_LIB) \
700 $(PATH_LIB)/VBox-xpcom-xptinfo$(XPCOM_SUFF_LIB) \
701 $(PATH_LIB)/VBox-xpcom-xptcall$(XPCOM_SUFF_LIB) \
702 $(PATH_LIB)/VBox-xpcom-proxy$(XPCOM_SUFF_LIB) \
703 $(PATH_LIB)/VBox-xpcom-nspr$(XPCOM_SUFF_LIB)
704VBoxXPCOM_LDFLAGS = -Wl,--whole-archive $(VBoxXPCOM_LIBS) -Wl,--no-whole-archive
705# EF heap
706#VBoxXPCOM_LIBS += $(LIB_RUNTIME_EF)
707#VBoxXPCOM_LDFLAGS = -Wl,--whole-archive $(VBoxXPCOM_LIBS) -Wl,--no-whole-archive $(LIB_RUNTIME)
708
709ifdef VBOX_IPC_RELEASE_LOG
710IPC_LOGGING = 1
711else ifneq ($(BUILD_TYPE),release)
712IPC_LOGGING = 1
713endif
714
715TEMPLATE_XPCOMIPC = XPCOM IPC libraries
716TEMPLATE_XPCOMIPC_EXTENDS = XPCOM
717TEMPLATE_XPCOMIPC_DEFS = $(TEMPLATE_XPCOM_DEFS) BUILD_DCONNECT="1"
718ifdef IPC_LOGGING
719TEMPLATE_XPCOMIPC_DEFS += IN_RING3 IPC_LOGGING
720TEMPLATE_XPCOMIPC_LIBS = $(TEMPLATE_XPCOM_LIBS) $(LIB_RUNTIME)
721endif
722
723TEMPLATE_XPCOMIPCEXE = XPCOM IPC executables
724TEMPLATE_XPCOMIPCEXE_EXTENDS = XPCOMEXE
725TEMPLATE_XPCOMIPCEXE_DEFS = $(TEMPLATE_XPCOMEXE_DEFS) BUILD_DCONNECT="1"
726ifdef IPC_LOGGING
727TEMPLATE_XPCOMIPCEXE_DEFS += IN_RING3 IPC_LOGGING
728TEMPLATE_XPCOMIPCEXE_LIBS = $(TEMPLATE_XPCOMEXE_LIBS) $(LIB_RUNTIME)
729endif
730
731VBox-xpcom-ipcutils_TEMPLATE = XPCOMIPC
732VBox-xpcom-ipcutils_SOURCES = \
733 ipc/ipcd/util/src/ipcMessageReader.cpp \
734 ipc/ipcd/util/src/ipcMessageWriter.cpp
735
736VBox-xpcom-ipcshared_TEMPLATE = XPCOMIPC
737VBox-xpcom-ipcshared_SOURCES = \
738 ipc/ipcd/shared/src/ipcLog.cpp \
739 ipc/ipcd/shared/src/ipcConfig.cpp \
740 ipc/ipcd/shared/src/ipcMessage.cpp \
741 ipc/ipcd/shared/src/ipcMessagePrimitives.cpp \
742 ipc/ipcd/shared/src/ipcStringList.cpp \
743 ipc/ipcd/shared/src/ipcIDList.cpp \
744 ipc/ipcd/shared/src/ipcm.cpp
745
746VBox-xpcom-ipcdlock_TEMPLATE = XPCOMIPC
747VBox-xpcom-ipcdlock_SOURCES = \
748 ipc/ipcd/extensions/lock/src/ipcLockProtocol.cpp \
749 ipc/ipcd/extensions/lock/src/ipcLockService.cpp
750
751VBox-xpcom-ipctransmgr_TEMPLATE = XPCOMIPC
752VBox-xpcom-ipctransmgr_SOURCES = \
753 ipc/ipcd/extensions/transmngr/src/tmTransactionService.cpp
754
755VBox-xcpom-ipctmgrcom_TEMPLATE = XPCOMIPC
756VBox-xcpom-ipctmgrcom_SOURCES = \
757 ipc/ipcd/extensions/transmngr/common/tmTransaction.cpp \
758 ipc/ipcd/extensions/transmngr/common/tmVector.cpp
759
760
761# DCONNECT client shared object
762VBoxXPCOMIPCC_TEMPLATE = XPCOMIPC
763VBoxXPCOMIPCC_DEFS = HAVE_DEPENDENT_LIBS
764VBoxXPCOMIPCC_SOURCES = \
765 ipc/ipcd/client/src/ipcdclient.cpp \
766 ipc/ipcd/client/src/ipcService.cpp \
767 ipc/ipcd/client/src/ipcModuleFactory.cpp \
768 ipc/ipcd/client/src/ipcConnectionUnix.cpp \
769 ipc/ipcd/extensions/dconnect/src/ipcDConnectService.cpp
770VBoxXPCOMIPCC_LIBS = \
771 $(PATH_LIB)/VBox-xpcom-ipcutils$(XPCOM_SUFF_LIB) \
772 $(PATH_LIB)/VBox-xpcom-ipcshared$(XPCOM_SUFF_LIB) \
773 $(PATH_LIB)/VBox-xpcom-ipcdlock$(XPCOM_SUFF_LIB) \
774 $(PATH_LIB)/VBox-xpcom-ipctransmgr$(XPCOM_SUFF_LIB) \
775 $(PATH_LIB)/VBox-xcpom-ipctmgrcom$(XPCOM_SUFF_LIB)
776# EF
777#VBoxXPCOMIPCC_LIBS += $(LIB_RUNTIME)
778
779# DCONNECT daemon executable
780VBoxXPCOMIPCD_TEMPLATE = XPCOMIPCEXE
781VBoxXPCOMIPCD_SOURCES = \
782 ipc/ipcd/daemon/src/ipcd.cpp \
783 ipc/ipcd/daemon/src/ipcClient.cpp \
784 ipc/ipcd/daemon/src/ipcModuleReg.cpp \
785 ipc/ipcd/daemon/src/ipcCommandModule.cpp \
786 ipc/ipcd/daemon/src/ipcdUnix.cpp
787
788#
789# testcases
790#
791tstnsIFileEnumerator_TEMPLATE = XPCOMEXE
792tstnsIFileEnumerator_SOURCES = xpcom/tests/nsIFileEnumerator.cpp
793tstnsIFileTest_TEMPLATE = XPCOMEXE
794tstnsIFileTest_SOURCES = xpcom/tests/nsIFileTest.cpp
795tstTestArray_TEMPLATE = XPCOMEXE
796tstTestArray_SOURCES = xpcom/tests/TestArray.cpp
797tstTestAtoms_TEMPLATE = XPCOMEXE
798tstTestAtoms_SOURCES = xpcom/tests/TestAtoms.cpp
799tstTestAutoLock_TEMPLATE = XPCOMEXE
800tstTestAutoLock_SOURCES = xpcom/tests/TestAutoLock.cpp
801tstTestCallTemplates_TEMPLATE = XPCOMEXE
802tstTestCallTemplates_SOURCES = xpcom/tests/TestCallTemplates.cpp
803tstTestCOMPtr_TEMPLATE = XPCOMEXE
804tstTestCOMPtr_SOURCES = xpcom/tests/TestCOMPtr.cpp
805tstTestCOMPtrEq_TEMPLATE = XPCOMEXE
806tstTestCOMPtrEq_SOURCES = xpcom/tests/TestCOMPtrEq.cpp
807tstTestCRT_TEMPLATE = XPCOMEXE
808tstTestCRT_SOURCES = xpcom/tests/TestCRT.cpp
809tstTestFactory_TEMPLATE = XPCOMEXE
810tstTestFactory_SOURCES = xpcom/tests/TestFactory.cpp
811tstTestHashtables_TEMPLATE = XPCOMEXE
812tstTestHashtables_SOURCES = xpcom/tests/TestHashtables.cpp
813tstTestID_TEMPLATE = XPCOMEXE
814tstTestID_SOURCES = xpcom/tests/TestID.cpp
815tstTestObserverService_TEMPLATE= XPCOMEXE
816tstTestObserverService_SOURCES = xpcom/tests/TestObserverService.cpp
817tstTestPermanentAtoms_TEMPLATE = XPCOMEXE
818tstTestPermanentAtoms_SOURCES = xpcom/tests/TestPermanentAtoms.cpp
819tstTestPipes_TEMPLATE = XPCOMEXE
820tstTestPipes_SOURCES = xpcom/tests/TestPipes.cpp
821tstTestServMgr_TEMPLATE = XPCOMEXE
822tstTestServMgr_SOURCES = xpcom/tests/TestServMgr.cpp
823tstTestServMgr_INCS = xpcom/tests/services
824tstTestThreads_TEMPLATE = XPCOMEXE
825tstTestThreads_SOURCES = xpcom/tests/TestThreads.cpp
826tstTestXPIDLString_TEMPLATE = XPCOMEXE
827tstTestXPIDLString_SOURCES = xpcom/tests/TestXPIDLString.cpp
828tstTestDeque_TEMPLATE = XPCOMEXE
829tstTestDeque_SOURCES = xpcom/tests/TestDeque.cpp
830tstTestAutoPtr_TEMPLATE = XPCOMEXE
831tstTestAutoPtr_SOURCES = xpcom/tests/TestAutoPtr.cpp
832tstTestMinStringAPI_TEMPLATE = XPCOMEXE
833tstTestMinStringAPI_SOURCES = xpcom/tests/TestMinStringAPI.cpp
834tstTestStrings_TEMPLATE = XPCOMEXE
835tstTestStrings_SOURCES = xpcom/tests/TestStrings.cpp
836
837OTHER_CLEAN += \
838 $(PATH_VBox-xpcom-string)/idl_ts \
839 $(addprefix $(PATH_BIN)/sdk/include/,$(notdir $(subst .idl,.h,$(IDLFILES)))) \
840 $(addprefix $(PATH_BIN)/sdk/include/,$(notdir $(subst .idl,.xpt,$(IDLFILES)))) \
841 $(addprefix $(PATH_BIN)/sdk/idl/,$(notdir $(IDLFILES)))
842
843
844# generate rules
845include $(PATH_KBUILD)/footer.kmk
846
847
848NSPRPUB_HEADERS = nsprpub/pr/include/nspr.h nsprpub/lib/ds/plarena.h nsprpub/lib/ds/plarenas.h \
849 nsprpub/lib/libc/include/plbase64.h nsprpub/lib/libc/include/plerror.h \
850 nsprpub/lib/libc/include/plgetopt.h nsprpub/lib/ds/plhash.h \
851 nsprpub/lib/libc/include/plresolv.h nsprpub/lib/libc/include/plstr.h \
852 nsprpub/pr/include/pratom.h nsprpub/pr/include/prbit.h nsprpub/pr/include/prclist.h \
853 nsprpub/pr/include/prcmon.h nsprpub/pr/include/prcountr.h nsprpub/pr/include/prcvar.h \
854 nsprpub/pr/include/prdtoa.h nsprpub/pr/include/prenv.h nsprpub/pr/include/prerr.h \
855 nsprpub/pr/include/prerror.h nsprpub/pr/include/prinet.h nsprpub/pr/include/prinit.h \
856 nsprpub/pr/include/prinrval.h nsprpub/pr/include/prio.h nsprpub/pr/include/pripcsem.h \
857 nsprpub/pr/include/prlink.h nsprpub/pr/include/prlock.h nsprpub/pr/include/prlog.h \
858 nsprpub/pr/include/prlong.h nsprpub/pr/include/prmem.h nsprpub/pr/include/prmon.h \
859 nsprpub/pr/include/prmwait.h nsprpub/pr/include/prnetdb.h nsprpub/pr/include/prolock.h \
860 nsprpub/pr/include/prpdce.h nsprpub/pr/include/prprf.h nsprpub/pr/include/prproces.h \
861 nsprpub/pr/include/prrng.h nsprpub/pr/include/prrwlock.h nsprpub/pr/include/prshm.h \
862 nsprpub/pr/include/prshma.h nsprpub/pr/include/prsystem.h nsprpub/pr/include/prthread.h \
863 nsprpub/pr/include/prtime.h nsprpub/pr/include/prtpool.h nsprpub/pr/include/prtrace.h \
864 nsprpub/pr/include/prtypes.h nsprpub/pr/include/prvrsion.h nsprpub/pr/include/prwin16.h
865NSPRPUB_MD_HEADERS = \
866 nsprpub/pr/include/md/_linux.h nsprpub/pr/include/md/_l4v2.h \
867 nsprpub/pr/include/md/_unixos.h nsprpub/pr/include/md/_unix_errors.h \
868 nsprpub/pr/include/md/_pth.h nsprpub/pr/include/md/prosdep.h
869NSPRPUB_OBS_HEADERS = \
870 nsprpub/pr/include/obsolete/pralarm.h nsprpub/pr/include/obsolete/probslet.h \
871 nsprpub/pr/include/obsolete/protypes.h nsprpub/pr/include/obsolete/prsem.h
872
873NSPRPUB_PRIV_HEADERS = \
874 nsprpub/pr/include/private/pprio.h nsprpub/pr/include/private/pprthred.h \
875 nsprpub/pr/include/private/prpriv.h
876
877STRING_HEADERS = xpcom/string/public/nsAString.h xpcom/string/public/nsAlgorithm.h \
878 xpcom/string/public/nsCharTraits.h xpcom/string/public/nsDependentString.h \
879 xpcom/string/public/nsDependentSubstring.h xpcom/string/public/nsEmbedString.h \
880 xpcom/string/public/nsLiteralString.h xpcom/string/public/nsObsoleteAString.h \
881 xpcom/string/public/nsPrintfCString.h xpcom/string/public/nsPromiseFlatString.h \
882 xpcom/string/public/nsReadableUtils.h xpcom/string/public/nsString.h \
883 xpcom/string/public/nsStringAPI.h xpcom/string/public/nsStringFwd.h \
884 xpcom/string/public/nsStringIterator.h xpcom/string/public/nsSubstring.h \
885 xpcom/string/public/nsSubstringTuple.h xpcom/string/public/nsTAString.h \
886 xpcom/string/public/nsTDependentString.h xpcom/string/public/nsTDependentSubstring.h \
887 xpcom/string/public/nsTObsoleteAString.h xpcom/string/public/nsTPromiseFlatString.h \
888 xpcom/string/public/nsTString.h xpcom/string/public/nsTSubstring.h \
889 xpcom/string/public/nsTSubstringTuple.h xpcom/string/public/nsUTF8Utils.h \
890 xpcom/string/public/nsXPIDLString.h xpcom/string/public/string-template-def-char.h \
891 xpcom/string/public/string-template-def-unichar.h \
892 xpcom/string/public/string-template-undef.h
893
894XPCOM_HEADERS = xpcom/base/nsAgg.h xpcom/io/nsAppDirectoryServiceDefs.h \
895 xpcom/ds/nsArray.h xpcom/ds/nsArrayEnumerator.h xpcom/ds/nsAtomService.h \
896 xpcom/ds/nsAutoBuffer.h xpcom/threads/nsAutoLock.h xpcom/base/nsAutoPtr.h \
897 xpcom/ds/nsBaseHashtable.h xpcom/ds/nsCOMArray.h xpcom/glue/nsCOMPtr.h \
898 xpcom/ds/nsCRT.h xpcom/components/nsCategoryManagerUtils.h xpcom/ds/nsCheapSets.h \
899 xpcom/ds/nsClassHashtable.h xpcom/base/nsCom.h \
900 xpcom/components/nsComponentManagerObsolete.h \
901 xpcom/components/nsComponentManagerUtils.h xpcom/ds/nsCppSharedAllocator.h \
902 xpcom/ds/nsDataHashtable.h xpcom/glue/nsDebug.h xpcom/base/nsDebugImpl.h \
903 xpcom/ds/nsDeque.h xpcom/io/nsDirectoryService.h xpcom/io/nsDirectoryServiceDefs.h \
904 xpcom/io/nsDirectoryServiceUtils.h xpcom/ds/nsDoubleHashtable.h \
905 xpcom/ds/nsEnumeratorUtils.h xpcom/base/nsError.h xpcom/io/nsEscape.h \
906 xpcom/threads/nsEventQueueUtils.h xpcom/io/nsFastLoadPtr.h \
907 xpcom/io/nsFastLoadService.h xpcom/ds/nsFixedSizeAllocator.h \
908 xpcom/glue/nsGenericFactory.h xpcom/ds/nsHashKeys.h xpcom/ds/nsHashSets.h \
909 xpcom/ds/nsHashtable.h xpcom/base/nsIAllocator.h xpcom/ds/nsIByteBuffer.h \
910 xpcom/base/nsID.h xpcom/glue/nsIGenericFactory.h xpcom/base/nsIID.h \
911 xpcom/glue/nsIInterfaceRequestorUtils.h xpcom/components/nsIServiceManagerObsolete.h \
912 xpcom/components/nsIServiceManagerUtils.h xpcom/base/nsISupportsBase.h \
913 xpcom/glue/nsISupportsImpl.h xpcom/base/nsISupportsObsolete.h \
914 xpcom/glue/nsISupportsUtils.h xpcom/ds/nsIUnicharBuffer.h \
915 xpcom/io/nsIUnicharInputStream.h xpcom/glue/nsIWeakReferenceUtils.h \
916 xpcom/ds/nsInt64.h xpcom/ds/nsInterfaceHashtable.h \
917 xpcom/io/nsLinebreakConverter.h xpcom/io/nsLocalFile.h xpcom/io/nsLocalFileUnix.h \
918 xpcom/glue/nsMemory.h xpcom/components/nsModule.h xpcom/io/nsMultiplexInputStream.h \
919 xpcom/io/nsNativeCharsetUtils.h xpcom/components/nsNativeComponentLoader.h \
920 xpcom/ds/nsObserverService.h xpcom/components/nsObsoleteModuleLoading.h \
921 xpcom/threads/nsProcess.h xpcom/proxy/public/nsProxiedService.h \
922 xpcom/proxy/public/nsProxyEvent.h xpcom/proxy/public/nsProxyRelease.h \
923 xpcom/ds/nsQuickSort.h xpcom/ds/nsRecyclingAllocator.h xpcom/ds/nsRefPtrHashtable.h \
924 xpcom/io/nsScriptableInputStream.h xpcom/ds/nsStaticAtom.h \
925 xpcom/components/nsStaticComponent.h xpcom/ds/nsStaticNameTable.h \
926 xpcom/io/nsStorageStream.h xpcom/io/nsStreamUtils.h xpcom/ds/nsStringEnumerator.h \
927 xpcom/io/nsStringIO.h xpcom/io/nsStringStream.h xpcom/ds/nsSupportsArray.h \
928 xpcom/ds/nsSupportsPrimitives.h xpcom/ds/nsTHashtable.h xpcom/ds/nsTextFormatter.h \
929 xpcom/ds/nsTime.h xpcom/glue/nsTraceRefcnt.h xpcom/base/nsTraceRefcntImpl.h \
930 xpcom/ds/nsUnitConversion.h xpcom/ds/nsValueArray.h xpcom/ds/nsVariant.h \
931 xpcom/ds/nsVoidArray.h xpcom/base/nsWeakPtr.h xpcom/glue/nsWeakReference.h \
932 xpcom/build/nsXPCOM.h xpcom/build/nsXPCOMCID.h xpcom/glue/standalone/nsXPCOMGlue.h \
933 xpcom/base/nscore.h xpcom/ds/pldhash.h xpcom/threads/plevent.h \
934 xpcom/components/xcDll.h xpcom/typelib/xpt/public/xpt_arena.h \
935 xpcom/typelib/xpt/public/xpt_struct.h xpcom/typelib/xpt/public/xpt_xdr.h \
936 xpcom/reflect/xptcall/public/xptcall.h xpcom/reflect/xptcall/public/xptcstubsdecl.inc \
937 xpcom/reflect/xptcall/public/xptcstubsdef.inc xpcom/reflect/xptinfo/public/xptinfo.h \
938 xpcom-config.h
939
940IPCD_HEADERS = ipc/ipcd/client/public/ipcCID.h ipc/ipcd/extensions/lock/public/ipcLockCID.h \
941 ipc/ipcd/util/public/ipcMessageReader.h ipc/ipcd/util/public/ipcMessageWriter.h \
942 ipc/ipcd/daemon/public/ipcModule.h ipc/ipcd/daemon/public/ipcModuleUtil.h \
943 ipc/ipcd/client/public/ipcdclient.h
944
945# dummy target for copying XPCOM header files. This is done manually for now
946# as we have to choose the right target directories
947$(PATH_BIN)/sdk/include/xpcom/.keep: nsprpub/pr/include/md/_vbox.cfg \
948 nsprpub/pr/include/md/_linux.cfg nsprpub/pr/include/md/_l4v2.cfg $(NSPRPUB_HEADERS) \
949 $(NSPRPUB_MD_HEADERS) $(NSPRPUB_OBS_HEADERS) $(NSPRPUB_PRIV_HEADERS) \
950 $(STRING_HEADERS) $(XPCOM_HEADERS) $(IPCD_HEADERS)
951 $(call MSG_L1,Installing XPCOM headers)
952 $(QUIET)$(MKDIR) -p \
953 $(@D)/nsprpub \
954 $(@D)/nsprpub/md \
955 $(@D)/nsprpub/obsolete \
956 $(@D)/nsprpub/private \
957 $(@D)/string \
958 $(@D)/xpcom \
959 $(@D)/ipcd
960 $(QUIET)$(CP) -p nsprpub/pr/include/md/_vbox.cfg $(@D)/nsprpub/prcpucfg.h
961 $(QUIET)$(CP) -p nsprpub/pr/include/md/_linux.cfg $(@D)/nsprpub/_linuxcfg.h
962 $(QUIET)$(CP) -p nsprpub/pr/include/md/_l4v2.cfg $(@D)/nsprpub/_l4v2cfg.h
963 $(QUIET)$(CP) -p $(NSPRPUB_HEADERS) $(@D)/nsprpub
964 $(QUIET)$(CP) -p $(NSPRPUB_MD_HEADERS) $(@D)/nsprpub/md
965 $(QUIET)$(CP) -p $(NSPRPUB_OBS_HEADERS) $(@D)/nsprpub/obsolete
966 $(QUIET)$(CP) -p $(NSPRPUB_PRIV_HEADERS) $(@D)/nsprpub/private
967 $(QUIET)$(CP) -p $(STRING_HEADERS) $(@D)/string
968 $(QUIET)$(CP) -p $(XPCOM_HEADERS) $(@D)/xpcom
969 $(QUIET)$(CP) -p $(IPCD_HEADERS) $(@D)/ipcd
970 $(QUIET)$(RM) -f $@
971 $(QUIET)$(APPEND) "$@" "keep"
972
973# Add the header files which we just installed to the "CLEAN" target
974OTHER_CLEAN += \
975 $(PATH_BIN)/sdk/include/xpcom/nsprpub/prcpucfg.h \
976 $(PATH_BIN)/sdk/include/xpcom/nsprpub/_linuxcfg.h \
977 $(PATH_BIN)/sdk/include/xpcom/nsprpub/_l4v2cfg.h \
978 $(addprefix $(PATH_BIN)/sdk/include/xpcom/nsprpub/,$(notdir $(NSPRPUB_HEADERS))) \
979 $(addprefix $(PATH_BIN)/sdk/include/xpcom/nsprpub/md/,$(notdir $(NSPRPUB_MD_HEADERS))) \
980 $(addprefix $(PATH_BIN)/sdk/include/xpcom/nsprpub/obsolete/,$(notdir $(NSPRPUB_OBS_HEADERS))) \
981 $(addprefix $(PATH_BIN)/sdk/include/xpcom/nsprpub/private/,$(notdir $(NSPRPUB_PRIV_HEADERS))) \
982 $(addprefix $(PATH_BIN)/sdk/include/xpcom/string/,$(notdir $(STRING_HEADERS))) \
983 $(addprefix $(PATH_BIN)/sdk/include/xpcom/xpcom/,$(notdir $(XPCOM_HEADERS))) \
984 $(addprefix $(PATH_BIN)/sdk/include/xpcom/ipcd/,$(notdir $(IPCD_HEADERS))) \
985 $(PATH_BIN)/sdk/include/xpcom/.keep
986
987XPTFILES = $(addprefix $(PATH_TARGET)/, \
988 nsIConsoleListener.xpt \
989 nsIConsoleMessage.xpt \
990 nsIConsoleService.xpt \
991 nsIErrorService.xpt \
992 nsIException.xpt \
993 nsIExceptionService.xpt \
994 nsIDebug.xpt \
995 nsIInterfaceRequestor.xpt \
996 nsIMemory.xpt \
997 nsIProgrammingLanguage.xpt \
998 nsISupports.xpt \
999 nsITraceRefcnt.xpt \
1000 nsIWeakReference.xpt \
1001 nsrootidl.xpt \
1002 nsIAtom.xpt \
1003 nsIAtomService.xpt \
1004 nsICollection.xpt \
1005 nsIEnumerator.xpt \
1006 nsIPersistentProperties2.xpt \
1007 nsIPropertyBag.xpt \
1008 nsIRecyclingAllocator.xpt \
1009 nsIVariant.xpt \
1010 nsISerializable.xpt \
1011 nsIStringEnumerator.xpt \
1012 nsISupportsArray.xpt \
1013 nsISupportsIterators.xpt \
1014 nsITimelineService.xpt \
1015 nsIArray.xpt \
1016 nsIObserverService.xpt \
1017 nsIObserver.xpt \
1018 nsIProperties.xpt \
1019 nsISimpleEnumerator.xpt \
1020 nsISupportsPrimitives.xpt \
1021 nsIBinaryInputStream.xpt \
1022 nsIBinaryOutputStream.xpt \
1023 nsIByteArrayInputStream.xpt \
1024 nsIFastLoadFileControl.xpt \
1025 nsIFastLoadService.xpt \
1026 nsIInputStreamTee.xpt \
1027 nsILineInputStream.xpt \
1028 nsIMultiplexInputStream.xpt \
1029 nsIObjectInputStream.xpt \
1030 nsIObjectOutputStream.xpt \
1031 nsIPipe.xpt \
1032 nsISeekableStream.xpt \
1033 nsIStorageStream.xpt \
1034 nsIStringStream.xpt \
1035 nsIStreamBufferAccess.xpt \
1036 nsIAsyncInputStream.xpt \
1037 nsIAsyncOutputStream.xpt \
1038 nsIDirectoryService.xpt \
1039 nsIFile.xpt \
1040 nsILocalFile.xpt \
1041 nsIInputStream.xpt \
1042 nsIOutputStream.xpt \
1043 nsIScriptableInputStream.xpt \
1044 nsIComponentLoader.xpt \
1045 nsIComponentLoaderManager.xpt \
1046 nsIComponentManagerObsolete.xpt \
1047 nsINativeComponentLoader.xpt \
1048 nsIClassInfo.xpt \
1049 nsIComponentRegistrar.xpt \
1050 nsIFactory.xpt \
1051 nsIModule.xpt \
1052 nsIServiceManager.xpt \
1053 nsIComponentManager.xpt \
1054 nsICategoryManager.xpt \
1055 nsIThread.xpt \
1056 nsITimer.xpt \
1057 nsITimerInternal.xpt \
1058 nsITimerManager.xpt \
1059 nsIRunnable.xpt \
1060 nsIEventTarget.xpt \
1061 nsIEventQueue.xpt \
1062 nsIEventQueueService.xpt \
1063 nsIEnvironment.xpt \
1064 nsIProcess.xpt \
1065 nsIInterfaceInfo.xpt \
1066 nsIInterfaceInfoManager.xpt \
1067 nsIXPTLoader.xpt)
1068
1069# combined typelib library
1070$(PATH_BIN)/VBoxXPCOMBase.xpt: $(XPTFILES)
1071 $(call MSG_L1,Linking $@)
1072 $(QUIET)$(TARGET_xpt_link) $@ $^
1073
1074# generate build stamps
1075$(PATH_VBox-xpcom-nspr)/_pr_bld.h:
1076 $(call MSG_L1,Generating $@)
1077 $(QUIET)echo '#define _BUILD_STRING "$(shell date "+%Y-%m-%d %T")"' > $@
1078
1079$(PATH_VBox-xpcom-nspr)/_pl_bld.h:
1080 $(call MSG_L1,Generating $@)
1081 $(QUIET)echo '#define _BUILD_STRING "$(shell date "+%Y-%m-%d %T")"' > $@
1082
1083#
1084# Generate IDL rules.
1085#
1086
1087##
1088# Define for compiling one IDL into a header and a typelib
1089# @param idl The filename with everything.
1090XPIDL_INCS = -I xpcom/base/ -I xpcom/ds/ -I xpcom/components/ -I xpcom/io/ -I xpcom/threads/ -I xpcom/reflect/xptinfo/public/
1091define def_IDL
1092$(addprefix $(PATH_BIN)/sdk/include/,$(notdir $(subst .idl,.h,$(idl)))) \
1093 $(PATH_TARGET)/$(notdir $(subst .idl,.xpt,$(idl))): $(idl)
1094 $$(call MSG_L1,xpidl $$<)
1095 $$(QUIET)$(MKDIR) -p $(PATH_BIN)/sdk/include $(PATH_BIN)/sdk/idl
1096 $$(QUIET)$$(TARGET_xpidl) -m header $(XPIDL_INCS) -e $$@ $$<
1097 $$(QUIET)$$(TARGET_xpidl) -m typelib $(XPIDL_INCS) -e $(addprefix $(PATH_TARGET)/,$(notdir $(subst .idl,.xpt,$(idl)))) $$<
1098 $$(QUIET)$(CP) $$< $$(PATH_BIN)/sdk/idl
1099endef
1100
1101$(foreach idl, $(IDLFILES), $(eval $(def_IDL)))
1102
1103# dummy target.
1104$(PATH_VBox-xpcom-string)/idl_ts: $(addprefix $(PATH_BIN)/sdk/include/,$(notdir $(subst .idl,.h,$(IDLFILES))))
1105 $(call MSG_L1,IDL processing completed.)
1106 $(QUIET)$(MKDIR) -p $(dir $@)
1107 $(QUIET)$(ECHO_EXT) > $@
1108
1109# Manual dependency...
1110xpcom/string/src/nsAString.cpp: $(PATH_VBox-xpcom-string)/idl_ts
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use