Makefile.kmk revision 4990e1d813e759e4b352b99d04b25c953e8b15b6
af062818b47340eef15700d2f0211576ba3506eevboxsync# Sub-Makefile for XPCOM.
af062818b47340eef15700d2f0211576ba3506eevboxsync# Copyright (C) 2006-2007 Sun Microsystems, Inc.
af062818b47340eef15700d2f0211576ba3506eevboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
af062818b47340eef15700d2f0211576ba3506eevboxsync# available from http://www.virtualbox.org. This file is free software;
af062818b47340eef15700d2f0211576ba3506eevboxsync# you can redistribute it and/or modify it under the terms of the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync# General Public License (GPL) as published by the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
af062818b47340eef15700d2f0211576ba3506eevboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
af062818b47340eef15700d2f0211576ba3506eevboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
af062818b47340eef15700d2f0211576ba3506eevboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
af062818b47340eef15700d2f0211576ba3506eevboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
af062818b47340eef15700d2f0211576ba3506eevboxsync# additional information or have any questions.
4b9d6701570cb98fd36e209314239d104ec584d3vboxsyncifdef VBOX_SINGLE_MAKEFILE
4b9d6701570cb98fd36e209314239d104ec584d3vboxsyncSUB_DEPTH = ../../..
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncSUB_DEPTH = .
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncDEPTH = ../../..
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsyncinclude $(KBUILD_PATH)/subheader.kmk
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncVBOX_PATH_XPCOM_SRC := $(PATH_SUB_CURRENT)
af062818b47340eef15700d2f0211576ba3506eevboxsync# Template for building the XPCOM libraries (shared).
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM = XPCOM libraries (shared)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_EXTENDS = VBOXR3NP
af062818b47340eef15700d2f0211576ba3506eevboxsync## @todo correct inheritance here to make it use all the VBOXR3NP settings instead of overriding all of them.
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_ASTOOL = $(TEMPLATE_VBOXR3NP_TOOL)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_ASFLAGS = $(NO_SUCH_VARIABLE)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_ASDEFS = $(NO_SUCH_VARIABLE)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_CXXFLAGS = -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsync $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_CFLAGS = -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS = MOZILLA_CLIENT=1 NDEBUG=1 _IMPL_NS_COM \
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync XPCOM_DLL_BASE=\"$(basename $(notdir $(LIB_XPCOM)))\" \
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync MOZ_DLL_SUFFIX=\"$(suffix $(LIB_XPCOM))\"
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_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)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.l4 = OSTYPE=\"L4ENV\" OSARCH=\"L4\" XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync## @todo The LDFLAGS inheriting is being hidden here and below where -fPIC is added.
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncifdef VBOX_WITH_ORIGIN
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_LDFLAGS += '$(VBOX_GCC_RPATH_OPT)$$(VBOX_ORIGIN)/'
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncTEMPLATE_XPCOM_LDFLAGS.darwin = $(TEMPLATE_VBOXR3NP_LDFLAGS.darwin) \
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync -fshort-wchar -fno-rtti -fno-exceptions -fpascal-strings \
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync -framework CoreServices -framework CoreFoundation -framework Foundation -framework AppKit -framework Carbon
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsyncifn1of ($(KBUILD_TARGET), os2 win)
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync TEMPLATE_XPCOM_CXXFLAGS += -fPIC
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync TEMPLATE_XPCOM_CFLAGS += -fPIC
d2432596ad0325b8a9b42552ce4fcd251f37fcc3vboxsync TEMPLATE_XPCOM_LDFLAGS += -fPIC
af062818b47340eef15700d2f0211576ba3506eevboxsync TEMPLATE_XPCOM_DEFS += MOZ_PRESERVE_PIC
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_INCS = $(PATH_TARGET) \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/nsprpub \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/string \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/ipcd \
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_INCS.darwin = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOM_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
af062818b47340eef15700d2f0211576ba3506eevboxsync -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
e921df6035a90d82f1980caf052f41d2235bffdevboxsync # -Wl,--whole-archive,--no-allow-shlib-undefined
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsyncTEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC)
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsyncTEMPLATE_XPCOM_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst))) \
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsync $(PATH_VBox-xpcom-string)/idl_ts
af062818b47340eef15700d2f0211576ba3506eevboxsyncifeq ($(KBUILD_TARGET),os2)
af062818b47340eef15700d2f0211576ba3506eevboxsync ifndef USE_OS2_TOOLKIT_HEADERS
e921df6035a90d82f1980caf052f41d2235bffdevboxsync TEMPLATE_XPCOM_DEFS.os2 += OS2EMX_PLAIN_CHAR
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsync TEMPLATE_XPCOM_DEFS.os2 += XP_OS2_EMX OS2=4
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsync # this is at least for strnicmp()
af062818b47340eef15700d2f0211576ba3506eevboxsync # @@todo shouldn't this be somehow default for ASTOOL?
3c5c04d7b0973be0757addef8ba44b9352b38386vboxsync# We use IPRT logging in debug builds, so we need IPRT
af062818b47340eef15700d2f0211576ba3506eevboxsync# Template for building the XPCOM executables
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE = XPCOM executable files (testcases)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_EXTENDS = XPCOM
af062818b47340eef15700d2f0211576ba3506eevboxsync## @todo undo -fPIC.
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_INCS = $(PATH_TARGET) \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/nsprpub \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/string \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/ipcd \
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_LIBS = \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(TARGET_VBox-xpcom-ipcshared) \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(TARGET_VBoxXPCOM)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_LIBS.l4 = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_LDFLAGS.darwin = -bind_at_load $(TEMPLATE_XPCOM_LDFLAGS.darwin)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMEXE_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
af062818b47340eef15700d2f0211576ba3506eevboxsync -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
af062818b47340eef15700d2f0211576ba3506eevboxsync -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
af062818b47340eef15700d2f0211576ba3506eevboxsync -Wl,--rpath-link,$(L4_LIBDIR) \
af062818b47340eef15700d2f0211576ba3506eevboxsync # -Wl,--whole-archive,--no-allow-shlib-undefined
af062818b47340eef15700d2f0211576ba3506eevboxsync# Template for building XPCOM executables for running at build time.
af062818b47340eef15700d2f0211576ba3506eevboxsync# It extends the BLDPROG template in config.kmk but overrides CFLAGS
af062818b47340eef15700d2f0211576ba3506eevboxsync# and CXXFLAGS completely at the moment.
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG = XPCOM Build programs executables
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_EXTENDS = VBOXBLDPROG
af062818b47340eef15700d2f0211576ba3506eevboxsync## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPCOMEXE is expanded when this is being used.)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_DEFS = $(TEMPLATE_BLDPROG_DEFS) $(TEMPLATE_XPCOMEXE_DEFS)
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_TARGET) = $(TEMPLATE_BLDPROG_DEFS.$(KBUILD_TARGET)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_TARGET))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_BLDPROG_DEFS.$(KBUILD_TARGET_ARCH)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_CXXFLAGS = -ansi -Wall -Wno-non-virtual-dtor
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_CXXFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_CXXFLAGS.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_CFLAGS = -pipe -ansi -Wall -Wno-unused
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_CFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_CFLAGS.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_INCS = $(VBOX_PATH_SDK)/include \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/nsprpub \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/string \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/xpcom \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(VBOX_PATH_SDK)/include/xpcom/ipcd
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_INCS.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_INCS.$(KBUILD_TARGET))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_INCS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_INCS.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_LIBPATH.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_LIBPATH.$(KBUILD_TARGET))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_LIBPATH.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LIBPATH.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_LDFLAGS.$(KBUILD_TARGET) = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(KBUILD_TARGET))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_LDFLAGS.$(KBUILD_TARGET_ARCH) = $(TEMPLATE_XPCOMEXE_LDFLAGS.$(KBUILD_TARGET_ARCH))
af062818b47340eef15700d2f0211576ba3506eevboxsyncTEMPLATE_XPCOMBLDPROG_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst)))
af062818b47340eef15700d2f0211576ba3506eevboxsync# Header installs.
af062818b47340eef15700d2f0211576ba3506eevboxsyncINSTALLS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync NSPRPUB-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync NSPRPUB-MD-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync NSPRPUB-OBS-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync NSPRPUB-PRIV-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync STRING-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync XPCOM-HEADERS \
af062818b47340eef15700d2f0211576ba3506eevboxsync IPCD-HEADERS
af062818b47340eef15700d2f0211576ba3506eevboxsync# The IDL compiler and typelib linker.
af062818b47340eef15700d2f0211576ba3506eevboxsyncBLDPROGS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync# We build several libraries so that any linker command line
af062818b47340eef15700d2f0211576ba3506eevboxsync# length restrictions limit will be avoided. (Solaris, Mac?)
af062818b47340eef15700d2f0211576ba3506eevboxsyncLIBRARIES += \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-nspr \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-typelib \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-string \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-base \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-ds \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-io \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-components \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-threads \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-xptinfo \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-xptcall \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-proxy \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxXPCOMGlue_s \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxXPCOMGlue \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-ipcutils \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-ipcshared \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-ipcdlock \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xpcom-ipctransmgr \
af062818b47340eef15700d2f0211576ba3506eevboxsync VBox-xcpom-ipctmgrcom
af062818b47340eef15700d2f0211576ba3506eevboxsync VBoxXPCOM \
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync VBoxXPCOMIPCC
af062818b47340eef15700d2f0211576ba3506eevboxsyncifdef VBOX_WITH_TESTCASES
af062818b47340eef15700d2f0211576ba3506eevboxsyncPROGRAMS += \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstnsIFileEnumerator \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstnsIFileTest \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestArray \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestAtoms \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestAutoLock \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestCallTemplates \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestCOMPtr \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestCOMPtrEq \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestCRT \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestFactory \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestHashtables \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestID \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestObserverService \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestPipes \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestServMgr \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestThreads \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestXPIDLString \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestDeque \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestAutoPtr \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestMinStringAPI \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstTestStrings \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstPrimitiveTest \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstSimpleTypeLib \
af062818b47340eef15700d2f0211576ba3506eevboxsync tstXptDump \
af062818b47340eef15700d2f0211576ba3506eevboxsync# tstTestPermanentAtoms
af062818b47340eef15700d2f0211576ba3506eevboxsyncendif # VBOX_WITH_TESTCASES
af062818b47340eef15700d2f0211576ba3506eevboxsyncPROGRAMS += VBoxXPCOMIPCD
af062818b47340eef15700d2f0211576ba3506eevboxsyncifeq ($(KBUILD_TARGET),linux)
af062818b47340eef15700d2f0211576ba3506eevboxsync XPCOM_TYPELIB = $(PATH_BIN)/VBoxXPCOMBase.xpt
af062818b47340eef15700d2f0211576ba3506eevboxsync XPCOM_TYPELIB = $(PATH_BIN)/components/VBoxXPCOMBase.xpt
af062818b47340eef15700d2f0211576ba3506eevboxsyncOTHERS += $(XPCOM_TYPELIB)
af062818b47340eef15700d2f0211576ba3506eevboxsyncOTHER_CLEAN += \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(PATH_TARGET)/VBox-xpcom-nspr/_pr_bld.h \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(PATH_TARGET)/VBox-xpcom-nspr/_pl_bld.h \
af062818b47340eef15700d2f0211576ba3506eevboxsync $(XPCOM_TYPELIB)
af062818b47340eef15700d2f0211576ba3506eevboxsync# SDK headers - lot's of files to install...
af062818b47340eef15700d2f0211576ba3506eevboxsync# Tip: If you are going to remove files here, you might
af062818b47340eef15700d2f0211576ba3506eevboxsync# wish to do a `kmk uninstall' first to avoid have
af062818b47340eef15700d2f0211576ba3506eevboxsync# obsoleted files in the $(INST_SDK) directory.
af062818b47340eef15700d2f0211576ba3506eevboxsyncNSPRPUB-HEADERS_INST = $(INST_SDK)include/xpcom/nsprpub/
af062818b47340eef15700d2f0211576ba3506eevboxsyncNSPRPUB-HEADERS_IFFLAGS = -m 644
af062818b47340eef15700d2f0211576ba3506eevboxsyncNSPRPUB-HEADERS_SOURCES = \
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncNSPRPUB-MD-HEADERS_INST = $(INST_SDK)include/xpcom/nsprpub/md
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncNSPRPUB-MD-HEADERS_IFFLAGS = -m 644
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncNSPRPUB-MD-HEADERS_SOURCES = \
NSPRPUB-OBS-HEADERS_INST = $(INST_SDK)include/xpcom/nsprpub/obsolete
NSPRPUB-PRIV-HEADERS_INST = $(INST_SDK)include/xpcom/nsprpub/private
STRING-HEADERS_INST = $(INST_SDK)include/xpcom/string
XPCOM-HEADERS_INST = $(INST_SDK)include/xpcom/xpcom
IPCD-HEADERS_INST = $(INST_SDK)include/xpcom/ipcd
VBOX_PATH_GLIB := $(lastword $(sort $(wildcard $(PATH_DEVTOOLS_TRG)/glibidl/*/glibidl/gcc335)))
$(VBOX_PATH_LIBIDL)/lib/libidl.lib \
$(VBOX_PATH_LIBIDL)/lib/glib.lib
xpidl-DLLS_SOURCES += $(wildcard $(VBOX_PATH_GLIB)/lib/glib.dll)
xpidl-DLLS_SOURCES += $(wildcard $(VBOX_PATH_LIBIDL)/lib/libIDL.dll)
# FIXME: LINUX should be defined by _linux.cfg
# FIXME: L4 should be defined by _linux.cfg
nsprpub/pr/src/io/prfile.c /* why not for Linux? */ \
nsprpub/pr/src/io/prio.c /* "" "" "" "" */ \
# gcc/emx sources
VBox-xpcom-xptcall_DEFS.darwin = KEEP_STACK_16_BYTE_ALIGNED
VBox-xpcom-xptcall_DEFS.os2 = MOZ_NEED_LEADING_UNDERSCORE
VBox-xpcom-xptcall_SOURCES = xpcom/reflect/xptcall/src/xptcall.cpp
VBox-xpcom-xptcall_SOURCES.darwin.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_unixish_x86.cpp \
VBox-xpcom-xptcall_SOURCES.freebsd.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
VBox-xpcom-xptcall_SOURCES.freebsd.amd64= xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
VBox-xpcom-xptcall_SOURCES.linux.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_gcc_x86_unix.cpp \
VBox-xpcom-xptcall_SOURCES.linux.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
VBox-xpcom-xptcall_SOURCES.solaris.x86 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_solaris.cpp \
VBox-xpcom-xptcall_SOURCES.solaris.amd64 = xpcom/reflect/xptcall/src/md/unix/xptcinvoke_x86_64_linux.cpp \
# that triggers is, while -O1 -fno-omit-frame-pointer does not work. Anyway, it's probably a gcc/mozila
# bug and it's not worth investigating as I'm not the maintainger of the solaris gcc port. [bird, 2007-09-17]
VBox-xpcom-proxy_SOURCES = xpcom/proxy/src/nsProxyEvent.cpp \
# See http://developer.mozilla.org/en/docs/XPCOM_Glue for details about the
# (as opposed to the original XPCOM where e.g. NSPR lives in a separate DLL).
VBoxXPCOM_LDFLAGS.solaris = -Wl,-z,allextract \
# $(VBOX_PATH_L4_GCC3_INSTALL)/libsupc++.a $(VBOX_PATH_L4_GCC3_INSTALL)/libgcc_eh.a
TEMPLATE_XPCOMIPC_DEFS += IPC_DAEMON_APP_NAME=\"VBoxXPCOMIPCD.exe\"
TEMPLATE_XPCOMIPC_LIBS.darwin = $(TARGET_VBoxXPCOM)
TEMPLATE_XPCOMIPC_LIBS.os2 = $(TARGET_VBoxXPCOM)
VBoxXPCOMIPCC_NAME.os2 = VBoxIPCC
tstnsIFileEnumerator_SOURCES = xpcom/tests/nsIFileEnumerator.cpp
tstnsIFileTest_SOURCES = xpcom/tests/nsIFileTest.cpp
tstTestArray_SOURCES = xpcom/tests/TestArray.cpp
tstTestAtoms_SOURCES = xpcom/tests/TestAtoms.cpp
tstTestAutoLock_SOURCES = xpcom/tests/TestAutoLock.cpp
tstTestCallTemplates_SOURCES = xpcom/tests/TestCallTemplates.cpp
tstTestCOMPtr_SOURCES = xpcom/tests/TestCOMPtr.cpp
tstTestCOMPtrEq_SOURCES = xpcom/tests/TestCOMPtrEq.cpp
tstTestCRT_SOURCES = xpcom/tests/TestCRT.cpp
tstTestFactory_SOURCES = xpcom/tests/TestFactory.cpp
tstTestHashtables_SOURCES = xpcom/tests/TestHashtables.cpp
tstTestID_SOURCES = xpcom/tests/TestID.cpp
tstTestObserverService_SOURCES = xpcom/tests/TestObserverService.cpp
tstTestPermanentAtoms_SOURCES = xpcom/tests/TestPermanentAtoms.cpp
tstTestPipes_SOURCES = xpcom/tests/TestPipes.cpp
tstTestServMgr_SOURCES = xpcom/tests/TestServMgr.cpp
tstTestServMgr_INCS = xpcom/tests/services
tstTestThreads_SOURCES = xpcom/tests/TestThreads.cpp
tstTestXPIDLString_SOURCES = xpcom/tests/TestXPIDLString.cpp
tstTestDeque_SOURCES = xpcom/tests/TestDeque.cpp
tstTestAutoPtr_SOURCES = xpcom/tests/TestAutoPtr.cpp
tstTestMinStringAPI_SOURCES = xpcom/tests/TestMinStringAPI.cpp
tstTestStrings_SOURCES = xpcom/tests/TestStrings.cpp
tstPrimitiveTest_SOURCES = xpcom/typelib/xpt/tests/PrimitiveTest.c
tstSimpleTypeLib_SOURCES = xpcom/typelib/xpt/tests/SimpleTypeLib.c
tstXptDump_SOURCES = xpcom/typelib/xpt/tools/xpt_dump.c
tstXptLink_SOURCES = xpcom/typelib/xpt/tools/xpt_link.c
include $(KBUILD_PATH)/subfooter.kmk
$(PATH_VBox-xpcom-nspr)/_pr_bld.h:
$(PATH_VBox-xpcom-nspr)/_pl_bld.h:
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/base/ \
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/ds/ \
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/components/ \
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/io/ \
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/threads/ \
-I $(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptinfo/public/
$$(QUIET)$$(TARGET_xpidl) -m typelib $(XPIDL_INCS) -e $(addprefix $(PATH_TARGET)/,$(notdir $(subst .idl,.xpt,$(idl)))) $$<
$(PATH_VBox-xpcom-string)/idl_ts: $(addprefix $(VBOX_PATH_SDK)/include/,$(notdir $(subst .idl,.h,$(XPCOM_IDLFILES))))
xpcom/string/src/nsAString.cpp: $(PATH_VBox-xpcom-string)/idl_ts