source: freewrt/mk/fetch.mk@ d1eeabf

Last change on this file since d1eeabf was 3278fb3, checked in by Thorsten Glaser <tg@…>, 19 years ago

define checksum cookie here too if it wasn't yet defined
(e.g. by buildhlp.mk)

git-svn-id: svn://www.freewrt.org/trunk/freewrt@2769 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 2.1 KB
Line 
1# $FreeWRT$
2#-
3# This file is part of the FreeWRT project. FreeWRT is copyrighted
4# material, please see the LICENCE file in the top-level directory
5# or at http://www.freewrt.org/licence for details.
6#-
7
8ifneq ($(strip ${DIST_SUBDIR}),)
9FULLDISTDIR?= ${DISTDIR}/${DIST_SUBDIR}
10else
11FULLDISTDIR?= ${DISTDIR}
12endif
13
14FULLDISTFILES= $(patsubst %,${FULLDISTDIR}/%,${DISTFILES})
15
16FETCH_STYLE?= auto
17#pre-fetch:
18do-fetch:
19#post-fetch:
20fetch:
21# @${MAKE} pre-fetch
22ifneq ($(filter auto,${FETCH_STYLE}),)
23 ${MAKE} ${FULLDISTFILES}
24else
25 ${MAKE} do-fetch
26endif
27# @${MAKE} post-fetch
28
29refetch:
30 -rm -f ${FULLDISTFILES}
31 ${MAKE} fetch
32
33# XXX for now
34_CHECKSUM_COOKIE?= ${WRKDIR}/.checksum_done
35checksum: ${_CHECKSUM_COOKIE}
36ifeq ($(strip ${NO_CHECKSUM}),)
37${_CHECKSUM_COOKIE}: ${FULLDISTFILES}
38 rm -rf ${WRKDIR}
39 @OK=n; \
40 (md5sum ${FULLDISTFILES}; echo exit) | while read sum name; do \
41 if [[ $$sum = exit ]]; then \
42 [[ $$OK = n ]] && echo >&2 "==> No distfile found!" || :; \
43 [[ $$OK = 1 ]] || exit 1; \
44 break; \
45 fi; \
46 if [[ $$sum = "$(strip ${PKG_MD5SUM})" ]]; then \
47 echo >&2 "==> Checksum ok for $${name##*/} (MD5)"; \
48 [[ $$OK = 0 ]] || OK=1; \
49 continue; \
50 fi; \
51 echo >&2 "==> Checksum mismatch for $${name##*/} (MD5)"; \
52 echo >&2 ":---> should be '$(strip ${PKG_MD5SUM})'"; \
53 echo >&2 ":---> really is '$$sum'"; \
54 OK=0; \
55 done
56 mkdir -p ${WRKDIR}
57 touch ${_CHECKSUM_COOKIE}
58endif
59
60# GNU make's poor excuse for loops
61define FETCH_template
62$(1):
63 @fullname='$(1)'; \
64 subname=$$$${fullname##$${DISTDIR}/}; \
65 filename=$$$${fullname##*/}; \
66 i='$${LOCAL_DISTDIR}'; \
67 if [[ -n $$$$i && -e $$$$i/$$$$subname ]]; then \
68 cd "$$$$i"; \
69 echo pax -rw "$$$$subname" '$${DISTDIR}/'; \
70 exec pax -rw "$$$$subname" '$${DISTDIR}/'; \
71 fi; \
72 mkdir -p "$$$${fullname%%/$$$$filename}"; \
73 cd "$$$${fullname%%/$$$$filename}"; \
74 for site in $${MASTER_SITES} $${MASTER_SITE_BACKUP}; do \
75 echo "==> Attempting to fetch $$$$subname from $$$$site"; \
76 if $${FETCH_CMD} $$$$site$$$$filename; then \
77 : check the size here; \
78 [[ ! -e $$$$filename ]] || exit 0; \
79 fi; \
80 done; \
81 exit 1
82endef
83
84$(foreach distfile,${FULLDISTFILES},$(eval $(call FETCH_template,$(distfile))))
Note: See TracBrowser for help on using the repository browser.