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 ($${SHA256} ${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 \
65 file
://*|git
://*|
*.git
) \
66 echo
"Trying to downloading from backup site first"; \
67 if
$${FETCHCMD} $$$$filename $${MASTER_SITE_BACKUP}/$$$$filename $(DL_TRACE
); then \
68 touch
$$$$filename.nohash
; \
69 : check the size here
; \
70 [[ ! -e
$$$$filename ]] || exit
0; \
72 rm -rf
$${PKG_NAME}-$${PKG_VERSION}; \
73 if
[ ! -z
"$${PKG_GIT}" ]; then \
74 echo
"Using git ${PKG_GIT}: $${PKG_VERSION}" $(DL_TRACE
); \
75 case
"$${PKG_GIT}" in \
77 git clone
--progress
--depth
1 --branch
$${PKG_VERSION} $${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE
); \
78 if
[ $$$$?
-ne
0 ]; then echo
"git clone error"; exit
1; fi
; \
81 git clone
--progress
$${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE
); \
82 if
[ $$$$?
-ne
0 ]; then echo
"git clone error"; exit
1; fi
; \
83 (cd
$${PKG_NAME}-$${PKG_VERSION}; git checkout
$${PKG_VERSION}) $(DL_TRACE
); \
84 if
[ $$$$?
-ne
0 ]; then echo
"git checkout error"; exit
1; fi
; \
88 git clone
--progress
--depth
1 $${PKG_SITES} $${PKG_NAME}-$${PKG_VERSION} $(DL_TRACE
); \
89 if
[ $$$$?
-ne
0 ]; then echo
"git clone error"; exit
1; fi
; \
91 if
[ ! -z
"$${PKG_GIT_SUBMODULE}" ]; then \
92 (cd
$${PKG_NAME}-$${PKG_VERSION}; git submodule update
--init
--recursive
) $(DL_TRACE
); \
94 rm -rf
$${PKG_NAME}-$${PKG_VERSION}/.git
; \
95 PATH
='$(HOST_PATH)' tar czf
$${PKG_NAME}-$${PKG_VERSION}.
tar.gz
$${PKG_NAME}-$${PKG_VERSION}; \
96 touch
$$$${filename}.nohash
; \
97 rm -rf
$${PKG_NAME}-$${PKG_VERSION}; \
98 : check the size here
; \
99 [[ ! -e
$$$$filename ]] || exit
0; \
101 http
://*|https
://*|ftp
://*) \
102 for site in
$${PKG_SITES} $${MASTER_SITE_BACKUP}; do \
103 echo
"$${FETCHCMD} $$$$site$$$$filename" $(DL_TRACE
); \
104 rm -f
"$$$$filename"; \
105 if
$${FETCHCMD} $$$$filename $$$$site$$$$filename $(DL_TRACE
); then \
106 : check the size here
; \
107 [[ ! -e
$$$$filename ]] || exit
0; \
112 echo url schema not known
; \
118 $(foreach distfile
,${FULLDISTFILES},$(eval
$(call FETCH_template
,$(distfile
))))