diff options
Diffstat (limited to 'ACE/include/makeinclude/platform_clang_common.GNU')
-rw-r--r-- | ACE/include/makeinclude/platform_clang_common.GNU | 98 |
1 files changed, 9 insertions, 89 deletions
diff --git a/ACE/include/makeinclude/platform_clang_common.GNU b/ACE/include/makeinclude/platform_clang_common.GNU index cfd7f81f1a3..b9c77141d68 100644 --- a/ACE/include/makeinclude/platform_clang_common.GNU +++ b/ACE/include/makeinclude/platform_clang_common.GNU @@ -6,9 +6,12 @@ CCFLAGS += -fdelayed-template-parsing ifneq ($(CROSS_COMPILE),) CROSS-COMPILE = 1 # Build using the cross-tools - CC = ${CROSS_COMPILE}clang${CROSS_COMPILE_SUFFIX} - CXX = ${CROSS_COMPILE}clang++${CROSS_COMPILE_SUFFIX} - AR = ${CROSS_COMPILE}ar${CROSS_COMPILE_SUFFIX} + override_cross_compile ?= 0 + ifeq ($(override_cross_compile),0) + CC = ${CROSS_COMPILE}clang${CROSS_COMPILE_SUFFIX} + CXX = ${CROSS_COMPILE}clang++${CROSS_COMPILE_SUFFIX} + AR = ${CROSS_COMPILE}ar${CROSS_COMPILE_SUFFIX} + endif # Cross-linker requires this for linked in shared libs that depend # themselves on other shared libs (not directly linked in) LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib @@ -20,17 +23,12 @@ ifneq ($(CROSS_COMPILE),) TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2) TAO_IDL3_TO_XMI = $(HOST_ROOT)/bin/tao_idl3_to_xmi TAO_IDL3_TO_XMI_DEP = $(TAO_IDL3_TO_XMI) - # make sure to use the target compiler, not the cross-compiler + # make sure to use the host compiler, not the cross-compiler # as preprocessor for the cross-compiled idl tools TAO_IDL_PREPROCESSOR = clang endif endif -ifeq ($(openmp),1) -FLAGS_C_CC += -fopenmp -LDFLAGS += -fopenmp -endif - ifeq ($(CXX),insure) # insure does not pass through the -dumpversion option. CXX_FOR_VERSION_TEST ?= g++ @@ -40,32 +38,7 @@ endif CXX_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion) -# If no option has been specified, set templates to automatic -# version of the compiler. -# -templates ?= automatic - -# The correct flags to pass to the linker for ELF dynamic shared library -# versioning. -# If the platform file didn't already set versioned_so, default to 1. -versioned_so ?= 1 -with_ld ?= -ifeq ($(versioned_so),1) - ifeq ($(with_ld),hpux) - SOFLAGS += -Wl,+h -Wl,$(SONAME) - else - ifeq ($(with_ld),aix) - # What to do here??? - else - SOFLAGS += -Wl,-h -Wl,$(SONAME) - endif - endif -endif - -static_libs_only ?= - CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version) -gcc_template_instantiation_visibility ?= 0 # Only modify LDFLAGS if DLD has been set. ifneq ($(DLD),) @@ -86,58 +59,5 @@ ifeq ($(no_strict_aliasing), 1) CCFLAGS += -fno-strict-aliasing endif -ifeq ($(c++0x),1) - CCFLAGS += -std=c++0x -else - ifeq ($(c++11),1) - CCFLAGS += -std=c++11 - endif # c++11 -endif # c++0x - -ifeq ($(shared_libs), 1) - ifneq ($(static_libs_only), 1) - # Add all symbols to the dynamic symbol table. Needed to enable - # dynamic_cast<> for shared libraries. (see - # http://gcc.gnu.org/faq.html#dso) - - ifeq ($(GNU_LD),1) - # Make sure this version of ld supports the -E option. - ifneq ($(mingw32),1) - LD_EXPORT_DEFINED := $(shell sh -c '$(LD_FOR_VERSION_TEST) -E 2>&1 | egrep -i "(option|flag)" /dev/null; echo $$?') - else - LD_EXPORT_DEFINED := $(shell $(LD_FOR_VERSION_TEST) -E 2>&1 | grep -c -i -e '(option|flag)') - ifeq ($(LD_EXPORT_DEFINED),0) - LD_EXPORT_DEFINED:=1 - else - LD_EXPORT_DEFINED:=0 - endif - endif # mingw32 - ifeq ($(LD_EXPORT_DEFINED),1) - LDFLAGS += -Wl,-E - endif # LD_EXPORT_DEFINED = 1 - endif # GNU ld - - # Take advantage of G++ (>= 4.x) visibility attributes to generate - # improved shared library binaries. - ifneq ($(no_hidden_visibility),1) - CCFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden - ifeq ($(gcc_template_instantiation_visibility),1) - CCFLAGS += -DACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS=1 - endif # gcc_template_instantiation_visibility - else - CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0 - endif # no_hidden_visibility - else - # Explicitly disable G++ (>= 4.x) visibility attributes since - # they are only meant for use when building shared libraries. - no_hidden_visibility = 1 - CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0 - endif # static_libs_only -else - # Explicitly disable G++ (>= 4.x) visibility attributes since - # they are only meant for use when building shared libraries. - no_hidden_visibility = 1 - CPPFLAGS += -DACE_HAS_CUSTOM_EXPORT_MACROS=0 -endif # shared_libs - -FLAGS_C_CC += -W -Wall +# Things Clang has in common with GCC +include $(ACE_ROOT)/include/makeinclude/platform_gcc_clang_common.GNU |