VirtualBox

source: vbox/trunk/src/libs/xpcom18a4/Config.kmk@ 102030

Last change on this file since 102030 was 102030, checked in by vboxsync, 12 months ago

libs/xpcom: Get rid of now unused nsThread.{cpp,h}, bugref:10545

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 22.6 KB
Line 
1# $Id: Config.kmk 102030 2023-11-09 12:38:18Z vboxsync $
2## @file
3# XPCOM kBuild Configuration file.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28# Include the top-level configure file.
29ifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
30 include $(PATH_ROOT)/Config.kmk
31endif
32
33#
34# Globals.
35#
36VBOX_PATH_XPCOM_SRC := $(PATH_ROOT)/src/libs/xpcom18a4
37
38
39#
40# Template for building the XPCOM libraries (shared).
41#
42TEMPLATE_XPComDll = XPCOM libraries (shared)
43TEMPLATE_XPComDll_EXTENDS = VBoxR3DllNonPedantic
44## @todo correct inheritance here to make it use all the VBoxR3DllNonPedantic settings instead of overriding all of them.
45TEMPLATE_XPComDll_ASTOOL = $(TEMPLATE_VBoxR3DllNonPedantic_TOOL)
46TEMPLATE_XPComDll_ASFLAGS = $(NO_SUCH_VARIABLE)
47TEMPLATE_XPComDll_ASFLAGS.x86 = -m32
48TEMPLATE_XPComDll_ASFLAGS.amd64 = -m64
49TEMPLATE_XPComDll_ASDEFS = $(NO_SUCH_VARIABLE)
50TEMPLATE_XPComDll_CXXFLAGS = -g -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
51 $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
52 $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) \
53 $(VBOX_GCC_Wno-delete-non-virtual-dtor) $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_fdiagnostics-show-option) \
54 $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_OPT) $(VBOX_GCC_FP)
55#if !defined(VBOX_GCC_Wno-delete-non-virtual-dtor) && defined(VBOX_GCC_Wno-non-virtual-dtor)
56ifndef VBOX_GCC_Wno-delete-non-virtual-dtor
57 ifdef VBOX_GCC_Wno-non-virtual-dtor
58 TEMPLATE_XPComDll_CXXFLAGS += $(VBOX_GCC_Wno-non-virtual-dtor)
59 endif
60endif
61TEMPLATE_XPComDll_CXXFLAGS.x86 = -m32
62TEMPLATE_XPComDll_CXXFLAGS.amd64 = -m64
63TEMPLATE_XPComDll_CXXFLAGS.arm64 = -m64
64TEMPLATE_XPComDll_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
65TEMPLATE_XPComDll_CXXFLAGS.freebsd = -pthread
66TEMPLATE_XPComDll_CXXFLAGS.linux = -pthread
67TEMPLATE_XPComDll_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
68TEMPLATE_XPComDll_CFLAGS = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \
69 $(VBOX_GCC_Wno-multistatement-macros) $(VBOX_GCC_fdiagnostics-show-option) $(VBOX_GCC_SANITIZER_FLAGS) $(VBOX_GCC_OPT) $(VBOX_GCC_FP)
70TEMPLATE_XPComDll_CFLAGS.x86 = -m32
71TEMPLATE_XPComDll_CFLAGS.amd64 = -m64
72TEMPLATE_XPComDll_CFLAGS.arm64 = -m64
73TEMPLATE_XPComDll_CFLAGS.freebsd = -pthread
74TEMPLATE_XPComDll_CFLAGS.linux = -pthread -ansi
75TEMPLATE_XPComDll_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
76TEMPLATE_XPComDll_DEFS = \
77 MOZILLA_CLIENT=1 \
78 NDEBUG=1 \
79 _IMPL_NS_COM \
80 IN_RING3 \
81 VBOX_USE_IPRT_IN_XPCOM
82ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
83 TEMPLATE_XPComDll_DEFS += \
84 XPCOM_DLL_BASE="$(basename $(notdir $(LIB_XPCOM)))" \
85 MOZ_DLL_SUFFIX="$(suffix $(LIB_XPCOM))"
86else
87 TEMPLATE_XPComDll_DEFS += \
88 XPCOM_DLL_BASE=\"$(basename $(notdir $(LIB_XPCOM)))\" \
89 MOZ_DLL_SUFFIX=\"$(suffix $(LIB_XPCOM))\"
90endif
91
92ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
93 TEMPLATE_XPComDll_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
94endif
95TEMPLATE_XPComDll_DEFS.x86 = i386=1
96ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
97 TEMPLATE_XPComDll_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY(a,b)=__builtin_va_copy(a,b)
98else
99 TEMPLATE_XPComDll_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
100endif
101ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
102 TEMPLATE_XPComDll_DEFS.arm64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY(a,b)=__builtin_va_copy(a,b)
103else
104 TEMPLATE_XPComDll_DEFS.arm64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
105endif
106ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
107 TEMPLATE_XPComDll_DEFS.darwin = OSTYPE="Darwin8.8.1" OSARCH="Darwin" XP_UNIX=1 XP_MACOSX=1 TARGET_CARBON=1 HAVE_VISIBILITY_ATTRIBUTE=1 DARWIN=1 $(TEMPLATE_VBoxR3DllNonPedantic_DEFS.darwin)
108else
109 TEMPLATE_XPComDll_DEFS.darwin = OSTYPE=\"Darwin8.8.1\" OSARCH=\"Darwin\" XP_UNIX=1 XP_MACOSX=1 TARGET_CARBON=1 HAVE_VISIBILITY_ATTRIBUTE=1 DARWIN=1 $(TEMPLATE_VBoxR3DllNonPedantic_DEFS.darwin)
110endif
111TEMPLATE_XPComDll_DEFS.darwin.amd64 = VBOX_MACOSX_FOLLOWS_UNIX_IO
112TEMPLATE_XPComDll_DEFS.darwin.arm64 = VBOX_MACOSX_FOLLOWS_UNIX_IO
113ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
114 TEMPLATE_XPComDll_DEFS.freebsd = OSTYPE="FreeBSD5+" OSARCH="FreeBSD" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
115else
116 TEMPLATE_XPComDll_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
117endif
118ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
119 TEMPLATE_XPComDll_DEFS.linux = OSTYPE="Linux2.6" OSARCH="Linux" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
120else
121 TEMPLATE_XPComDll_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
122endif
123# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
124ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
125 TEMPLATE_XPComDll_DEFS.os2 = OSTYPE="OS/2_4.5" OSARCH="OS/2" XP_OS2 XP_PC OS2=4
126else
127 TEMPLATE_XPComDll_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
128endif
129ifdef VBOX_WITH_AUTOMATIC_DEFS_QUOTING
130 TEMPLATE_XPComDll_DEFS.solaris = OSTYPE="Solaris10" OSARCH="Solaris" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
131else
132 TEMPLATE_XPComDll_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
133endif
134TEMPLATE_XPComDll_LDFLAGS = $(TEMPLATE_VBoxR3DllNonPedantic_LDFLAGS)
135ifdef VBOX_WITH_RUNPATH
136 TEMPLATE_XPComDll_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
137else ifdef VBOX_WITH_RELATIVE_RUNPATH
138 TEMPLATE_XPComDll_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
139endif
140TEMPLATE_XPComDll_LDFLAGS.x86 = -m32
141TEMPLATE_XPComDll_LDFLAGS.amd64 = -m64
142TEMPLATE_XPComDll_LDFLAGS.arm64 = -m64
143TEMPLATE_XPComDll_LDFLAGS.darwin = $(TEMPLATE_VBoxR3DllNonPedantic_LDFLAGS.darwin) \
144 -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
145 -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
146 -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
147 -framework CoreServices \
148 -framework CoreFoundation \
149 -framework Foundation \
150 -framework AppKit \
151 -framework Carbon
152## @todo why is -fno-exceptions here.
153ifn1of ($(KBUILD_TARGET), os2 win)
154 TEMPLATE_XPComDll_CXXFLAGS += -fPIC
155 TEMPLATE_XPComDll_CFLAGS += -fPIC
156 TEMPLATE_XPComDll_LDFLAGS += -fPIC
157 TEMPLATE_XPComDll_DEFS += MOZ_PRESERVE_PIC
158endif
159TEMPLATE_XPComDll_INCS = $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
160 $(VBOX_PATH_XPCOM_SRC)/xpcom/ds \
161 $(VBOX_PATH_XPCOM_SRC)/xpcom/io \
162 $(VBOX_PATH_XPCOM_SRC)/xpcom/base \
163 $(VBOX_PATH_XPCOM_SRC)/xpcom/components \
164 $(VBOX_PATH_XPCOM_SRC)/xpcom/threads \
165 $(VBOX_PATH_XPCOM_SRC)/xpcom/proxy/src \
166 $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptcall/src \
167 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/client/src \
168 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/shared/src \
169 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/lock/src \
170 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/src \
171 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/dconnect/src \
172 $(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/common \
173 $(VBOX_PATH_SDK)/bindings/xpcom/include \
174 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
175 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
176 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
177 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
178 .
179ifn1of ($(VBOX_DEF_MACOSX_VERSION_MIN), 10.4 10.5 10.6 10.7) # FlatCarbon is gone starting 10.8 (or Xcode 5.0).
180 TEMPLATE_XPComDll_DEFS.darwin += VBOX_WITH_NEWER_OSX_SDK
181 TEMPLATE_XPComDll_INCS.darwin = \
182 $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/ \
183 $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/ \
184 $(VBOX_PATH_MACOSX_SDK)/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Headers/
185else
186 TEMPLATE_XPComDll_INCS.darwin = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon
187endif
188TEMPLATE_XPComDll_LIBS.solaris = sendfile
189TEMPLATE_XPComDll_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET)) \
190 $(PATH_TARGET)/VBox-xpcom-idl-timestamp
191ifeq ($(KBUILD_TARGET),os2)
192 ifndef USE_OS2_TOOLKIT_HEADERS
193 TEMPLATE_XPComDll_DEFS.os2 += OS2EMX_PLAIN_CHAR
194 endif
195 TEMPLATE_XPComDll_DEFS.os2 += XP_OS2_EMX OS2=4
196 # this is at least for strnicmp()
197 TEMPLATE_XPComDll_DEFS.os2 += _EMX_SOURCE
198 # @@todo shouldn't this be somehow default for ASTOOL?
199 TEMPLATE_XPComDll_ASFLAGS.os2 += -Zomf
200endif
201
202# When using IPRT in NSRP or/and using IPRT for logging, link with IPRT.
203TEMPLATE_XPComDll_LIBS += $(LIB_RUNTIME)
204
205
206#
207# Same as XPCOM except using YASM/NASM instead of the gnu/unix assembler.
208#
209TEMPLATE_XPComDllYasm := XPCOM w/ yasm
210TEMPLATE_XPComDllYasm_EXTENDS := XPComDll
211TEMPLATE_XPComDllYasm_ASTOOL = $(TEMPLATE_VBoxR3DllNonPedantic_ASTOOL)
212TEMPLATE_XPComDllYasm_ASFLAGS = $(TEMPLATE_VBoxR3DllNonPedantic_ASFLAGS)
213TEMPLATE_XPComDllYasm_ASFLAGS.x86 = $(TEMPLATE_VBoxR3DllNonPedantic_ASFLAGS.x86)
214TEMPLATE_XPComDllYasm_ASFLAGS.amd64 = $(TEMPLATE_VBoxR3DllNonPedantic_ASFLAGS.amd64)
215TEMPLATE_XPComDllYasm_ASDEFS = $(TEMPLATE_VBoxR3DllNonPedantic_DEFS)
216
217
218#
219# Template for building the XPCOM executables.
220# Used as a base template by XPComTstExe and XPComIpcExe.
221#
222TEMPLATE_XPComExe := XPCOM executable files
223TEMPLATE_XPComExe_EXTENDS := XPComDll
224## @todo undo -fPIC.
225TEMPLATE_XPComExe_INCS = ipc/ipcd/shared/src \
226 $(VBOX_PATH_SDK)/bindings/xpcom/include \
227 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
228 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
229 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
230 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
231 .
232TEMPLATE_XPComExe_LIBS = \
233 $(VBox-xpcom-ipcshared_1_TARGET) \
234 $(VBoxXPCOM_1_TARGET) \
235 $(TEMPLATE_XPComDll_LIBS)
236TEMPLATE_XPComExe_LIBS.freebsd = $(LIB_PTHREAD)
237TEMPLATE_XPComExe_LIBS.linux = dl $(LIB_PTHREAD)
238TEMPLATE_XPComExe_LDFLAGS.darwin = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPComDll_LDFLAGS.darwin))
239
240
241#
242# Template for building the XPCOM testcase executables
243#
244TEMPLATE_XPComTstExe = XPCOM executable files (testcases)
245TEMPLATE_XPComTstExe_EXTENDS = XPComExe
246TEMPLATE_XPComTstExe_CXXFLAGS = $(TEMPLATE_XPComExe_CXXFLAGS) -Wno-format
247TEMPLATE_XPComTstExe_CFLAGS = $(TEMPLATE_XPComExe_CFLAGS) -Wno-format
248TEMPLATE_XPComTstExe_INST = $(INST_TESTCASE)
249ifdef VBOX_WITH_RUNPATH
250 TEMPLATE_XPComTstExe_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_XPComExe_LDFLAGS)
251else ifdef VBOX_WITH_RELATIVE_RUNPATH
252 TEMPLATE_XPComTstExe_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_XPComExe_LDFLAGS)
253endif
254if "$(KBUILD_TARGET)" == "win" && defined(VBOX_SIGNING_MODE)
255 TEMPLATE_XPComTstExe_POST_CMDS =
256endif
257
258
259#
260# Template for building XPCOM executables for running at build time.
261#
262# It extends the BLDPROG template in config.kmk but overrides CFLAGS
263# and CXXFLAGS completely at the moment.
264#
265TEMPLATE_XPComBldProg = XPCOM Build programs executables
266TEMPLATE_XPComBldProg_EXTENDS = VBoxBldProg
267## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPComExe is expanded when this is being used.)
268TEMPLATE_XPComBldProg_DEFS = \
269 $(TEMPLATE_VBoxBldProg_DEFS) \
270 $(filter-out VBOX_USE_IPRT_IN_XPCOM, $(TEMPLATE_XPComExe_DEFS))
271TEMPLATE_XPComBldProg_DEFS.$(KBUILD_HOST) = $(TEMPLATE_VBoxBldProg_DEFS.$(KBUILD_HOST)) $(TEMPLATE_XPComExe_DEFS.$(KBUILD_HOST))
272TEMPLATE_XPComBldProg_DEFS.x86 = $(TEMPLATE_VBoxBldProg_DEFS.x86) $(TEMPLATE_XPComExe_DEFS.x86)
273TEMPLATE_XPComBldProg_DEFS.amd64 = $(TEMPLATE_VBoxBldProg_DEFS.amd64) $(TEMPLATE_XPComExe_DEFS.amd64)
274TEMPLATE_XPComBldProg_INCS = \
275 $(VBOX_PATH_SDK)/bindings/xpcom/include \
276 $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
277 $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
278 $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
279 $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
280TEMPLATE_XPComBldProg_CFLAGS = $(filter-out $(VBOX_GCC_PEDANTIC_C), $(TEMPLATE_VBoxBldProg_CFLAGS)) \
281 $(VBOX_GCC_Wno-int-to-pointer-cast) $(VBOX_GCC_Wno-pointer-to-int-cast) $(VBOX_GCC_NON_PEDANTIC_C)
282TEMPLATE_XPComBldProg_CXXFLAGS.darwin = $(TEMPLATE_VBoxBldProg_CXXFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-common -fno-rtti
283TEMPLATE_XPComBldProg_CXXFLAGS.solaris = $(TEMPLATE_VBoxBldProg_CXXFLAGS.solaris) -fno-omit-frame-pointer # for now anyway.
284TEMPLATE_XPComBldProg_LDFLAGS.darwin = $(TEMPLATE_VBoxBldProg_LDFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions
285TEMPLATE_XPComBldProg_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET))
286
287
288ifeq ($(VBOX_DEF_MACOSX_VERSION_MIN),10.4)
289 #
290 # Template for building VBoxPython against the Mac OS X 10.4 SDK.
291 # ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
292 #
293 TEMPLATE_XPComDllOSX104 = XPCOM libraries (shared) built against the Mac OS X 10.4 SDK
294 TEMPLATE_XPComDllOSX104_EXTENDS = XPComDll
295 TEMPLATE_XPComDllOSX104_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPComDll_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CXXFLAGS)
296 TEMPLATE_XPComDllOSX104_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPComDll_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CFLAGS)
297 TEMPLATE_XPComDllOSX104_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPComDll_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_LDFLAGS)
298 TEMPLATE_XPComDllOSX104_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPComDll_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_DEFS)
299 TEMPLATE_XPComDllOSX104_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_4)/Developer/Headers/FlatCarbon
300endif
301
302#
303# Template for building VBoxPython against the Mac OS X 10.5 SDK.
304# ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
305#
306TEMPLATE_XPComDllOSX105 = XPCOM libraries (shared) built against the Mac OS X 10.5 SDK
307TEMPLATE_XPComDllOSX105_EXTENDS = XPComDll
308TEMPLATE_XPComDllOSX105_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPComDll_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
309TEMPLATE_XPComDllOSX105_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPComDll_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS)
310TEMPLATE_XPComDllOSX105_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPComDll_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
311TEMPLATE_XPComDllOSX105_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPComDll_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
312TEMPLATE_XPComDllOSX105_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_5)/Developer/Headers/FlatCarbon
313
314#
315# Template for building VBoxPython against the Mac OS X 10.6 SDK.
316# ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
317#
318TEMPLATE_XPComDllOSX106 = XPCOM libraries (shared) built against the Mac OS X 10.6 SDK
319TEMPLATE_XPComDllOSX106_EXTENDS = XPComDll
320TEMPLATE_XPComDllOSX106_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPComDll_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
321TEMPLATE_XPComDllOSX106_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPComDll_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS)
322TEMPLATE_XPComDllOSX106_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPComDll_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS)
323TEMPLATE_XPComDllOSX106_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPComDll_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_DEFS)
324TEMPLATE_XPComDllOSX106_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_6)/Developer/Headers/FlatCarbon
325
326#
327# Template for building VBoxPython against the Mac OS X 10.7 SDK.
328# ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
329#
330TEMPLATE_XPComDllOSX107 = XPCOM libraries (shared) built against the Mac OS X 10.7 SDK
331TEMPLATE_XPComDllOSX107_EXTENDS = XPComDll
332TEMPLATE_XPComDllOSX107_TOOL = LLVMGXX42MACHO
333TEMPLATE_XPComDllOSX107_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPComDll_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_7_CXXFLAGS)
334TEMPLATE_XPComDllOSX107_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPComDll_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_7_CFLAGS)
335TEMPLATE_XPComDllOSX107_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPComDll_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_7_LDFLAGS)
336TEMPLATE_XPComDllOSX107_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPComDll_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_7_DEFS)
337TEMPLATE_XPComDllOSX107_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_7)/Developer/Headers/FlatCarbon
338
339
340#
341# Creates a x86 target for an XPCOM target if so desired.
342# The target is specified as the first argument: $(evalcall VBOX_XPCOM_X86,target).
343#
344ifdef VBOX_WITH_32_ON_64_MAIN_API
345 define VBOX_XPCOM_X86
346 $(1)-x86_TEMPLATE := $(strip $($(1)_TEMPLATE))-x86
347 $(1)-x86_EXTENDS := $(1)
348 endef
349else
350 define VBOX_XPCOM_X86
351 endef
352endif
353
354# Corresponding 32-bit template(s).
355TEMPLATE_XPComDll-x86 = 32-bit XPCOM libraries (shared)
356TEMPLATE_XPComDll-x86_EXTENDS = XPComDll
357TEMPLATE_XPComDll-x86_BLD_TRG_ARCH = x86
358TEMPLATE_XPComDll-x86_DEFS = $(TEMPLATE_XPComDll_DEFS) VBOX_IN_32_ON_64_MAIN_API
359TEMPLATE_XPComDll-x86_LIBS = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPComDll_LIBS))
360
361TEMPLATE_XPComDllYasm-x86 = 32-bit XPCOM libraries (shared) with YASM as assembler.
362TEMPLATE_XPComDllYasm-x86_EXTENDS = XPComDllYasm
363TEMPLATE_XPComDllYasm-x86_BLD_TRG_ARCH = x86
364TEMPLATE_XPComDllYasm-x86_DEFS = $(TEMPLATE_XPComDllYasm_DEFS) VBOX_IN_32_ON_64_MAIN_API
365TEMPLATE_XPComDllYasm-x86_LIBS = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPComDllYasm_LIBS))
366
367
368#
369# The list of XPCOM's IDL files.
370# This is used by the java bindings as well as the XPCOM build.
371#
372XPCOM_IDLFILES = \
373 xpcom/base/nsIDebug.idl \
374 xpcom/base/nsIInterfaceRequestor.idl \
375 xpcom/base/nsIProgrammingLanguage.idl \
376 xpcom/base/nsISupports.idl \
377 xpcom/base/nsITraceRefcnt.idl \
378 xpcom/base/nsIWeakReference.idl \
379 xpcom/base/nsIErrorService.idl \
380 xpcom/base/nsIException.idl \
381 xpcom/base/nsIExceptionService.idl \
382 xpcom/base/nsrootidl.idl \
383 xpcom/components/nsIClassInfo.idl \
384 xpcom/components/nsIComponentRegistrar.idl \
385 xpcom/components/nsIFactory.idl \
386 xpcom/components/nsIModule.idl \
387 xpcom/components/nsIServiceManager.idl \
388 xpcom/components/nsIComponentManager.idl \
389 xpcom/components/nsICategoryManager.idl \
390 xpcom/components/nsIComponentLoader.idl \
391 xpcom/components/nsINativeComponentLoader.idl \
392 xpcom/components/nsIComponentManagerObsolete.idl \
393 xpcom/components/nsIComponentLoaderManager.idl \
394 xpcom/ds/nsISupportsArray.idl \
395 xpcom/ds/nsICollection.idl \
396 xpcom/ds/nsISerializable.idl \
397 xpcom/ds/nsIEnumerator.idl \
398 xpcom/ds/nsISimpleEnumerator.idl \
399 xpcom/ds/nsIObserverService.idl \
400 xpcom/ds/nsIObserver.idl \
401 xpcom/ds/nsIAtom.idl \
402 xpcom/ds/nsIAtomService.idl \
403 xpcom/ds/nsIProperties.idl \
404 xpcom/ds/nsIStringEnumerator.idl \
405 xpcom/ds/nsISupportsPrimitives.idl \
406 xpcom/ds/nsISupportsIterators.idl \
407 xpcom/ds/nsIVariant.idl \
408 xpcom/ds/nsIArray.idl \
409 xpcom/ds/nsIPropertyBag.idl \
410 xpcom/ds/nsIHashable.idl \
411 xpcom/io/nsIDirectoryService.idl \
412 xpcom/io/nsIDirectoryEnumerator.idl \
413 xpcom/io/nsIFile.idl \
414 xpcom/io/nsILocalFile.idl \
415 xpcom/io/nsILocalFileMac.idl \
416 xpcom/io/nsIInputStream.idl \
417 xpcom/io/nsIObjectInputStream.idl \
418 xpcom/io/nsIBinaryInputStream.idl \
419 xpcom/io/nsIObjectOutputStream.idl \
420 xpcom/io/nsIBinaryOutputStream.idl \
421 xpcom/io/nsIOutputStream.idl \
422 xpcom/io/nsIStreamBufferAccess.idl \
423 xpcom/io/nsIByteArrayInputStream.idl \
424 xpcom/io/nsISeekableStream.idl \
425 xpcom/io/nsIInputStreamTee.idl \
426 xpcom/io/nsIAsyncInputStream.idl \
427 xpcom/io/nsIAsyncOutputStream.idl \
428 xpcom/io/nsIScriptableInputStream.idl \
429 xpcom/io/nsILineInputStream.idl \
430 xpcom/proxy/public/nsIProxyObjectManager.idl \
431 xpcom/threads/nsIEventQueueService.idl \
432 xpcom/threads/nsIEventQueue.idl \
433 xpcom/threads/nsIEventTarget.idl \
434 xpcom/threads/nsIRunnable.idl \
435 xpcom/reflect/xptinfo/public/nsIInterfaceInfo.idl \
436 xpcom/reflect/xptinfo/public/nsIInterfaceInfoManager.idl \
437 xpcom/reflect/xptinfo/public/nsIXPTLoader.idl \
438 ipc/ipcd/client/public/ipcIService.idl \
439 ipc/ipcd/client/public/ipcIMessageObserver.idl \
440 ipc/ipcd/client/public/ipcIClientObserver.idl \
441 ipc/ipcd/extensions/lock/public/ipcILockService.idl \
442 ipc/ipcd/extensions/transmngr/public/ipcITransactionService.idl \
443 ipc/ipcd/extensions/dconnect/public/ipcIDConnectService.idl \
444 ipc/ipcd/extensions/transmngr/public/ipcITransactionObserver.idl
445
446#
447# The include path for the XPCOM IDL files above.
448#
449XPIDL_INCS = \
450 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/base/ \
451 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/ds/ \
452 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/components/ \
453 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/io/ \
454 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/threads/ \
455 -I $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptinfo/public/
456
Note: See TracBrowser for help on using the repository browser.

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