| # Copyright 2014 The Rust Project Developers. See the COPYRIGHT |
| # file at the top-level directory of this distribution and at |
| # http://rust-lang.org/COPYRIGHT. |
| # |
| # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or |
| # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| # option. This file may not be copied, modified, or distributed |
| # except according to those terms. |
| |
| # Recursive wildcard function |
| # http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html |
| rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) \ |
| $(filter $(subst *,%,$2),$d)) |
| |
| ifndef CFG_DISABLE_MANAGE_SUBMODULES |
| # This is a pretty expensive operation but I don't see any way to avoid it |
| # NB: This only looks for '+' status (wrong commit checked out), not '-' status |
| # (nothing checked out at all). `./configure --{llvm,jemalloc}-root` |
| # will explicitly deinitialize the corresponding submodules, and we don't |
| # want to force constant rebuilds in that case. |
| NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && $(CFG_GIT) submodule status | grep -c '^+') |
| else |
| NEED_GIT_RECONFIG=0 |
| endif |
| |
| ifeq ($(NEED_GIT_RECONFIG),0) |
| else |
| # If the submodules have changed then always execute config.mk |
| .PHONY: config.stamp |
| endif |
| |
| Makefile config.mk: config.stamp |
| |
| ifeq ($(SREL),) |
| SREL_ROOT := ./ |
| else |
| SREL_ROOT := $(SREL) |
| endif |
| |
| config.stamp: $(S)configure $(S)Makefile.in $(S)src/snapshots.txt |
| @$(call E, cfg: reconfiguring) |
| $(SREL_ROOT)configure $(CFG_CONFIGURE_ARGS) |