config/static-checking-config.mk
author Mike Hommey <mh+mozilla@glandium.org>
Tue, 11 Feb 2014 10:37:47 +0900
changeset 185201 4e3b435b7d3950b9b366d5376f50f3d0d91dc85a
parent 185200 2f0f52f627d71c2676d8f7c34830e0d03d6fa3e6
child 308222 63f4deb6cde8682e41ca48186cdf60e0087dcb37
permissions -rw-r--r--
Bug 969164 - Replace most BUILDING_JS uses with JS_STANDALONE. r=gps Before making top-level traverse js/src moz.build files, there was a need to distinguish between top-level traversing e.g. top-level moz.build or config/moz.build and js/src traversing them. With a single traversal of both moz.build sets, we now only need to distinguish between js standalone builds and gecko builds. There is still, however, a need to distinguish between top-level vs. js/src configure runs on gecko builds to make them subconfigure icu and libffi from top-level instead of js/src in js standalone builds, or when choosing to make js/src's config.status do something when run or not.

# 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/.

# The entire tree should be subject to static analysis using the XPCOM
# script. Additional scripts may be added by specific subdirectories.

DEHYDRA_SCRIPT = $(topsrcdir)/config/static-checking.js

ifndef JS_STANDALONE
DEHYDRA_MODULES = \
  $(topsrcdir)/xpcom/analysis/final.js \
  $(topsrcdir)/xpcom/analysis/must-override.js \
  $(NULL)

TREEHYDRA_MODULES = \
  $(topsrcdir)/xpcom/analysis/outparams.js \
  $(topsrcdir)/xpcom/analysis/stack.js \
  $(topsrcdir)/xpcom/analysis/flow.js \
  $(topsrcdir)/xpcom/analysis/static-init.js \
  $(topsrcdir)/layout/generic/frame-verify.js \
  $(NULL)
endif

TREEHYDRA_MODULES += \
  $(topsrcdir)/js/src/jsstack.js \
  $(NULL)

DEHYDRA_ARG_PREFIX=-fplugin-arg-gcc_treehydra-

DEHYDRA_ARGS = \
  $(DEHYDRA_ARG_PREFIX)script=$(DEHYDRA_SCRIPT) \
  $(DEHYDRA_ARG_PREFIX)topsrcdir=$(topsrcdir) \
  $(DEHYDRA_ARG_PREFIX)objdir=$(DEPTH) \
  $(DEHYDRA_ARG_PREFIX)dehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(DEHYDRA_MODULES))) \
  $(DEHYDRA_ARG_PREFIX)treehydra-modules=$(subst $(NULL) ,$(COMMA),$(strip $(TREEHYDRA_MODULES))) \
  $(NULL)

DEHYDRA_FLAGS = -fplugin=$(DEHYDRA_PATH) $(DEHYDRA_ARGS)

ifdef DEHYDRA_PATH
OS_CXXFLAGS += $(DEHYDRA_FLAGS)
endif

ifdef ENABLE_CLANG_PLUGIN
CLANG_PLUGIN := $(DEPTH)/build/clang-plugin/$(DLL_PREFIX)clang-plugin$(DLL_SUFFIX)
OS_CXXFLAGS += -Xclang -load -Xclang $(CLANG_PLUGIN) -Xclang -add-plugin -Xclang moz-check
OS_CFLAGS += -Xclang -load -Xclang $(CLANG_PLUGIN) -Xclang -add-plugin -Xclang moz-check
endif