Merge pull request #25820 from hribz/master
[xbmc.git] / tools / depends / download-files.include
blobcc4c3f7cf3456066e8deff4c99b869bb2ab9c3dd
1 HASH_TYPE := sha512
2 HASH_TOOL ?= $(SHA512SUM)
4 SED_FLAG = -i
5 ifeq ($(NATIVE_OS), osx)
6   HASH_TOOL = $(SHASUM) -a $(shell echo $(HASH_TYPE) | sed 's/^sha//')
7   SED_FLAG = -i ''
8 endif
10 # non-depends builds might not set this, use defaults
11 ifeq ($(HASH_TOOL),)
12   HASH_TOOL = sha512sum
13   HASH_TOOL_FLAGS = -c --status
14 endif
16 .PHONY: all download
18 all: download
20 FULL_URL ?= $(BASE_URL)/$(ARCHIVE)
22 $(TARBALLS_LOCATION)/$(ARCHIVE).$(HASH_TYPE): download
24 download:
25         @{\
26           cd $(TARBALLS_LOCATION) ;\
27           if [ -f "$(ARCHIVE)" ]; then \
28             HASH_SUM="$$($(HASH_TOOL) $(ARCHIVE) | cut -f 1 -d " ")" ;\
29             if [ "$${HASH_SUM}" = "$(SHA512)" ]; then \
30               $(HASH_TOOL) $(ARCHIVE) > $(ARCHIVE).$(HASH_TYPE) ;\
31               exit 0 ;\
32             else \
33               echo "corrupt archive found $(ARCHIVE) - redownloading" ;\
34             fi ;\
35           fi ;\
36           ATTEMPTS=1 ;\
37           while [ "$${ATTEMPTS}" -le 3 ]; do \
38             echo "download $(ARCHIVE) attempt $$ATTEMPTS" ;\
39             $(RETRIEVE_TOOL) $(RETRIEVE_TOOL_FLAGS) $(ARCHIVE) $(FULL_URL) ;\
40             HASH_SUM="$$($(HASH_TOOL) $(ARCHIVE) | cut -f 1 -d " ")" ;\
41             if [ "$${HASH_SUM}" = "$(SHA512)" ]; then \
42               $(HASH_TOOL) $(ARCHIVE) > $(ARCHIVE).$(HASH_TYPE) ;\
43               exit 0 ;\
44             fi ;\
45             ATTEMPTS=$$((ATTEMPTS + 1)) ;\
46             echo "Error: failed to verify hash sum of $(ARCHIVE)" ;\
47             echo "Expected type   : $(HASH_TYPE)" ;\
48             echo "Found value     : $${HASH_SUM}" ;\
49             echo "Expected value  : $(SHA512)" ;\
50             echo "retrying.." ;\
51             rm $(ARCHIVE) ;\
52             sleep 3 ;\
53           done ;\
54           exit 1 ;\
55         }