clean up stampfile mess for tools/ and toolchain/
SVN-Revision: 6357
This commit is contained in:
parent
92feed28d8
commit
ced1277147
3 changed files with 44 additions and 61 deletions
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)
|
||||
|
|
Loading…
Reference in a new issue