makefilet-download-modules.mk 1.4 KB

12345678910111213141516171819202122232425
  1. ifneq ($(MAKEFILET_MODULES),)
  2. MAKEFILET_MODULES_HASHSUM = $(shell printf '%s\n' $(MAKEFILET_MODULES) | sha1sum | cut -f 1 -d " ")
  3. MAKEFILET_MODULES_STORAGE_FILE ?= $(DIR_BUILD)/makefilet-modules/$(MAKEFILET_MODULES_HASHSUM).mk
  4. MAKEFILET_MODULES_STORAGE_FILE_IF_EXISTS := $(wildcard $(MAKEFILET_MODULES_STORAGE_FILE))
  5. MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE := $(dir $(MAKEFILET_MODULES_STORAGE_FILE))/partial-download
  6. ifeq ($(MAKEFILET_MODULES_STORAGE_FILE_IF_EXISTS),)
  7. # delete the file to be used for storing the downloaded modules
  8. $(shell $(RM) $(MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE))
  9. $(shell mkdir -p "$(dir $(MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE))")
  10. MAKEFILET_MODULES_DOWNLOAD_FAILED_URLS := $(foreach module_url,$(MAKEFILET_MODULES),$(shell \
  11. echo >&2 "Downloading makefilet module: $(module_url)"; \
  12. echo "# module: $(module_url)" >>"$(MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE)"; \
  13. if ! wget --quiet --output-document - "$(module_url)" >>"$(MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE)"; then \
  14. echo >&2 "Failed to download $(module_url)"; \
  15. printf '%s\n' "$(module_url)"; \
  16. fi \
  17. ))
  18. ifneq ($(strip $(MAKEFILET_MODULES_DOWNLOAD_FAILED_URLS)),)
  19. $(error Some makefilet modules failed to downloaded: $(MAKEFILET_MODULES_DOWNLOAD_FAILED_URLS))
  20. endif
  21. $(shell mv "$(MAKEFILET_MODULES_PARTIAL_DOWNLOAD_FILE)" "$(MAKEFILET_MODULES_STORAGE_FILE)")
  22. endif
  23. include $(MAKEFILET_MODULES_STORAGE_FILE)
  24. endif