| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| # LLVM_CXXFLAGS comes with its own optimization flags. |
| MOZ_OPTIMIZE = |
| |
| include $(topsrcdir)/config/config.mk |
| |
| # In the current moz.build world, we need to override essentially every |
| # variable to limit ourselves to what we need to build the clang plugin. |
| OS_CXXFLAGS := $(LLVM_CXXFLAGS) -fno-rtti -fno-exceptions |
| OS_COMPILE_CXXFLAGS := |
| OS_LDFLAGS := $(LLVM_LDFLAGS) $(CLANG_LDFLAGS) |
| DSO_LDOPTS := -shared |
| |
| ifeq ($(HOST_OS_ARCH)_$(OS_ARCH),Linux_Darwin) |
| # Use the host compiler instead of the target compiler. |
| CXX := $(HOST_CXX) |
| # expandlibs doesn't know the distinction between host and target toolchains, |
| # and on cross linux/darwin builds, the options to give to the linker for file |
| # lists differ between both, so don't use file lists. |
| EXPAND_MKSHLIB_ARGS := |
| # Don't pass OSX linker arguments. |
| MOZ_FIX_LINK_PATHS := |
| endif |
| |
| # Use the default OS X deployment target to enable using the libc++ headers |
| # correctly. Note that the binary produced here is a host tool and doesn't need |
| # to be distributed. |
| MACOSX_DEPLOYMENT_TARGET := |
| |
| # Temporarily relax the requirements for libstdc++ symbol versions on static |
| # analysis plugin in order to use a recent clang by accepting libstdc++ from |
| # gcc 4.4.0 (GLIBCXX_3.4.11). |
| ifdef CHECK_STDCXX |
| CHECK_STDCXX = $(call CHECK_SYMBOLS,$(1),GLIBCXX,libstdc++,v[1] > 3 || (v[1] == 3 && v[2] == 4 && v[3] > 11)) |
| endif |