clean up stampfile mess for tools/ and toolchain/
SVN-Revision: 6357
This commit is contained in:
		
							
								
								
									
										20
									
								
								rules.mk
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								rules.mk
									
									
									
									
									
								
							| @@ -130,6 +130,26 @@ $(call shvar,$(1))=$$(call $(1)) | |||||||
| export $(call shvar,$(1)) | export $(call shvar,$(1)) | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | # Default targets for subdirectory calls | ||||||
|  | # Parameters: | ||||||
|  | # 	1: dependencies for the prepare step | ||||||
|  | define default_subtargets | ||||||
|  |   %-download: FORCE | ||||||
|  | 	$$(MAKE) -C $$(patsubst %-download,%,$$@) download | ||||||
|  |  | ||||||
|  |   %-prepare: $(1) FORCE | ||||||
|  | 	$$(MAKE) -C $$(patsubst %-prepare,%,$$@) prepare | ||||||
|  |  | ||||||
|  |   %-compile: %-prepare  | ||||||
|  | 	$$(MAKE) -C $$(patsubst %-compile,%,$$@) compile | ||||||
|  |  | ||||||
|  |   %-install: %-compile | ||||||
|  | 	$$(MAKE) -C $$(patsubst %-install,%,$$@) install | ||||||
|  |  | ||||||
|  |   %-clean: FORCE | ||||||
|  | 	@$$(MAKE) -C $$(patsubst %-clean,%,$$@) clean | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
| all: | all: | ||||||
| FORCE: ; | FORCE: ; | ||||||
|   | |||||||
| @@ -16,14 +16,20 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | |||||||
| endif | endif | ||||||
|  |  | ||||||
| TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | ||||||
|  | TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y)) | ||||||
| TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | ||||||
| TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | ||||||
|  | STAMP:=$(STAGING_DIR)/stampfiles/.toolchain_installed | ||||||
|  |  | ||||||
| all: install | all: install | ||||||
| download: $(TARGETS_DOWNLOAD) | download: $(TARGETS_DOWNLOAD) | ||||||
| install: $(TARGETS_INSTALL) | compile: $(TARGETS_COMPILE) | ||||||
|  | install: $(STAMP)  | ||||||
| clean: $(TARGETS_CLEAN) | clean: $(TARGETS_CLEAN) | ||||||
| $(TARGETS_INSTALL): $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) |  | ||||||
|  | ifneq ($(shell $(SCRIPT_DIR)/timestamp.pl -p . $(STAMP)),$(STAMP)) | ||||||
|  |   $(STAMP): $(TARGETS_INSTALL) | ||||||
|  | endif | ||||||
|  |  | ||||||
| ifeq ($(CONFIG_CCACHE),y) | ifeq ($(CONFIG_CCACHE),y) | ||||||
|   uClibc-prepare: ccache-install |   uClibc-prepare: ccache-install | ||||||
| @@ -36,40 +42,16 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | |||||||
| endif | endif | ||||||
| gcc-install: uClibc-install | gcc-install: uClibc-install | ||||||
|  |  | ||||||
| TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles | $(STAMP): | ||||||
|  | 	mkdir -p $(shell dirname $@) | ||||||
|  | 	touch $@ | ||||||
|  |  | ||||||
| $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME): | $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME): | ||||||
| 	@mkdir -p $@ | 	@mkdir -p $@ | ||||||
| 	@ln -sf ../lib $@/lib | 	@ln -sf ../lib $@/lib | ||||||
|  |  | ||||||
| $(TOOLCHAIN_STAMP_DIR): |  | ||||||
| 	mkdir -p $@ |  | ||||||
|  |  | ||||||
| $(TOOLCHAIN_BUILD_DIR): | $(TOOLCHAIN_BUILD_DIR): | ||||||
| 	@mkdir -p $@ | 	@mkdir -p $@ | ||||||
|  |  | ||||||
| %-download: FORCE | $(eval $(call default_subtargets,$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR))) | ||||||
| 	$(MAKE) -C $(patsubst %-download,%,$@) download |  | ||||||
|  |  | ||||||
| %-prepare: $(TOOLCHAIN_STAMP_DIR) $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR) FORCE |  | ||||||
| 	@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-prepare,%,$@) prepare; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ |  | ||||||
|  |  | ||||||
| %-compile: %-prepare  |  | ||||||
| 	@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-compile,%,$@) compile; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ |  | ||||||
|  |  | ||||||
| %-install: %-compile |  | ||||||
| 	@[ -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-install,%,$@) install; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOLCHAIN_STAMP_DIR)/.toolchain_$@ |  | ||||||
|  |  | ||||||
| %-clean: FORCE |  | ||||||
| 	@$(MAKE) -C $(patsubst %-clean,%,$@) clean |  | ||||||
| 	@rm -f $(TOOLCHAIN_STAMP_DIR)/.toolchain_$(patsubst %-clean,%,$@)-* |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -11,22 +11,26 @@ TARGETS-y:=sed sstrip ipkg-utils ext2fs squashfs mtd-utils lzma mkimage firmware | |||||||
|  |  | ||||||
| TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | ||||||
| TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y)) | TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y)) | ||||||
|  | TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y)) | ||||||
| TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | ||||||
| TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | ||||||
|  | STAMP:=$(STAGING_DIR)/stampfiles/.tools_installed | ||||||
|  |  | ||||||
| all: install | all: install | ||||||
| download: $(TARGETS_DOWNLOAD) | download: $(TARGETS_DOWNLOAD) | ||||||
| install:  | compile: $(TARGETS_COMPILE) | ||||||
| 	$(MAKE) install-targets | install: $(STAMP) | ||||||
| install-targets: $(TARGETS_INSTALL) |  | ||||||
| clean: $(TARGETS_CLEAN) | clean: $(TARGETS_CLEAN) | ||||||
|  |  | ||||||
| squashfs-compile: lzma-install | squashfs-compile: lzma-install | ||||||
|  |  | ||||||
| TOOL_STAMP_DIR:=$(STAGING_DIR)/stampfiles | ifneq ($(shell $(SCRIPT_DIR)/timestamp.pl -p . $(STAMP)),$(STAMP)) | ||||||
|  |   $(STAMP): $(TARGETS_INSTALL) | ||||||
|  | endif | ||||||
|  |  | ||||||
| $(TOOL_STAMP_DIR): | $(STAMP): | ||||||
| 	mkdir -p $@ | 	mkdir -p $(shell dirname $@) | ||||||
|  | 	touch $@ | ||||||
| 	 | 	 | ||||||
| $(STAGING_DIR)/include-host: | $(STAGING_DIR)/include-host: | ||||||
| 	@mkdir -p $@ | 	@mkdir -p $@ | ||||||
| @@ -35,30 +39,7 @@ $(STAGING_DIR)/include-host: | |||||||
| $(TOOL_BUILD_DIR): | $(TOOL_BUILD_DIR): | ||||||
| 	@mkdir -p $@ | 	@mkdir -p $@ | ||||||
|  |  | ||||||
| %-download: FORCE | $(eval $(call default_subtargets,$(STAGING_DIR)/include-host $(TOOL_BUILD_DIR))) | ||||||
| 	$(MAKE) -C $(patsubst %-download,%,$@) download |  | ||||||
|  |  | ||||||
| %-prepare: $(TOOL_STAMP_DIR) $(STAGING_DIR)/include-host $(TOOL_BUILD_DIR) FORCE |  | ||||||
| 	@[ -f $(TOOL_STAMP_DIR)/.tool_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-prepare,%,$@) prepare; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOL_STAMP_DIR)/.tool_$@ |  | ||||||
|  |  | ||||||
| %-compile: %-prepare  |  | ||||||
| 	@[ -f $(TOOL_STAMP_DIR)/.tool_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-compile,%,$@) compile; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOL_STAMP_DIR)/.tool_$@ |  | ||||||
|  |  | ||||||
| %-install: %-compile |  | ||||||
| 	@[ -f $(TOOL_STAMP_DIR)/.tool_$@ ] || { \ |  | ||||||
| 		$(MAKE) -C $(patsubst %-install,%,$@) install; \ |  | ||||||
| 	} |  | ||||||
| 	@touch $(TOOL_STAMP_DIR)/.tool_$@ |  | ||||||
|  |  | ||||||
| %-clean: FORCE |  | ||||||
| 	@$(MAKE) -C $(patsubst %-clean,%,$@) clean |  | ||||||
| 	@rm -f $(TOOL_STAMP_DIR)/.tool_$(patsubst %-clean,%,$@)-* |  | ||||||
|  |  | ||||||
| ifeq ($(MAKECMDGOALS),install-targets) | ifeq ($(MAKECMDGOALS),install-targets) | ||||||
| MAKEFLAGS:=$(MAKEFLAGS) -j$(CONFIG_JLEVEL) | MAKEFLAGS:=$(MAKEFLAGS) -j$(CONFIG_JLEVEL) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau