# Copyright (c) 2015 - present Facebook, Inc. # All rights reserved. # # This source code is licensed under the BSD style license found in the # LICENSE file in the root directory of this source tree. An additional grant # of patent rights can be found in the PATENTS file in the same directory. @SET_MAKE@ SHELL = bash PLATFORM = $(shell uname) ANT = @ANT@ ATDGEN = @ATDGEN@ bindir = @bindir@ BUCK = @BUCK@ BUILD_C_ANALYZERS = @BUILD_C_ANALYZERS@ BUILD_JAVA_ANALYZERS = @BUILD_JAVA_ANALYZERS@ CC = @CC@ CFLAGS = @CFLAGS@ CLANG_INCLUDES = @CLANG_INCLUDES@ CLANG_PREFIX = @CLANG_PREFIX@ CMAKE = @CMAKE@ CPP = @CPP@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ ENABLE_OCAMLOPT_CUSTOM_CC = @ENABLE_OCAMLOPT_CUSTOM_CC@ ENABLE_OCAML_ANNOT = @ENABLE_OCAML_ANNOT@ ENABLE_OCAML_BINANNOT = @ENABLE_OCAML_BINANNOT@ exec_prefix = @exec_prefix@ INFER_MAJOR = @INFER_MAJOR@ INFER_MINOR = @INFER_MINOR@ INFER_PATCH = @INFER_PATCH@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ IS_FACEBOOK_TREE = @IS_FACEBOOK_TREE@ IS_RELEASE_TREE = @IS_RELEASE_TREE@ LDFLAGS = @LDFLAGS@ libdir = @libdir@ LIBS = @LIBS@ MKDIR_P_CMD = case "@MKDIR_P@" in \ ./*) printf "$(ROOT_DIR)/@MKDIR_P@\n";; \ *) printf "@MKDIR_P@\n";; \ esac MKDIR_P = $(shell $(MKDIR_P_CMD)) NCPU = @NCPU@ prefix = @prefix@ USER_JAVA_HOME = @USER_JAVA_HOME@ XCODE_SELECT = @XCODE_SELECT@ ifneq (,$(findstring s,$(MAKEFLAGS))) # quiet mode LN_S = @LN_S@ REMOVE = rm -f REMOVE_DIR = rm -rf RSYNC_A = rsync -av else LN_S = @LN_S@ -v REMOVE = rm -vf REMOVE_DIR = rm -rvf RSYNC_A = rsync -aq endif COPY = cp -f -p COPY_DIR = cp -Rf ABSOLUTE_ROOT_DIR = $(shell cd $(ROOT_DIR) && pwd) DEPENDENCIES_DIR = $(ABSOLUTE_ROOT_DIR)/dependencies DOCKER_DIR = $(ABSOLUTE_ROOT_DIR)/docker EXAMPLES_DIR = $(ABSOLUTE_ROOT_DIR)/examples INFER_DIR = $(ABSOLUTE_ROOT_DIR)/infer FCP_DIR = $(ABSOLUTE_ROOT_DIR)/facebook-clang-plugins M4_DIR = $(ABSOLUTE_ROOT_DIR)/m4 SCRIPT_DIR = $(ABSOLUTE_ROOT_DIR)/scripts FCP_CLANG_OCAML_DIR = $(FCP_DIR)/clang-ocaml ANNOTATIONS_DIR = $(INFER_DIR)/annotations BIN_DIR = $(INFER_DIR)/bin BUILD_DIR = $(INFER_DIR)/_build ETC_DIR = $(INFER_DIR)/etc LIB_DIR = $(INFER_DIR)/lib MODELS_DIR = $(INFER_DIR)/models JAVA_BUILTINS_DIR = $(MODELS_DIR)/java/builtins SRC_DIR = $(INFER_DIR)/src ANNOT_DIR = $(SRC_DIR)/_build INFER_BUILD_DIR = $(BUILD_DIR)/infer TEST_BUILD_DIR = $(BUILD_DIR)/test JAVA_LIB_DIR = $(LIB_DIR)/java SPECS_LIB_DIR = $(LIB_DIR)/specs PYTHON_DIR = $(LIB_DIR)/python PYTHON_LIB_DIR = $(PYTHON_DIR)/inferlib CAPTURE_LIB_DIR = $(PYTHON_LIB_DIR)/capture INFERANALYZE_BIN = $(BIN_DIR)/InferAnalyze INFERCLANG_BIN = $(BIN_DIR)/InferClang INFERJAVA_BIN = $(BIN_DIR)/InferJava INFERPRINT_BIN = $(BIN_DIR)/InferPrint INFERUNIT_BIN = $(BIN_DIR)/InferUnit INFER_BIN = $(BIN_DIR)/infer INFERTRACEBUGS_BIN = $(BIN_DIR)/inferTraceBugs INFERTRACEBUGS_BIN_RELPATH = infer/bin/inferTraceBugs ifeq ($(BUILD_JAVA_ANALYZERS),yes) JAVA_HOME=$(USER_JAVA_HOME) endif JAVA_DEPS = $(addprefix $(PYTHON_LIB_DIR)/, \ analyze.py config.py issues.py jwlib.py source.py utils.py) \ $(addprefix $(CAPTURE_LIB_DIR)/, javac.py util.py) \ $(INFER_BIN) \ $(INFERANALYZE_BIN) \ $(INFERJAVA_BIN) \ $(INFERPRINT_BIN) CLANG_DEPS = $(addprefix $(PYTHON_LIB_DIR)/, \ analyze.py config.py issues.py source.py utils.py) \ $(addprefix $(CAPTURE_LIB_DIR)/, make.py util.py) \ $(INFER_BIN) \ $(INFERANALYZE_BIN) \ $(INFERCLANG_BIN) \ $(INFERPRINT_BIN) JAVA_MODELS_JAR = $(LIB_DIR)/java/models.jar define silent_on_success $(1) >/dev/null 2>/dev/null || ($(1) && exit 1) endef