Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / ACE / include / makeinclude / platform_clang_common.GNU
blob667d394e1da0ed94951ac9dbcc64f4df4fb34602
1 # -*- Makefile -*-
3 ifneq ($(CROSS_COMPILE),)
4   CROSS-COMPILE = 1
5   # Build using the cross-tools
6   override_cross_compile ?= 0
7   ifeq ($(override_cross_compile),0)
8     CC  = ${CROSS_COMPILE}clang${CROSS_COMPILE_SUFFIX}
9     CXX = ${CROSS_COMPILE}clang++${CROSS_COMPILE_SUFFIX}
10     AR  = ${CROSS_COMPILE}ar${CROSS_COMPILE_SUFFIX}
11   endif
12   # Cross-linker requires this for linked in shared libs that depend
13   # themselves on other shared libs (not directly linked in)
14   LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib
15   ifneq (,$(HOST_ROOT))
16     TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
17     TAO_IDL = $(HOST_ROOT)/bin/tao_idl
18     TAO_IDL_DEP = $(TAO_IDL)
19     # make sure to use the host compiler, not the cross-compiler
20     # as preprocessor for the cross-compiled idl tools
21     TAO_IDL_PREPROCESSOR = clang
22   endif
23 endif
25 ifeq ($(CXX),insure)
26   # insure does not pass through the -dumpversion option.
27   CXX_FOR_VERSION_TEST ?= g++
28 else
29   CXX_FOR_VERSION_TEST ?= $(CXX)
30 endif
32 CXX_VERSION := $(shell $(CXX_FOR_VERSION_TEST) -dumpversion)
34 CXX_FULL_VERSION := $(shell $(CXX_FOR_VERSION_TEST) --version)
36 # Only modify LDFLAGS if DLD has been set.
37 ifneq ($(DLD),)
38   ifeq ($(DLD),$(CXX_FOR_VERSION_TEST)) # only try this is we are using ld through gcc
39     LD_FOR_VERSION_TEST = $(subst \,/,$(shell $(CXX_FOR_VERSION_TEST) -print-prog-name=ld))
40   else
41     LD_FOR_VERSION_TEST = $(DLD)
42   endif # DLD = CXX_FOR_VERSION_TEST
43   # The -E option is GNU ld specific
44   GNU_LD := $(if $(findstring GNU ld,$(shell $(LD_FOR_VERSION_TEST) -v 2>&1)), 1, 0)
45 endif # DLD
47 ifeq ($(GNU_LD),1)
48   STATIC_LINK_FLAG ?= -static
49 endif # GNU_LD
51 ifeq ($(no_strict_aliasing), 1)
52   CCFLAGS += -fno-strict-aliasing
53 endif
55 # Things Clang has in common with GCC
56 include $(ACE_ROOT)/include/makeinclude/platform_gcc_clang_common.GNU