diff --git a/Makefile b/Makefile index 1af36e00c..466ea8682 100644 --- a/Makefile +++ b/Makefile @@ -387,24 +387,26 @@ byte_infer: byte opt: $(QUIET)$(MAKE) BUILD_MODE=opt infer +PLUGIN_SETUP_SCRIPT ?= setup.sh + .PHONY: clang_setup clang_setup: # if clang is already built then let the user know they might not need to rebuild clang $(QUIET)export CC="$(CC)" CFLAGS="$(CFLAGS)"; \ export CXX="$(CXX)" CXXFLAGS="$(CXXFLAGS)"; \ export CPP="$(CPP)" LDFLAGS="$(LDFLAGS)" LIBS="$(LIBS)"; \ - $(FCP_DIR)/clang/setup.sh --only-check-install || { \ + $(FCP_DIR)/clang/$(PLUGIN_SETUP_SCRIPT) --only-check-install || { \ if [ -x '$(FCP_DIR)'/clang/install/bin/clang ]; then \ echo '$(TERM_INFO)*** Now building clang, this will take a while...$(TERM_RESET)' >&2; \ echo '$(TERM_INFO)*** If you believe that facebook-clang-plugins/clang/install is up-to-date you can$(TERM_RESET)' >&2; \ echo '$(TERM_INFO)*** interrupt the compilation (Control-C) and run this to prevent clang from being rebuilt:$(TERM_RESET)' >&2; \ echo >&2 ; \ - echo '$(TERM_INFO) $(FCP_DIR)/clang/setup.sh --only-record-install$(TERM_RESET)' >&2; \ + echo '$(TERM_INFO) $(FCP_DIR)/clang/$(PLUGIN_SETUP_SCRIPT) --only-record-install$(TERM_RESET)' >&2; \ echo >&2 ; \ echo '$(TERM_INFO)(TIP: you can also force a clang rebuild by removing $(FCP_DIR)/clang/installed.version)$(TERM_RESET)' >&2; \ echo >&2 ; \ fi; \ - $(FCP_DIR)/clang/setup.sh $(FCP_COMPILE_ARGS); \ + $(FCP_DIR)/clang/$(PLUGIN_SETUP_SCRIPT) $(FCP_COMPILE_ARGS); \ } .PHONY: clang_plugin diff --git a/build-infer.sh b/build-infer.sh index 3770b4b16..c01e3ee69 100755 --- a/build-infer.sh +++ b/build-infer.sh @@ -21,6 +21,9 @@ INFER_OPAM_DEFAULT_SWITCH="ocaml-variants.4.11.1+flambda" INFER_OPAM_DEFAULT_COMPILER="$INFER_OPAM_DEFAULT_SWITCH" INFER_OPAM_SWITCH=${INFER_OPAM_SWITCH:-$INFER_OPAM_DEFAULT_SWITCH} INFER_OPAM_COMPILER=${INFER_OPAM_COMPILER:-$INFER_OPAM_DEFAULT_COMPILER} +PLUGIN_DIR="$INFER_ROOT/facebook-clang-plugins" +PLUGIN_SETUP_SCRIPT=${PLUGIN_SETUP_SCRIPT:-setup.sh} +PLUGIN_SETUP="${PLUGIN_DIR}/clang/${PLUGIN_SETUP_SCRIPT}" function usage() { echo "Usage: $0 [-y] [targets]" @@ -165,7 +168,7 @@ fi ./configure $INFER_CONFIGURE_OPTS if [ "$BUILD_CLANG" == "yes" ]; then - if ! facebook-clang-plugins/clang/setup.sh --only-check-install; then + if ! "$PLUGIN_SETUP" --only-check-install; then echo "" echo " Warning: you are not using a release of Infer. The C and" echo " Objective-C analyses require a custom clang to be compiled"