summaryrefslogtreecommitdiff
path: root/src/libs/xpcom18a4/Config.kmk
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/xpcom18a4/Config.kmk')
-rw-r--r--src/libs/xpcom18a4/Config.kmk49
1 files changed, 33 insertions, 16 deletions
diff --git a/src/libs/xpcom18a4/Config.kmk b/src/libs/xpcom18a4/Config.kmk
index fb9c1afe..71acf9c8 100644
--- a/src/libs/xpcom18a4/Config.kmk
+++ b/src/libs/xpcom18a4/Config.kmk
@@ -4,7 +4,7 @@
#
#
-# Copyright (C) 2006-2010 Oracle Corporation
+# Copyright (C) 2006-2013 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
@@ -25,6 +25,7 @@ endif
#
VBOX_PATH_XPCOM_SRC := $(PATH_ROOT)/src/libs/xpcom18a4
+
#
# Template for building the XPCOM libraries (shared).
#
@@ -46,7 +47,6 @@ TEMPLATE_XPCOM_CXXFLAGS.release = -O
TEMPLATE_XPCOM_CXXFLAGS.profile = -O
TEMPLATE_XPCOM_CXXFLAGS.darwin = -fpascal-strings -fshort-wchar -fno-common -fno-rtti $(VBOX_DARWIN_DEF_SDK_CXXFLAGS)
TEMPLATE_XPCOM_CXXFLAGS.freebsd = -pthread
-TEMPLATE_XPCOM_CXXFLAGS.l4 = -fno-exceptions -nostdinc
TEMPLATE_XPCOM_CXXFLAGS.linux = -pthread
TEMPLATE_XPCOM_CXXFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
TEMPLATE_XPCOM_CFLAGS = -g -pipe -Wall -Wno-unused -Wno-parentheses -Wno-uninitialized $(VBOX_GCC_fvisibility-hidden) \
@@ -56,7 +56,6 @@ TEMPLATE_XPCOM_CFLAGS.amd64 = -m64
TEMPLATE_XPCOM_CFLAGS.release = -O
TEMPLATE_XPCOM_CFLAGS.profile = -O
TEMPLATE_XPCOM_CFLAGS.freebsd = -pthread
-TEMPLATE_XPCOM_CFLAGS.l4 = -nostdinc
TEMPLATE_XPCOM_CFLAGS.linux = -pthread -ansi
TEMPLATE_XPCOM_CFLAGS.solaris = -fno-omit-frame-pointer # for now anyway.
TEMPLATE_XPCOM_DEFS = \
@@ -76,7 +75,6 @@ TEMPLATE_XPCOM_DEFS.darwin = OSTYPE=\"Darwin8.8.1\" OSARCH=\"Darwin\" XP
TEMPLATE_XPCOM_DEFS.darwin.amd64 = VBOX_MACOSX_FOLLOWS_UNIX_IO
TEMPLATE_XPCOM_DEFS.freebsd = OSTYPE=\"FreeBSD5+\" OSARCH=\"FreeBSD\" XP_UNIX=1 FREEBSD=1 HAVE_VISIBILITY_ATTRIBUTE=1
TEMPLATE_XPCOM_DEFS.linux = OSTYPE=\"Linux2.6\" OSARCH=\"Linux\" XP_UNIX=1 _GNU_SOURCE HAVE_VISIBILITY_ATTRIBUTE=1 ## @todo LINUX=1
-TEMPLATE_XPCOM_DEFS.l4 = OSTYPE=\"L4ENV\" OSARCH=\"L4\" XP_UNIX=1 L4ENV HAVE_VISIBILITY_ATTRIBUTE=1
# Don't define BSD_SELECT because bsdselect() from kLIBC <= 0.6.3 has problems on SMP
TEMPLATE_XPCOM_DEFS.os2 = OSTYPE=\"OS/2_4.5\" OSARCH=\"OS/2\" XP_OS2 XP_PC OS2=4
TEMPLATE_XPCOM_DEFS.solaris = OSTYPE=\"Solaris10\" OSARCH=\"Solaris\" XP_UNIX=1 XP_SOLARIS=1 HAVE_LIBDL=1 HAVE_SENDFILEV=1 SOLARIS=1 _REENTRANT
@@ -125,11 +123,6 @@ TEMPLATE_XPCOM_INCS = $(VBOX_PATH_XPCOM_SRC)/xpcom/build \
$(VBOX_PATH_SDK)/bindings/xpcom/include/ipcd \
.
TEMPLATE_XPCOM_INCS.darwin = $(VBOX_PATH_MACOSX_SDK)/Developer/Headers/FlatCarbon
-TEMPLATE_XPCOM_INCS.l4 = $(L4_INCDIR) $(VBOX_L4_GCC3_INCS)
-TEMPLATE_XPCOM_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
- -T$(L4_DIR)/lib/x86_586/main_rel.ld -nostdlib \
- # -Wl,--whole-archive,--no-allow-shlib-undefined
-TEMPLATE_XPCOM_LIBS.l4 = $(VBOX_GCC_LIBGCC)
TEMPLATE_XPCOM_LIBS.solaris = sendfile
TEMPLATE_XPCOM_ORDERDEPS = $(foreach hdrinst, $(filter %-HEADERS, $(INSTALLS)), $($(hdrinst)_1_TARGET)) \
$(PATH_TARGET)/VBox-xpcom-idl-timestamp
@@ -167,14 +160,7 @@ TEMPLATE_XPCOMEXE_LIBS = \
$(TEMPLATE_XPCOM_LIBS)
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))
-TEMPLATE_XPCOMEXE_LDFLAGS.l4 = $(L4_DIR)/lib/x86_586/crt0.o \
- -T$(L4_DIR)/lib/x86_586/main_dyn.ld -nostdlib -lgcc \
- -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so \
- -Wl,--rpath-link,$(L4_LIBDIR) \
- # -Wl,--whole-archive,--no-allow-shlib-undefined
-# -Wno-format
#
@@ -184,6 +170,15 @@ TEMPLATE_XPCOMTSTEXE = XPCOM executable files (testcases)
TEMPLATE_XPCOMTSTEXE_EXTENDS = XPCOMEXE
TEMPLATE_XPCOMTSTEXE_CXXFLAGS = $(TEMPLATE_XPCOMEXE_CXXFLAGS) -Wno-format
TEMPLATE_XPCOMTSTEXE_CFLAGS = $(TEMPLATE_XPCOMEXE_CFLAGS) -Wno-format
+TEMPLATE_XPCOMTSTEXE_INST = $(INST_TESTCASE)
+ifdef VBOX_WITH_RUNPATH
+ TEMPLATE_XPCOMTSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RUNPATH)' $(TEMPLATE_XPCOMEXE_LDFLAGS)
+else ifdef VBOX_WITH_RELATIVE_RUNPATH
+ TEMPLATE_XPCOMTSTEXE_LDFLAGS = '$(VBOX_GCC_RPATH_OPT)$(VBOX_WITH_RELATIVE_RUNPATH)/..' $(TEMPLATE_XPCOMEXE_LDFLAGS)
+endif
+if "$(KBUILD_TARGET)" == "win" && defined(VBOX_SIGNING_MODE)
+ TEMPLATE_XPCOMTSTEXE_POST_CMDS =
+endif
#
@@ -267,6 +262,28 @@ TEMPLATE_XPCOMOSX107_INCS.darwin = $(VBOX_PATH_MACOSX_SDK_10_7)/Developer
#
+# Creates a x86 target for an XPCOM target if so desired.
+# The target is specified as the first argument: $(evalcall VBOX_XPCOM_X86,target).
+#
+ifdef VBOX_WITH_32_ON_64_MAIN_API
+ define VBOX_XPCOM_X86
+ $(1)-x86_TEMPLATE := $(strip $($(1)_TEMPLATE))-x86
+ $(1)-x86_EXTENDS := $(1)
+ endef
+else
+ define VBOX_XPCOM_X86
+ endef
+endif
+
+# Corresponding 32-bit template(s).
+TEMPLATE_XPCOM-x86 = 32-bit XPCOM libraries (shared)
+TEMPLATE_XPCOM-x86_EXTENDS = XPCOM
+TEMPLATE_XPCOM-x86_BLD_TRG_ARCH = x86
+TEMPLATE_XPCOM-x86_DEFS = $(TEMPLATE_XPCOM_DEFS) VBOX_IN_32_ON_64_MAIN_API
+TEMPLATE_XPCOM-x86_LIBS = $(subst $(LIB_RUNTIME),$(VBOX_LIB_RUNTIME_X86),$(TEMPLATE_XPCOM_LIBS))
+
+
+#
# The list of XPCOM's IDL files.
# This is used by the java bindings as well as the XPCOM build.
#