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 |
|