| 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 |
|
|---|
| 8 | ifneq ($(strip ${DIST_SUBDIR}),)
|
|---|
| 9 | FULLDISTDIR?= ${DISTDIR}/${DIST_SUBDIR}
|
|---|
| 10 | else
|
|---|
| 11 | FULLDISTDIR?= ${DISTDIR}
|
|---|
| 12 | endif
|
|---|
| 13 |
|
|---|
| 14 | FULLDISTFILES= $(patsubst %,${FULLDISTDIR}/%,${DISTFILES})
|
|---|
| 15 |
|
|---|
| 16 | FETCH_STYLE?= auto
|
|---|
| 17 | #pre-fetch:
|
|---|
| 18 | do-fetch:
|
|---|
| 19 | #post-fetch:
|
|---|
| 20 | fetch:
|
|---|
| 21 | # @${MAKE} pre-fetch
|
|---|
| 22 | ifneq ($(filter auto,${FETCH_STYLE}),)
|
|---|
| 23 | ${MAKE} ${FULLDISTFILES}
|
|---|
| 24 | else
|
|---|
| 25 | ${MAKE} do-fetch
|
|---|
| 26 | endif
|
|---|
| 27 | # @${MAKE} post-fetch
|
|---|
| 28 |
|
|---|
| 29 | refetch:
|
|---|
| 30 | -rm -f ${FULLDISTFILES}
|
|---|
| 31 | ${MAKE} fetch
|
|---|
| 32 |
|
|---|
| 33 | # XXX for now
|
|---|
| 34 | _CHECKSUM_COOKIE?= ${WRKDIR}/.checksum_done
|
|---|
| 35 | checksum: ${_CHECKSUM_COOKIE}
|
|---|
| 36 | ifeq ($(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}
|
|---|
| 58 | endif
|
|---|
| 59 |
|
|---|
| 60 | # GNU make's poor excuse for loops
|
|---|
| 61 | define 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
|
|---|
| 82 | endef
|
|---|
| 83 |
|
|---|
| 84 | $(foreach distfile,${FULLDISTFILES},$(eval $(call FETCH_template,$(distfile))))
|
|---|