summaryrefslogtreecommitdiffstats
path: root/build/clang-plugin/Makefile.in
diff options
context:
space:
mode:
Diffstat (limited to 'build/clang-plugin/Makefile.in')
-rw-r--r--build/clang-plugin/Makefile.in42
1 files changed, 42 insertions, 0 deletions
diff --git a/build/clang-plugin/Makefile.in b/build/clang-plugin/Makefile.in
new file mode 100644
index 000000000..ff1e39d1b
--- /dev/null
+++ b/build/clang-plugin/Makefile.in
@@ -0,0 +1,42 @@
+# 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.
+ifeq ($(HOST_OS_ARCH),WINNT)
+OS_CXXFLAGS := $(LLVM_CXXFLAGS) -GR- -EHsc
+else
+OS_CXXFLAGS := $(LLVM_CXXFLAGS) -fno-rtti -fno-exceptions
+DSO_LDOPTS := -shared
+endif
+OS_COMPILE_CXXFLAGS :=
+OS_LDFLAGS := $(LLVM_LDFLAGS) $(CLANG_LDFLAGS)
+
+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