summaryrefslogtreecommitdiff
path: root/solenv/gbuild
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2013-05-08 19:56:48 +0200
committerMichael Stahl <mstahl@redhat.com>2013-05-10 17:56:24 +0200
commitc007292ec3eedcf2b1ad673308fa42aad31a7333 (patch)
tree40cb5a7b6e854db9e575ad65a83f2868accd328a /solenv/gbuild
parent09373d45838e4dab514e37dee4a4c8f6218ebda0 (diff)
gbuild: gcc platforms: link with C compiler if no C++ files
In 5589c72b88e502bfca045ae38af16c854afdd401 a problem due to linking pyuno_wrapper with g++ was fixed: the library should not have a dependency on libstdc++. It's possible to implement this in gbuild directly by checking whether there are any C++ input files. (apparently on GNU/Linux g++ implicitly links in libm too...) Change-Id: I04dce06f796e20047ce7f5eab65e6110c0244445
Diffstat (limited to 'solenv/gbuild')
-rw-r--r--solenv/gbuild/platform/IOS_ARM_GCC.mk2
-rw-r--r--solenv/gbuild/platform/WNT_INTEL_GCC.mk4
-rw-r--r--solenv/gbuild/platform/android.mk2
-rw-r--r--solenv/gbuild/platform/macosx.mk2
-rw-r--r--solenv/gbuild/platform/solaris.mk2
-rw-r--r--solenv/gbuild/platform/unxgcc.mk3
6 files changed, 8 insertions, 7 deletions
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index 5bcb0380835f..e52563968790 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -112,7 +112,7 @@ endef
define gb_LinkTarget__command_dynamiclink
$(if $(filter Library CppunitTest,$(TARGETTYPE)),@echo No dynamic libraries should be built for iOS && exit 1, \
mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
+ $(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
$(gb_Executable_TARGETTYPEFLAGS) \
$(subst \d,$$,$(RPATH)) \
$(T_LDFLAGS) \
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index b7760df46831..77fe838e69e5 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -126,7 +126,7 @@ gb_LinkTarget_INCLUDE +=\
define gb_LinkTarget__command_dynamiclinkexecutable
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) $(strip \
+ $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
$(gb_Executable_TARGETTYPEFLAGS) \
$(if $(filter YES,$(TARGETGUI)), -mwindows, -mconsole) \
$(T_LDFLAGS) \
@@ -147,7 +147,7 @@ endef
define gb_LinkTarget__command_dynamiclinklibrary
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) $(strip \
+ $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
$(gb_Library_TARGETTYPEFLAGS) \
$(T_LDFLAGS) \
$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/android.mk b/solenv/gbuild/platform/android.mk
index aec98582e449..0161f9797f73 100644
--- a/solenv/gbuild/platform/android.mk
+++ b/solenv/gbuild/platform/android.mk
@@ -36,7 +36,7 @@ gb_LinkTarget_LDFLAGS += \
define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
+ $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
-shared \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 5d6bd8bb6689..1f123f10f473 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -138,7 +138,7 @@ endef
define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
+ $(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
$(if $(filter Bundle,$(TARGETTYPE)),$(gb_Bundle_TARGETTYPEFLAGS)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 31d5c19d4175..96b2c53b18e1 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -188,7 +188,7 @@ endif
define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
+ $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter Library,$(TARGETTYPE)),$(gb_Library_LTOFLAGS)) \
$(subst \d,$$,$(RPATH)) \
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index 7785cd185426..9169c0fe538d 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -184,10 +184,11 @@ endif
# note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10
# we want to use @$(extraobjectlist) in the long run
+# link with C compiler if there are no C++ files (pyuno_wrapper depends on this)
define gb_LinkTarget__command_dynamiclink
$(call gb_Helper_abbreviate_dirs,\
mkdir -p $(dir $(1)) && \
- $(gb_CXX) \
+ $(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
$(if $(filter-out $(foreach lib,frm scfilt wpftdraw,$(call gb_Library_get_linktargetname,$(lib))),$*),$(gb_LTOFLAGS)) \
$(if $(SOVERSION),-Wl$(COMMA)--soname=$(notdir $(1)).$(SOVERSION)) \