1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 ifneq ($(strip ${DIST_SUBDIR}),)
5 FULLDISTDIR?
= ${DL_DIR}/${DIST_SUBDIR}
7 FULLDISTDIR?
= ${DL_DIR}
10 FULLDISTFILES
= $(patsubst %,${FULLDISTDIR}/%,${DISTFILES})
15 ifneq ($(filter auto
,${FETCH_STYLE}),)
16 ${MAKE} ${FULLDISTFILES}
22 -rm -f
${FULLDISTFILES}
25 _CHECKSUM_COOKIE?
= ${WRKDIR}/.checksum_done
26 checksum
: ${_CHECKSUM_COOKIE}
27 ifeq ($(strip ${PKG_NOCHECKSUM}),)
28 ${_CHECKSUM_COOKIE}: ${FULLDISTFILES}
30 ifneq ($(ADK_DISABLE_CHECKSUM
),y
)
31 @if
[ ! -e
$(firstword ${FULLDISTFILES}).nohash
]; then \
33 allsums
="$(strip ${PKG_HASH})"; \
34 (PATH
='$(HOST_PATH)' sha256sum
${FULLDISTFILES}; echo exit
) | while read sum name
; do \
35 if
[[ $$sum = exit
]]; then \
36 [[ $$OK = n
]] && echo
>&2 "==> No distfile found!" ||
:; \
37 [[ $$OK = 1 ]] || exit
1; \
40 cursum
="$${allsums%% *}"; \
41 allsums
="$${allsums#* }"; \
42 if
[[ $$sum = "$$cursum" ]]; then \
43 [[ $$OK = 0 ]] || OK
=1; \
46 echo
>&2 "==> Checksum mismatch for $${name##*/} (SHA256)"; \
47 echo
>&2 ":---> should be '$$cursum'"; \
48 echo
>&2 ":---> really is '$$sum'"; \
54 touch
${_CHECKSUM_COOKIE}
57 # GNU make's poor excuse for loops
61 filename
=$$$${fullname
##*/}; \
62 mkdir
-p
"$$$${fullname%%/$$$$filename}"; \
63 cd
"$$$${fullname%%/$$$$filename}"; \
64 for url in
"${PKG_SITES}"; do case
$$$$url in \
66 rm -rf
$${PKG_NAME}-$${PKG_VERSION}; \
67 git clone
--quiet
$${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION}; \
68 if
[ $$$$(echo
$${PKG_VERSION}|wc
-c
) -eq
41 ]; then \
69 (cd
$${PKG_NAME}-$${PKG_VERSION}; \
70 echo
"Checking out $${PKG_VERSION}"; \
71 git checkout
--quiet
$${PKG_VERSION}) >/dev
/null
; \
75 touch
$$$${filename}.nohash
; \
76 rm -rf
$${PKG_NAME}-$${PKG_VERSION}/.git
; \
77 tar cJf
$${PKG_NAME}-$${PKG_VERSION}.
tar.xz
$${PKG_NAME}-$${PKG_VERSION}; \
78 rm -rf
$${PKG_NAME}-$${PKG_VERSION}; \
79 : check the size here
; \
80 [[ ! -e
$$$$filename ]] || exit
0; \
82 http
://*|https
://*|ftp
://*) \
83 for site in
$${PKG_SITES} $${MASTER_SITE_BACKUP}; do \
84 : echo
"$${FETCH_CMD} $$$$site$$$$filename"; \
85 rm -f
"$$$$filename"; \
86 if
$${FETCH_CMD} $$$$site$$$$filename; then \
87 : check the size here
; \
88 [[ ! -e
$$$$filename ]] || exit
0; \
93 echo url schema not known
; \
99 $(foreach distfile
,${FULLDISTFILES},$(eval
$(call FETCH_template
,$(distfile
))))