summaryrefslogtreecommitdiff
path: root/mk/bsd.pkg.subdir.mk
diff options
context:
space:
mode:
Diffstat (limited to 'mk/bsd.pkg.subdir.mk')
-rw-r--r--mk/bsd.pkg.subdir.mk46
1 files changed, 44 insertions, 2 deletions
diff --git a/mk/bsd.pkg.subdir.mk b/mk/bsd.pkg.subdir.mk
index 77b990923b1..b64fc7366ba 100644
--- a/mk/bsd.pkg.subdir.mk
+++ b/mk/bsd.pkg.subdir.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.pkg.subdir.mk,v 1.45 2001/11/28 10:21:47 abs Exp $
+# $NetBSD: bsd.pkg.subdir.mk,v 1.46 2002/02/28 14:42:39 fredb Exp $
# Derived from: FreeBSD Id: bsd.port.subdir.mk,v 1.19 1997/03/09 23:10:56 wosch Exp
# from: @(#)bsd.subdir.mk 5.9 (Berkeley) 2/1/91
#
@@ -93,10 +93,11 @@ ${SUBDIR}::
fi; \
${MAKE} ${MAKEFLAGS} all
-.for __target in all fetch fetch-list package extract configure build clean \
+.for __target in all fetch package extract configure build clean \
cleandir distclean depend describe reinstall tags checksum \
makepatchsum mirror-distfiles deinstall show-downlevel \
show-pkgsrc-dir show-var show-vars bulk-install bulk-package \
+ fetch-list-one-pkg fetch-list-recursive \
${PKG_MISC_TARGETS}
.if !target(__target)
${__target}: _SUBDIRUSE
@@ -203,3 +204,44 @@ show-distfiles:
fi; \
done
.endif
+
+
+# Print out a script to fetch all needed files (no checksumming).
+#
+# When invoked at the top or category level, this target needs to be
+# handled specially, to elide the "===>" messages that would otherwise
+# ruin the script.
+#
+.if !target(fetch-list)
+.PHONY: fetch-list
+
+fetch-list:
+ @${ECHO} '#!/bin/sh'
+ @${ECHO} '#'
+ @${ECHO} '# This is an auto-generated script, the result of running'
+ @${ECHO} '# `make fetch-list'"'"' in directory "'"`pwd`"'"'
+ @${ECHO} '# on host "'"`${UNAME} -n`"'" on "'"`date`"'".'
+ @${ECHO} '#'
+.if defined(PKGSRCTOP) && !defined(SPECIFIC_PKGS)
+# Recursing over dependencies would be pointless, in this case.
+ @${MAKE} ${MAKEFLAGS} fetch-list-one-pkg \
+ | ${AWK} ' \
+ function do_block () { \
+ if (FoundSomething) { \
+ for (line = 0; line < c; line++) \
+ print block[line]; \
+ FoundSomething = 0 \
+ } \
+ c = 0 \
+ } \
+ /^[^#=]/ { FoundSomething = 1 } \
+ /^unsorted/ { gsub(/[[:space:]]+/, " \\\n\t") } \
+ !/^=/ { block[c++] = $$0 } \
+ /^=/ { do_block() } \
+ END { do_block() } \
+ '
+.else
+ @${MAKE} ${MAKEFLAGS} fetch-list-recursive \
+ | ${SED} '/^=/d'
+.endif
+.endif # !target(fetch-list)