Commit graph

8 commits

Author SHA1 Message Date
jlam
b5e83f7d36 Remove all uses of the following targets from pkgsrc:
show-all-depends-dirs
	show-all-depends-dirs-excl

Replace them with calls to pkgsrc/mk/scripts/depends-depth-first.awk
which does the same thing but without the extra overhead of invoking
a recursive make.
2006-07-27 22:01:28 +00:00
jlam
7a2c97d53f * Add a new stage "bootstrap-depends" that happens before all other
stages, and that installs dependencies listed in BOOTSTRAP_DEPENDS.
  The bootstrap-depends step works just like the normal depends step
  and honors the value of DEPENDS_TARGET.  It's now possible to add
  dependencies solely to facilitate fetching the distfiles, e.g.

	BOOTSTRAP_DEPENDS+=	curl-[0-9]*:../../www/curl

* Teach the tools framework about ":bootstrap" as a tools modifier
  which indicates the tool should be added as a dependency via
  BOOTSTRAP_DEPENDS.

* Add "digest" to the tools framework.

* Use USE_TOOLS+=digest:bootstrap to force pkgsrc to install digest
  before anything else.  Get rid of unused "uptodate-digest" target
  and related digest version-checking code.

* Finish the refactoring work: split checksum-related code out of
  bsd.pkg.mk and into pkgsrc/mk/checksum and replace the "checksum"
  target command list with a script that does all the real work.

* Make DIGEST_ALGORITHMS and PATCH_DIGEST_ALGORITHM into private
  variables by prepending them with an underscore.  Also, rename
  _PATCH_DIGEST_ALGORITHM to _PATCH_DIGEST_ALGORITHMS and adjust the
  makepatchsum target to allow that variable to contain a list of
  algorithms, all of which are used when creating the patch checksums
  for ${DISTINFO_FILE}.
2006-07-13 14:02:34 +00:00
jlam
e0d46069a6 Instead of accumulating _ALL_DEPENDS_PKGSRCDIRS, accumulate _ALL_DEPENDS
instead -- this keeps more information around.
2006-01-23 15:01:39 +00:00
jlam
4f06dd939b Remove some unnecessary parens... we don't need to invoke a new shell
just to run the depends-walk command.
2006-01-19 00:40:00 +00:00
jlam
19a4f23ea1 Move the following targets from bsd.pkg.mk to bsd.utils.mk:
show-depends-dirs
	show-all-depends-dirs
	show-all-depends-dirs-excl

While we're here, reimplement them using the new pkg_paths and
depends-depth-first.awk scripts.  As a side effect, this speeds up
the execution of these targets by around 5-15% depending on the
complexity of the dependency graph.

NOTE: This *does* change the behavior of these targets slightly because
      the output is now newline-separated instead of space-separated,
      and the order of the output lines doesn't match the original
      targets because the dependency graph is now walked depth-first
      instead of breadth first.
2006-01-18 20:18:04 +00:00
jlam
ca35caf06f Modify the show-depends-pkgpaths implementation so that we don't assume
package directories specified in DEPENDS lines begin with "../..".  The
new standalone script pkgsrc/mk/scripts/pkg_path will canonicalize them
into package paths relative to ${PKGSRCDIR}.
2006-01-18 18:03:08 +00:00
jlam
8eef20de06 Pass MAKEFLAGs to the depends-depth-first.awk script, which will be
used by the "make show-depends-pkgpaths" process to short-circuit some
of the rather lengthy computations that are spread throughout bsd.pkg.mk
and files included by bsd.pkg.mk.  This causes the script to speed up
noticeably.

Also, rename the _DEPENDS_DEPTH_FIRST_CMD variable to _DEPENDS_WALK_CMD
for brevity and to allow for other implementations in the future.
2006-01-18 03:58:19 +00:00
jlam
5c5ac03ec1 Create a standalone awk script, depends-depth-first.awk, that encapsulates
the code that performs the dependency graph traversal (in depth-first
fashion).  This script has a hook that allows executing a shell command
line upon visiting a dependency's package directory in either prefix
or postfix order, and may be used to simplify the code in bsd.pkg.mk
that iterates over dependencies.

This awk script requires the target "show-depends-pkgpaths", which is
defined in a new Makefile pkgsrc/mk/bsd.utils.mk.  This file should
accumulate "utility" targets that current exist in bsd.pkg.mk, i.e.,
"helper" targets for various actions.
2006-01-18 00:10:07 +00:00