diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/Makefile | 22 | 
1 files changed, 16 insertions, 6 deletions
diff --git a/tools/Makefile b/tools/Makefile index 47b5a6ac0..02504d952 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -31,18 +31,28 @@ $(curdir)/mpfr/compile := $(curdir)/gmp/install  $(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-)  $(curdir)/builddirs-default := $(tools-y) -# preparatory work -$(STAGING_DIR)/.prepared: $(TMP_DIR)/.build -	@for dir in $(STAGING_DIR) $(STAGING_DIR_HOST); do ( \ +define PrepareStaging +	@for dir in $(1); do ( \  		set -x; \  		mkdir -p "$$dir"; \  		cd "$$dir"; \  		mkdir -p bin lib include stamp; \  	); done -	mkdir -p $(BUILD_DIR_HOST)/stamp $(BUILD_DIR)/stamp +endef + +# preparatory work +$(STAGING_DIR)/.prepared: $(TMP_DIR)/.build +	$(call PrepareStaging,$(STAGING_DIR)) +	mkdir -p $(BUILD_DIR)/stamp +	touch $@ + +$(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build +	$(call PrepareStaging,$(STAGING_DIR_HOST)) +	mkdir -p $(BUILD_DIR_HOST)/stamp  	$(INSTALL_DATA) $(TOPDIR)/tools/include/*.h $(STAGING_DIR_HOST)/include/  	touch $@ +  define PrepareCommand  $(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR)/.prepared  	@mkdir -p "$$(dir $$@)"; rm -f "$$@" @@ -58,8 +68,8 @@ $(eval $(call PrepareCommand,cp,gcp cp))  $(eval $(call PrepareCommand,stat,gstat stat))  $(curdir)/cmddeps = $(patsubst %,$(STAGING_DIR_HOST)/bin/%,find md5sum cp stat) -$(curdir)//prepare = $(STAGING_DIR)/.prepared $($(curdir)/cmddeps) -$(curdir)//compile = $(STAGING_DIR)/.prepared $($(curdir)/cmddeps) +$(curdir)//prepare = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps) +$(curdir)//compile = $(STAGING_DIR)/.prepared $(STAGING_DIR_HOST)/.prepared $($(curdir)/cmddeps)  # prerequisites for the individual targets  $(curdir)/ := .config prereq  | 
