This changes the buildlink3.mk files to use an include guard for the recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS, BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of enter/exit marker, which can be used to reconstruct the tree and to determine first level includes. Avoiding := for large variables (BUILDLINK_ORDER) speeds up parse time as += has linear complexity. The include guard reduces system time by avoiding reading files over and over again. For complex packages this reduces both %user and %sys time to half of the former time.
21 lines
363 B
Bash
21 lines
363 B
Bash
#!/bin/sh
|
|
#
|
|
# $NetBSD: show-buildlink3.sh,v 1.2 2009/03/20 19:25:01 joerg Exp $
|
|
#
|
|
# This script is a helper for the show-buildlink3 target and outputs
|
|
# the arguments as tree.
|
|
#
|
|
|
|
while test $# -gt 0; do
|
|
pkg="$1"
|
|
case $pkg in
|
|
-*)
|
|
indentation=${indendation# }
|
|
;;
|
|
*)
|
|
echo "${indentation}${pkg}"
|
|
indentation="${indentation} "
|
|
;;
|
|
esac
|
|
shift
|
|
done
|