1#!/bin/sh
2
3
4. ${dp_SCRIPTSDIR}/functions.sh
5
6set -e
7validate_env dp_PKGNAME dp_MAKE dp_PORTSDIR
8set -u
9
10arg=$1
11shift
12if [ "${arg}" != "full" -a "${arg}" != "limited" ]; then
13	echo "the first argument can only be 'full' or 'limited'" >&2
14	exit 1
15fi
16
17check_dep() {
18	for _dep ; do
19		myifs=${IFS}
20		IFS=:
21		set -- ${_dep}
22		IFS=${myifs}
23
24		case "${2}" in
25			/*) d=${2} ;;
26			*) d=${dp_PORTSDIR}/${2} ;;
27		esac
28
29		case " ${checked} " in
30			*\ ${d}\ *) continue ;; # Already checked
31		esac
32		checked="${checked} ${d}"
33		if [ ! -d ${d} ]; then
34			echo "${dp_PKGNAME}: \"${d}\" non-existent -- dependency list incomplete" >&2
35			continue
36		fi
37		set -- $(${dp_MAKE} -C ${d} -VWRKDIR -V_UNIFIED_DEPENDS)
38		if [ -d ${1} ]; then
39			echo ${d}
40		elif [ "$arg" = "limited" ]; then
41			break
42		fi
43		shift
44		check_dep $@
45	done
46}
47
48checked=
49check_dep ${dp_ALLDEPENDS}
50