Config.kmk revision 5087843bf128d4488ed9ab558b07d6326e53bafe
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# XPCOM kBuild Configuration file.
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2006-2010 Oracle Corporation
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# available from http://www.virtualbox.org. This file is free software;
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# you can redistribute it and/or modify it under the terms of the GNU
6eea1c2a48951b898f17a82b2432e5233226d6cdvboxsync# General Public License (GPL) as published by the Free Software
6eea1c2a48951b898f17a82b2432e5233226d6cdvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
6eea1c2a48951b898f17a82b2432e5233226d6cdvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
6eea1c2a48951b898f17a82b2432e5233226d6cdvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# Include the top-level configure file.
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncifndef VBOX_ROOT_CONFIG_KMK_INCLUDED
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync include $(PATH_ROOT)/Config.kmk
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncVBOX_PATH_XPCOM_SRC := $(PATH_ROOT)/src/libs/xpcom18a4
193a3d2712f792f29e133722eebd0ee9d61358c6vboxsync# Template for building the XPCOM libraries (shared).
193a3d2712f792f29e133722eebd0ee9d61358c6vboxsyncTEMPLATE_XPCOM = XPCOM libraries (shared)
193a3d2712f792f29e133722eebd0ee9d61358c6vboxsyncTEMPLATE_XPCOM_EXTENDS = VBOXR3NP
193a3d2712f792f29e133722eebd0ee9d61358c6vboxsync## @todo correct inheritance here to make it use all the VBOXR3NP settings instead of overriding all of them.
193a3d2712f792f29e133722eebd0ee9d61358c6vboxsyncTEMPLATE_XPCOM_ASTOOL = $(TEMPLATE_VBOXR3NP_TOOL)
fd647f0a684c087d1481c46d9aa85962e0341b1fvboxsyncTEMPLATE_XPCOM_ASFLAGS = $(NO_SUCH_VARIABLE)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_ASDEFS = $(NO_SUCH_VARIABLE)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_CXXFLAGS = -g -pipe -ansi -Wall -Wno-unused -Wno-non-virtual-dtor \
010b49150eff471de701712aaa3e643d56a2fd73vboxsync $(VBOX_GCC_Wno-invalid-offsetof) -Wno-sign-compare -Wno-unused -Wno-ctor-dtor-privacy \
010b49150eff471de701712aaa3e643d56a2fd73vboxsync $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fdiagnostics-show-option)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_CFLAGS = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync $(VBOX_GCC_fdiagnostics-show-option)
fd647f0a684c087d1481c46d9aa85962e0341b1fvboxsyncTEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS = MOZILLA_CLIENT=1 NDEBUG=1 _IMPL_NS_COM \
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync XPCOM_DLL_BASE=\"$(basename $(notdir $(LIB_XPCOM)))\" \
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync MOZ_DLL_SUFFIX=\"$(suffix $(LIB_XPCOM))\" \
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
ad27e1d5e48ca41245120c331cc88b50464813cevboxsync TEMPLATE_XPCOM_DEFS += VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.amd64 = HAVE_VA_LIST_AS_ARRAY HAVE_VA_COPY VA_COPY\(a\,b\)=__builtin_va_copy\(a\,b\)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_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)
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.darwin.amd64 = VBOX_MACOSX_FOLLOWS_UNIX_IO
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.l4 = OSTYPE=\"L4ENV\" OSARCH=\"L4\" XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsync# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
f7ac348ea0a65d69e3ddb443f5cb3f449e9ad825vboxsyncTEMPLATE_XPCOM_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
TEMPLATE_XPCOM_LDFLAGS.x86 = -m32
TEMPLATE_XPCOM_LDFLAGS.amd64 = -m64
TEMPLATE_XPCOM_INCS = $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
$(VBOX_PATH_XPCOM_SRC)/xpcom/ds \
$(VBOX_PATH_XPCOM_SRC)/xpcom/io \
$(VBOX_PATH_XPCOM_SRC)/xpcom/base \
$(VBOX_PATH_XPCOM_SRC)/xpcom/components \
$(VBOX_PATH_XPCOM_SRC)/xpcom/threads \
$(VBOX_PATH_XPCOM_SRC)/xpcom/proxy/src \
$(VBOX_PATH_XPCOM_SRC)/xpcom/reflect/xptcall/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/client/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/shared/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/lock/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/dconnect/src \
$(VBOX_PATH_XPCOM_SRC)/ipc/ipcd/extensions/transmngr/common \
$(VBOX_PATH_SDK)/bindings/xpcom/include \
$(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
$(VBOX_PATH_SDK)/bindings/xpcom/include/string \
$(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
$(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
TEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
-T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
TEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC)
TEMPLATE_XPCOM_LIBS.solaris = sendfile
TEMPLATE_XPCOM_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst))) \
TEMPLATE_XPCOM_DEFS.os2 += OS2EMX_PLAIN_CHAR
TEMPLATE_XPCOM_DEFS.os2 += XP_OS2_EMX OS2=4
TEMPLATE_XPCOM_DEFS.os2 += _EMX_SOURCE
TEMPLATE_XPCOM_ASFLAGS.os2 += -Zomf
# When using IPRT in NSRP or/and using IPRT for logging, link with IPRT.
TEMPLATE_XPCOMEXE_INCS = ipc/ipcd/shared/src \
$(VBOX_PATH_SDK)/bindings/xpcom/include \
$(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
$(VBOX_PATH_SDK)/bindings/xpcom/include/string \
$(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
$(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
TEMPLATE_XPCOMEXE_LIBS.freebsd = $(LIB_PTHREAD)
TEMPLATE_XPCOMEXE_LIBS.linux = dl $(LIB_PTHREAD)
TEMPLATE_XPCOMEXE_LIBS.l4 = $(LIB_RUNTIME) $(VBOX_GCC_LIBGCC)
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))
-T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
-Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
# It extends the BLDPROG template in config.kmk but overrides CFLAGS
## @todo Verify that this doesn't blow up because of template inheriance ordering. (we're assuming XPCOMEXE is expanded when this is being used.)
TEMPLATE_XPCOMBLDPROG_DEFS.$(KBUILD_HOST) = $(TEMPLATE_VBOXBLDPROG_DEFS.$(KBUILD_HOST)) $(TEMPLATE_XPCOMEXE_DEFS.$(KBUILD_HOST))
TEMPLATE_XPCOMBLDPROG_DEFS.amd64 = $(TEMPLATE_VBOXBLDPROG_DEFS.amd64) $(TEMPLATE_XPCOMEXE_DEFS.amd64)
$(VBOX_PATH_SDK)/bindings/xpcom/include \
$(VBOX_PATH_SDK)/bindings/xpcom/include/nsprpub \
$(VBOX_PATH_SDK)/bindings/xpcom/include/string \
$(VBOX_PATH_SDK)/bindings/xpcom/include/xpcom \
$(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd
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
TEMPLATE_XPCOMBLDPROG_CXXFLAGS.darwin = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-common -fno-rtti
TEMPLATE_XPCOMBLDPROG_CXXFLAGS.solaris = $(TEMPLATE_VBOXBLDPROG_CXXFLAGS.solaris) -fno-omit-frame-pointer # for now anyway.
TEMPLATE_XPCOMBLDPROG_LDFLAGS.darwin = $(TEMPLATE_VBOXBLDPROG_LDFLAGS.darwin) -fpascal-strings -fshort-wchar -fno-rtti -fno-exceptions
TEMPLATE_XPCOMBLDPROG_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $(TARGET_$(hdrinst)))
TEMPLATE_XPCOMOSX104_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CXXFLAGS)
TEMPLATE_XPCOMOSX104_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_CFLAGS)
TEMPLATE_XPCOMOSX104_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_LDFLAGS)
TEMPLATE_XPCOMOSX104_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_4_DEFS)
TEMPLATE_XPCOMOSX105_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CXXFLAGS)
TEMPLATE_XPCOMOSX105_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_CFLAGS)
TEMPLATE_XPCOMOSX105_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_LDFLAGS)
TEMPLATE_XPCOMOSX105_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_5_DEFS)
TEMPLATE_XPCOMOSX106_CXXFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CXXFLAGS),$(TEMPLATE_XPCOM_CXXFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CXXFLAGS)
TEMPLATE_XPCOMOSX106_CFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_CFLAGS),$(TEMPLATE_XPCOM_CFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_CFLAGS)
TEMPLATE_XPCOMOSX106_LDFLAGS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_LDFLAGS),$(TEMPLATE_XPCOM_LDFLAGS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_LDFLAGS)
TEMPLATE_XPCOMOSX106_DEFS.darwin = $(filter-out $(VBOX_DARWIN_DEF_SDK_DEFS),$(TEMPLATE_XPCOM_DEFS.darwin)) $(VBOX_DARWIN_DEF_SDK_10_6_DEFS)
-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/