make-rules/prep.mk
changeset 142 6f1cb90a0ef3
parent 115 c360825c3a3f
child 198 172fc01ce997
equal deleted inserted replaced
141:ed98334a0d5a 142:6f1cb90a0ef3
    24 UNPACK =	$(WS_TOOLS)/userland-unpack
    24 UNPACK =	$(WS_TOOLS)/userland-unpack
    25 FETCH =		$(WS_TOOLS)/userland-fetch
    25 FETCH =		$(WS_TOOLS)/userland-fetch
    26 
    26 
    27 ARCHIVES += $(COMPONENT_ARCHIVE)
    27 ARCHIVES += $(COMPONENT_ARCHIVE)
    28 CLEAN_PATHS += $(SOURCE_DIR)
    28 CLEAN_PATHS += $(SOURCE_DIR)
    29 CLOBBER_PATHS += $(COMPONENT_ARCHIVE)
       
    30 
    29 
    31 PATCH_DIR =	patches
    30 PATCH_DIR =	patches
    32 PATCH_PATTERN =	*.patch
    31 PATCH_PATTERN =	*.patch
    33 PATCHES =	$(shell find $(PATCH_DIR) -type f -name '$(PATCH_PATTERN)' \
    32 PATCHES =	$(shell find $(PATCH_DIR) -type f -name '$(PATCH_PATTERN)' \
    34 				2>/dev/null | sort)
    33 				2>/dev/null | sort)
    36 
    35 
    37 $(SOURCE_DIR)/.%ed:	$(PATCH_DIR)/%
    36 $(SOURCE_DIR)/.%ed:	$(PATCH_DIR)/%
    38 	$(GPATCH) -d $(@D) $(GPATCH_FLAGS) < $<
    37 	$(GPATCH) -d $(@D) $(GPATCH_FLAGS) < $<
    39 	$(TOUCH) $@
    38 	$(TOUCH) $@
    40 
    39 
    41 $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE):	Makefile
    40 # template for download rules. add new rules with $(call download-rule, suffix)
    42 	$(FETCH) --file $@ \
    41 define download-rule
    43 		$(COMPONENT_ARCHIVE_URL:%=--url %) \
    42 ARCHIVES += $$(COMPONENT_ARCHIVE$(1))
    44 		$(COMPONENT_ARCHIVE_HASH:%=--hash %)
    43 CLOBBER_PATHS += $$(COMPONENT_ARCHIVE$(1))
    45 	$(TOUCH) $@
    44 $$(USERLAND_ARCHIVES)$$(COMPONENT_ARCHIVE$(1)):	Makefile
       
    45 	$$(FETCH) --file $$@ \
       
    46 		$$(COMPONENT_ARCHIVE_URL$(1):%=--url %) \
       
    47 		$$(COMPONENT_ARCHIVE_HASH$(1):%=--hash %)
       
    48 	$$(TOUCH) $$@
       
    49 endef
    46 
    50 
    47 $(SOURCE_DIR)/.unpacked:	$(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE) Makefile $(PATCHES)
    51 # Generate the download rules from the above template
       
    52 NUM_ARCHIVES =	1 2 3 4 5 6 7
       
    53 $(eval $(call download-rule,))
       
    54 $(foreach suffix,$(NUM_ARCHIVES),$(eval $(call download-rule,_$(suffix))))
       
    55 
       
    56 $(SOURCE_DIR)/.unpacked:	download Makefile $(PATCHES)
    48 	$(RM) -r $(SOURCE_DIR)
    57 	$(RM) -r $(SOURCE_DIR)
    49 	$(UNPACK) $(UNPACK_ARGS) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE)
    58 	$(UNPACK) $(UNPACK_ARGS) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE)
    50 	$(TOUCH) $@
    59 	$(TOUCH) $@
    51 
    60 
    52 $(SOURCE_DIR)/.patched:	$(SOURCE_DIR)/.unpacked $(STAMPS)
    61 $(SOURCE_DIR)/.patched:	$(SOURCE_DIR)/.unpacked $(STAMPS)
    56 	$(COMPONENT_PREP_ACTION)
    65 	$(COMPONENT_PREP_ACTION)
    57 	$(TOUCH) $@
    66 	$(TOUCH) $@
    58 
    67 
    59 prep::	$(SOURCE_DIR)/.prep
    68 prep::	$(SOURCE_DIR)/.prep
    60 
    69 
    61 download::	$(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE)
    70 download::	$(ARCHIVES:%=$(USERLAND_ARCHIVES)%)
    62 
    71 
    63 clean::
    72 clean::
    64 	$(RM) -r $(CLEAN_PATHS)
    73 	$(RM) -r $(CLEAN_PATHS)
    65 
    74 
    66 clobber::	clean
    75 clobber::	clean
    67 	$(RM) -r $(CLOBBER_PATHS)
    76 	$(RM) -r $(CLOBBER_PATHS)
    68