| | |
| | | # |
| | | # CDDL HEADER END |
| | | # |
| | | # Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. |
| | | |
| | | # |
| | | # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. |
| | | # |
| | | .NOTPARALLEL: |
| | | |
| | | UNPACK = $(WS_TOOLS)/userland-unpack |
| | | FETCH = $(WS_TOOLS)/userland-fetch |
| | | include $(WS_MAKE_RULES)/prep-download.mk |
| | | |
| | | ARCHIVES += $(COMPONENT_ARCHIVE) |
| | | CLEAN_PATHS += $(SOURCE_DIR) |
| | | include $(WS_MAKE_RULES)/prep-hg.mk |
| | | include $(WS_MAKE_RULES)/prep-git.mk |
| | | include $(WS_MAKE_RULES)/prep-svn.mk |
| | | include $(WS_MAKE_RULES)/prep-unpack.mk |
| | | include $(WS_MAKE_RULES)/prep-patch.mk |
| | | |
| | | PATCH_DIR = patches |
| | | PATCH_PATTERN = *.patch |
| | | PATCHES = $(shell find $(PATCH_DIR) -type f -name '$(PATCH_PATTERN)' \ |
| | | 2>/dev/null | sort) |
| | | STAMPS = $(PATCHES:$(PATCH_DIR)/%=$(SOURCE_DIR)/.%ed) |
| | | download:: |
| | | |
| | | $(SOURCE_DIR)/.%ed: $(PATCH_DIR)/% |
| | | $(GPATCH) -d $(@D) $(GPATCH_FLAGS) < $< |
| | | $(TOUCH) $@ |
| | | unpack:: download |
| | | |
| | | # template for download rules. add new rules with $(call download-rule, suffix) |
| | | define download-rule |
| | | ARCHIVES += $$(COMPONENT_ARCHIVE$(1)) |
| | | CLOBBER_PATHS += $$(COMPONENT_ARCHIVE$(1)) |
| | | $$(USERLAND_ARCHIVES)$$(COMPONENT_ARCHIVE$(1)): Makefile |
| | | $$(FETCH) --file $$@ \ |
| | | $$(COMPONENT_ARCHIVE_URL$(1):%=--url %) \ |
| | | $$(COMPONENT_ARCHIVE_HASH$(1):%=--hash %) |
| | | $$(TOUCH) $$@ |
| | | endef |
| | | patch:: unpack |
| | | |
| | | # Generate the download rules from the above template |
| | | NUM_ARCHIVES = 1 2 3 4 5 6 7 |
| | | $(eval $(call download-rule,)) |
| | | $(foreach suffix,$(NUM_ARCHIVES),$(eval $(call download-rule,_$(suffix)))) |
| | | |
| | | $(SOURCE_DIR)/.unpacked: download Makefile $(PATCHES) |
| | | $(RM) -r $(SOURCE_DIR) |
| | | $(UNPACK) $(UNPACK_ARGS) $(USERLAND_ARCHIVES)$(COMPONENT_ARCHIVE) |
| | | $(TOUCH) $@ |
| | | |
| | | $(SOURCE_DIR)/.patched: $(SOURCE_DIR)/.unpacked $(STAMPS) |
| | | $(TOUCH) $@ |
| | | |
| | | $(SOURCE_DIR)/.prep: $(SOURCE_DIR)/.patched |
| | | $(SOURCE_DIR)/.prep: component-environment-prep download unpack patch |
| | | $(COMPONENT_PREP_ACTION) |
| | | $(TOUCH) $@ |
| | | |
| | | prep:: $(SOURCE_DIR)/.prep |
| | | |
| | | download:: $(ARCHIVES:%=$(USERLAND_ARCHIVES)%) |
| | | |
| | | clean:: |
| | | $(PRE_CLEAN_ACTION) |
| | | $(RM) -r $(CLEAN_PATHS) |
| | | |
| | | clobber:: clean |