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)) | ||||
| 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: | ||||
| FORCE: ; | ||||
|   | ||||
| @@ -16,14 +16,20 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ||||
| endif | ||||
|  | ||||
| TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | ||||
| TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y)) | ||||
| TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | ||||
| TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | ||||
| STAMP:=$(STAGING_DIR)/stampfiles/.toolchain_installed | ||||
|  | ||||
| all: install | ||||
| download: $(TARGETS_DOWNLOAD) | ||||
| install: $(TARGETS_INSTALL) | ||||
| compile: $(TARGETS_COMPILE) | ||||
| install: $(STAMP)  | ||||
| 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) | ||||
|   uClibc-prepare: ccache-install | ||||
| @@ -36,40 +42,16 @@ ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) | ||||
| endif | ||||
| gcc-install: uClibc-install | ||||
|  | ||||
| TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stampfiles | ||||
| $(STAMP): | ||||
| 	mkdir -p $(shell dirname $@) | ||||
| 	touch $@ | ||||
|  | ||||
| $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME): | ||||
| 	@mkdir -p $@ | ||||
| 	@ln -sf ../lib $@/lib | ||||
|  | ||||
| $(TOOLCHAIN_STAMP_DIR): | ||||
| 	mkdir -p $@ | ||||
|  | ||||
| $(TOOLCHAIN_BUILD_DIR): | ||||
| 	@mkdir -p $@ | ||||
|  | ||||
| %-download: FORCE | ||||
| 	$(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,%,$@)-* | ||||
| $(eval $(call default_subtargets,$(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) $(TOOLCHAIN_BUILD_DIR))) | ||||
|  | ||||
|   | ||||
| @@ -11,23 +11,27 @@ TARGETS-y:=sed sstrip ipkg-utils ext2fs squashfs mtd-utils lzma mkimage firmware | ||||
|  | ||||
| TARGETS_DOWNLOAD:=$(patsubst %,%-download,$(TARGETS-y)) | ||||
| TARGETS_PREPARE:=$(patsubst %,%-prepare,$(TARGETS-y)) | ||||
| TARGETS_COMPILE:=$(patsubst %,%-compile,$(TARGETS-y)) | ||||
| TARGETS_INSTALL:=$(patsubst %,%-install,$(TARGETS-y)) | ||||
| TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS-y)) | ||||
| STAMP:=$(STAGING_DIR)/stampfiles/.tools_installed | ||||
|  | ||||
| all: install | ||||
| download: $(TARGETS_DOWNLOAD) | ||||
| install:  | ||||
| 	$(MAKE) install-targets | ||||
| install-targets: $(TARGETS_INSTALL) | ||||
| compile: $(TARGETS_COMPILE) | ||||
| install: $(STAMP) | ||||
| clean: $(TARGETS_CLEAN) | ||||
|  | ||||
| squashfs-compile: lzma-install | ||||
|  | ||||
| TOOL_STAMP_DIR:=$(STAGING_DIR)/stampfiles | ||||
|  | ||||
| $(TOOL_STAMP_DIR): | ||||
| 	mkdir -p $@ | ||||
| ifneq ($(shell $(SCRIPT_DIR)/timestamp.pl -p . $(STAMP)),$(STAMP)) | ||||
|   $(STAMP): $(TARGETS_INSTALL) | ||||
| endif | ||||
|  | ||||
| $(STAMP): | ||||
| 	mkdir -p $(shell dirname $@) | ||||
| 	touch $@ | ||||
| 	 | ||||
| $(STAGING_DIR)/include-host: | ||||
| 	@mkdir -p $@ | ||||
| 	@$(CP) ./include/*.h $@/ | ||||
| @@ -35,30 +39,7 @@ $(STAGING_DIR)/include-host: | ||||
| $(TOOL_BUILD_DIR): | ||||
| 	@mkdir -p $@ | ||||
|  | ||||
| %-download: FORCE | ||||
| 	$(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,%,$@)-* | ||||
| $(eval $(call default_subtargets,$(STAGING_DIR)/include-host $(TOOL_BUILD_DIR))) | ||||
|  | ||||
| ifeq ($(MAKECMDGOALS),install-targets) | ||||
| MAKEFLAGS:=$(MAKEFLAGS) -j$(CONFIG_JLEVEL) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau