VirtualBox

Changeset 29064 in vbox for trunk/src/libs/xpcom18a4


Ignore:
Timestamp:
May 5, 2010 11:41:08 AM (15 years ago)
Author:
vboxsync
Message:

xpcom18a4/*.kmk: Moved the templates and globals from Makefile.kmk to Config.kmk (new).

Location:
trunk/src/libs/xpcom18a4
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/Config.kmk

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

    r28913 r29064  
    3939
    4040#
    41 # Globals.
    42 #
    43 VBOX_PATH_XPCOM_SRC := $(PATH_SUB_CURRENT)
    44 
    45 BLDDIRS += $(PATH_TARGET)/VBox-xpcom-xpt-files/
    46 
    47 
    48 #
    49 # Template for building the XPCOM libraries (shared).
    50 #
    51 TEMPLATE_XPCOM                     = XPCOM libraries (shared)
    52 TEMPLATE_XPCOM_EXTENDS             = VBOXR3NP
    53 ## @todo correct inheritance here to make it use all the VBOXR3NP settings instead of overriding all of them.
    54 TEMPLATE_XPCOM_ASTOOL              = $(TEMPLATE_VBOXR3NP_TOOL)
    55 TEMPLATE_XPCOM_ASFLAGS             = $(NO_SUCH_VARIABLE)
    56 TEMPLATE_XPCOM_ASFLAGS.x86         = -m32
    57 TEMPLATE_XPCOM_ASFLAGS.amd64       = -m64
    58 TEMPLATE_XPCOM_ASDEFS              = $(NO_SUCH_VARIABLE)
    59 TEMPLATE_XPCOM_CXXFLAGS            = -g -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
    60         $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
    61         $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fdiagnostics-show-option)
    62 TEMPLATE_XPCOM_CXXFLAGS.x86        = -m32
    63 TEMPLATE_XPCOM_CXXFLAGS.amd64      = -m64
    64 TEMPLATE_XPCOM_CXXFLAGS.release    = -O
    65 TEMPLATE_XPCOM_CXXFLAGS.profile    = -O
    66 TEMPLATE_XPCOM_CXXFLAGS.darwin     = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
    67 TEMPLATE_XPCOM_CXXFLAGS.freebsd    = -pthread
    68 TEMPLATE_XPCOM_CXXFLAGS.l4         = -fno-exceptions -nostdinc
    69 TEMPLATE_XPCOM_CXXFLAGS.linux      = -pthread
    70 TEMPLATE_XPCOM_CXXFLAGS.solaris    = -fno-omit-frame-pointer # for now anyway.
    71 TEMPLATE_XPCOM_CFLAGS              = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \
    72         $(VBOX_GCC_fdiagnostics-show-option)
    73 TEMPLATE_XPCOM_CFLAGS.x86          = -m32
    74 TEMPLATE_XPCOM_CFLAGS.amd64        = -m64
    75 TEMPLATE_XPCOM_CFLAGS.release      = -O
    76 TEMPLATE_XPCOM_CFLAGS.profile      = -O
    77 TEMPLATE_XPCOM_CFLAGS.freebsd      = -pthread
    78 TEMPLATE_XPCOM_CFLAGS.l4           = -nostdinc
    79 TEMPLATE_XPCOM_CFLAGS.linux        = -pthread -ansi
    80 TEMPLATE_XPCOM_CFLAGS.solaris      = -fno-omit-frame-pointer # for now anyway.
    81 TEMPLATE_XPCOM_DEFS                = MOZILLA_CLIENT=1 NDEBUG=1 _IMPL_NS_COM \
    82                                      XPCOM_DLL_BASE=\"$(basename $(notdir $(LIB_XPCOM)))\" \
    83                                      MOZ_DLL_SUFFIX=\"$(suffix $(LIB_XPCOM))\" \
    84                                      IN_RING3
    85 ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
    86  TEMPLATE_XPCOM_DEFS              += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
    87 endif
    88 TEMPLATE_XPCOM_DEFS.x86            = i386=1
    89 TEMPLATE_XPCOM_DEFS.amd64          = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
    90 TEMPLATE_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)
    91 TEMPLATE_XPCOM_DEFS.darwin.amd64   = VBOX_MACOSX_FOLLOWS_UNIX_IO
    92 TEMPLATE_XPCOM_DEFS.freebsd        = OSTYPE=\"FreeBSD5+\"   OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
    93 TEMPLATE_XPCOM_DEFS.linux          = OSTYPE=\"Linux2.6\"    OSARCH=\"Linux\"  XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
    94 TEMPLATE_XPCOM_DEFS.l4             = OSTYPE=\"L4ENV\"       OSARCH=\"L4\"     XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
    95 # Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
    96 TEMPLATE_XPCOM_DEFS.os2            = OSTYPE=\"OS/2_4.5\"    OSARCH=\"OS/2\"   XP_OS2 XP_PC OS2=4
    97 TEMPLATE_XPCOM_DEFS.solaris        = OSTYPE=\"Solaris10\"   OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
    98 ## @todo The LDFLAGS inheriting is being hidden here and below where -fPIC is added.
    99 ifdef VBOX_WITH_RUNPATH
    100 TEMPLATE_XPCOM_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)'
    101 else ifdef VBOX_WITH_RELATIVE_RUNPATH
    102 TEMPLATE_XPCOM_LDFLAGS            += '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)'
    103 endif
    104 TEMPLATE_XPCOM_LDFLAGS.x86         = -m32
    105 TEMPLATE_XPCOM_LDFLAGS.amd64       = -m64
    106 TEMPLATE_XPCOM_LDFLAGS.darwin      = $(TEMPLATE_VBOXR3NP_LDFLAGS.darwin) \
    107         -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
    108         -current_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    109         -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD) \
    110         -framework CoreServices \
    111         -framework CoreFoundation \
    112         -framework Foundation \
    113         -framework AppKit \
    114         -framework Carbon
    115 ## @todo wy is -fno-exceptions here.
    116 ifn1of ($(KBUILD_TARGET), os2 win)
    117  TEMPLATE_XPCOM_CXXFLAGS          += -fPIC
    118  TEMPLATE_XPCOM_CFLAGS            += -fPIC
    119  TEMPLATE_XPCOM_LDFLAGS           += -fPIC
    120  TEMPLATE_XPCOM_DEFS              += MOZ_PRESERVE_PIC
    121 endif
    122 TEMPLATE_XPCOM_INCS                = xpcom/build \
    123                                      xpcom/ds \
    124                                      xpcom/io \
    125                                      xpcom/base \
    126                                      xpcom/components \
    127                                      xpcom/threads \
    128                                      xpcom/proxy/src \
    129                                      xpcom/reflect/xptcall/src \
    130                                      ipc/ipcd/client/src \
    131                                      ipc/ipcd/shared/src \
    132                                      ipc/ipcd/extensions/lock/src \
    133                                      ipc/ipcd/extensions/transmngr/src \
    134                                      ipc/ipcd/extensions/dconnect/src \
    135                                      ipc/ipcd/extensions/transmngr/common \
    136                                      $(VBOX_PATH_SDK)/bindings/xpcom/include \
    137                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
    138                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
    139                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
    140                                      $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
    141                                      .
    142 TEMPLATE_XPCOM_INCS.darwin         = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon
    143 TEMPLATE_XPCOM_INCS.l4             = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
    144 TEMPLATE_XPCOM_LDFLAGS.l4          = $(L4_DIR)/lib/x86_586/crt0.o \
    145                                      -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
    146                                      # -Wl,--whole-archive,--no-allow-shlib-undefined
    147 TEMPLATE_XPCOM_LIBS.l4             = $(VBOX_GCC_LIBGCC)
    148 TEMPLATE_XPCOM_LIBS.solaris        = sendfile
    149 TEMPLATE_XPCOM_ORDERDEPS           = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst))) \
    150                                      $(PATH_VBox-xpcom-string)/idl_ts
    151 ifeq ($(KBUILD_TARGET),os2)
    152  ifndef USE_OS2_TOOLKIT_HEADERS
    153   TEMPLATE_XPCOM_DEFS.os2         += OS2EMX_PLAIN_CHAR
    154  endif
    155  TEMPLATE_XPCOM_DEFS.os2          += XP_OS2_EMX OS2=4
    156  # this is at least for strnicmp()
    157  TEMPLATE_XPCOM_DEFS.os2          += _EMX_SOURCE
    158  # @@todo shouldn't this be somehow default for ASTOOL?
    159  TEMPLATE_XPCOM_ASFLAGS.os2       += -Zomf
    160 endif
    161 
    162 # When using IPRT in NSRP or/and using IPRT for logging, link with IPRT.
    163 TEMPLATE_XPCOM_LIBS               += $(LIB_RUNTIME)
    164 
    165 #
    166 # Template for building the XPCOM executables.
    167 # Used as a base template by XPCOMTSTEXE and XPCOMIPCEXE.
    168 #
    169 TEMPLATE_XPCOMEXE                  = XPCOM executable files
    170 TEMPLATE_XPCOMEXE_EXTENDS          = XPCOM
    171 ## @todo undo -fPIC.
    172 TEMPLATE_XPCOMEXE_INCS             = ipc/ipcd/shared/src \
    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                                      .
    179 TEMPLATE_XPCOMEXE_LIBS             = \
    180         $(TARGET_VBox-xpcom-ipcshared) \
    181         $(TARGET_VBoxXPCOM) \
    182         $(TEMPLATE_XPCOM_LIBS)
    183 TEMPLATE_XPCOMEXE_LIBS.freebsd     = $(LIB_PTHREAD)
    184 TEMPLATE_XPCOMEXE_LIBS.linux       = dl $(LIB_PTHREAD)
    185 TEMPLATE_XPCOMEXE_LIBS.l4          = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
    186 TEMPLATE_XPCOMEXE_LDFLAGS.darwin   = -bind_at_load $(filter-out -current_version -compatibility_version $(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD),$(TEMPLATE_XPCOM_LDFLAGS.darwin))
    187 TEMPLATE_XPCOMEXE_LDFLAGS.l4       = $(L4_DIR)/lib/x86_586/crt0.o \
    188     -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
    189     -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
    190     -Wl,--rpath-link,$(L4_LIBDIR) \
    191     # -Wl,--whole-archive,--no-allow-shlib-undefined
    192 #    -Wno-format
    193 
    194 
    195 #
    196 # Template for building the XPCOM testcase executables
    197 #
    198 TEMPLATE_XPCOMTSTEXE               = XPCOM executable files (testcases)
    199 TEMPLATE_XPCOMTSTEXE_EXTENDS       = XPCOMEXE
    200 TEMPLATE_XPCOMTSTEXE_CXXFLAGS      = $(TEMPLATE_XPCOMEXE_CXXFLAGS) -Wno-format
    201 TEMPLATE_XPCOMTSTEXE_CFLAGS        = $(TEMPLATE_XPCOMEXE_CFLAGS)   -Wno-format
    202 
    203 
    204 #
    205 # Template for building XPCOM executables for running at build time.
    206 #
    207 # It extends the BLDPROG template in config.kmk but overrides CFLAGS
    208 # and CXXFLAGS completely at the moment.
    209 #
    210 TEMPLATE_XPCOMBLDPROG                     = XPCOM Build programs executables
    211 TEMPLATE_XPCOMBLDPROG_EXTENDS             = VBOXBLDPROG
    212 ## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPCOMEXE is expanded when this is being used.)
    213 TEMPLATE_XPCOMBLDPROG_DEFS                = $(TEMPLATE_VBOXBLDPROG_DEFS)                $(TEMPLATE_XPCOMEXE_DEFS)
    214 TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_HOST) = $(TEMPLATE_VBOXBLDPROG_DEFS.$(KBUILD_HOST)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_HOST))
    215 TEMPLATE_XPCOMBLDPROG_DEFS.x86            = $(TEMPLATE_VBOXBLDPROG_DEFS.x86)            $(TEMPLATE_XPCOMEXE_DEFS.x86)
    216 TEMPLATE_XPCOMBLDPROG_DEFS.amd64          = $(TEMPLATE_VBOXBLDPROG_DEFS.amd64)          $(TEMPLATE_XPCOMEXE_DEFS.amd64)
    217 TEMPLATE_XPCOMBLDPROG_INCS                = \
    218         $(VBOX_PATH_SDK)/bindings/xpcom/include \
    219         $(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
    220         $(VBOX_PATH_SDK)/bindings/xpcom/include/string \
    221         $(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
    222         $(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
    223 TEMPLATE_XPCOMBLDPROG_CFLAGS             = $(filter-out -pedantic -Wshadow, $(TEMPLATE_VBOX_BLDPROG_CFLAGS)) $(VBOX_GCC_Wno-int-to-pointer-cast) $(VBOX_GCC_Wno-pointer-to-int-cast) -Wno-format
    224 TEMPLATE_XPCOMBLDPROG_CXXFLAGS.darwin    = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin)     -fpascal-strings -fshort-wchar -fno-common -fno-rtti
    225 TEMPLATE_XPCOMBLDPROG_CXXFLAGS.solaris   = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.solaris)    -fno-omit-frame-pointer # for now anyway.
    226 TEMPLATE_XPCOMBLDPROG_LDFLAGS.darwin     = $(TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin)      -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions
    227 TEMPLATE_XPCOMBLDPROG_ORDERDEPS          = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst)))
    228 
    229 
    230 ifeq ($(VBOX_DEF_MACOSX_VERSION_MIN),10.4)
    231  #
    232  # Template for building VBoxPhython against the Mac OS X 10.4 SDK.
    233  # ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
    234  #
    235  TEMPLATE_XPCOMOSX104                    = XPCOM libraries (shared) built against the Mac OS X 10.4 SDK
    236  TEMPLATE_XPCOMOSX104_EXTENDS            = XPCOM
    237  TEMPLATE_XPCOMOSX104_CXXFLAGS.darwin    = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CXXFLAGS)
    238  TEMPLATE_XPCOMOSX104_CFLAGS.darwin      = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CFLAGS)
    239  TEMPLATE_XPCOMOSX104_LDFLAGS.darwin     = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_LDFLAGS)
    240  TEMPLATE_XPCOMOSX104_DEFS.darwin        = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_DEFS)
    241  TEMPLATE_XPCOMOSX104_INCS.darwin        = $(VBOX_PATH_MACOSX_SDK_10_4)/Developer/Headers/FlatCarbon
    242 endif
    243 
    244 #
    245 # Template for building VBoxPhython against the Mac OS X 10.5 SDK.
    246 # ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
    247 #
    248 TEMPLATE_XPCOMOSX105                    = XPCOM libraries (shared) built against the Mac OS X 10.5 SDK
    249 TEMPLATE_XPCOMOSX105_EXTENDS            = XPCOM
    250 TEMPLATE_XPCOMOSX105_CXXFLAGS.darwin    = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
    251 TEMPLATE_XPCOMOSX105_CFLAGS.darwin      = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS)
    252 TEMPLATE_XPCOMOSX105_LDFLAGS.darwin     = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
    253 TEMPLATE_XPCOMOSX105_DEFS.darwin        = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
    254 TEMPLATE_XPCOMOSX105_INCS.darwin        = $(VBOX_PATH_MACOSX_SDK_10_5)/Developer/Headers/FlatCarbon
    255 
    256 #
    257 # Template for building VBoxPhython against the Mac OS X 10.6 SDK.
    258 # ASSUMES that the SDK bits are in the .darwin properties we're overriding below.
    259 #
    260 TEMPLATE_XPCOMOSX106                    = XPCOM libraries (shared) built against the Mac OS X 10.6 SDK
    261 TEMPLATE_XPCOMOSX106_EXTENDS            = XPCOM
    262 TEMPLATE_XPCOMOSX106_CXXFLAGS.darwin    = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
    263 TEMPLATE_XPCOMOSX106_CFLAGS.darwin      = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS)
    264 TEMPLATE_XPCOMOSX106_LDFLAGS.darwin     = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS)
    265 TEMPLATE_XPCOMOSX106_DEFS.darwin        = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_DEFS)
    266 TEMPLATE_XPCOMOSX106_INCS.darwin        = $(VBOX_PATH_MACOSX_SDK_10_6)/Developer/Headers/FlatCarbon
    267 
    268 
    269 #
    27041# Header installs.
    27142#
     
    28051
    28152#
    282 # The IDL compiler and typelib linker.
     53# The IDL compiler, typelib linker and xpt files.
    28354#
    28455BLDPROGS += \
    28556        xpidl \
    28657        xpt_link
     58
     59BLDDIRS  += \
     60        $(PATH_TARGET)/VBox-xpcom-xpt-files/
    28761
    28862#
Note: See TracChangeset for help on using the changeset viewer.

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