svn commit: r399712 - in head/Mk: . Scripts
Bryan Drewery
bdrewery at FreeBSD.org
Mon Oct 19 19:23:55 UTC 2015
Author: bdrewery
Date: Mon Oct 19 19:23:53 2015
New Revision: 399712
URL: https://svnweb.freebsd.org/changeset/ports/399712
Log:
- Combine clean-depends-list.sh into depends-list.sh
- Refactor how depends-list.sh is called from bsd.port.mk for each variant.
With hat: portmgr
Deleted:
head/Mk/Scripts/clean-depends-list.sh
Modified:
head/Mk/Scripts/depends-list.sh
head/Mk/bsd.port.mk
Modified: head/Mk/Scripts/depends-list.sh
==============================================================================
--- head/Mk/Scripts/depends-list.sh Mon Oct 19 18:44:41 2015 (r399711)
+++ head/Mk/Scripts/depends-list.sh Mon Oct 19 19:23:53 2015 (r399712)
@@ -7,11 +7,17 @@ set -e
. ${dp_SCRIPTSDIR}/functions.sh
recursive=0
-while getopts "r" FLAG; do
+requires_wrkdir=0
+while getopts "rw" FLAG; do
case "${FLAG}" in
r)
recursive=1
;;
+ w)
+ # Only list dependencies that have a WRKDIR. Used for
+ # 'make clean-depends'.
+ requires_wrkdir=1
+ ;;
*)
echo "Unknown flag" >&2
exit 1
@@ -20,8 +26,8 @@ while getopts "r" FLAG; do
done
shift $((OPTIND-1))
-validate_env dp_ALLDEPENDS dp_PORTSDIR dp_PKGNAME
-if [ ${recursive} -eq 1 ]; then
+validate_env dp_PORTSDIR dp_PKGNAME
+if [ ${recursive} -eq 1 -o ${requires_wrkdir} -eq 1 ]; then
validate_env dp_MAKE
# Cache command executions to avoid looking them up again in every
# sub-make.
@@ -31,6 +37,8 @@ fi
set -u
check_dep() {
+ local _dep wrkdir show_dep
+
for _dep ; do
myifs=${IFS}
IFS=:
@@ -46,16 +54,36 @@ check_dep() {
*\ ${d}\ *) continue ;; # Already checked
esac
checked="${checked} ${d}"
+ # Check if the dependency actually exists or skip otherwise.
if [ ! -d ${d} ]; then
echo "${dp_PKGNAME}: \"${d}\" non-existent -- dependency list incomplete" >&2
continue
fi
- echo ${d}
+
+ # Grab any needed vars from the port.
+
+ if [ ${requires_wrkdir} -eq 1 -a ${recursive} -eq 1 ]; then
+ set -- $(${dp_MAKE} -C ${d} -VWRKDIR -V_UNIFIED_DEPENDS)
+ wrkdir="$1"
+ shift
+ elif [ ${requires_wrkdir} -eq 1 -a ${recursive} -eq 0 ]; then
+ set -- "$(${dp_MAKE} -C ${d} -VWRKDIR)"
+ wrkdir="$1"
+ elif [ ${recursive} -eq 1 ]; then
+ set -- $(${dp_MAKE} -C ${d} -V_UNIFIED_DEPENDS)
+ fi
+
+ # If a WRKDIR is required to show the dependency, check for it.
+ show_dep=1
+ if [ ${requires_wrkdir} -eq 1 ] && ! [ -d "${wrkdir}" ]; then
+ show_dep=0
+ fi
+ [ ${show_dep} -eq 1 ] && echo ${d}
if [ ${recursive} -eq 1 ]; then
- check_dep $(${dp_MAKE} -C ${d} -V_UNIFIED_DEPENDS)
+ check_dep $@
fi
done
}
checked=
-check_dep ${dp_ALLDEPENDS}
+check_dep $@
Modified: head/Mk/bsd.port.mk
==============================================================================
--- head/Mk/bsd.port.mk Mon Oct 19 18:44:41 2015 (r399711)
+++ head/Mk/bsd.port.mk Mon Oct 19 19:23:53 2015 (r399712)
@@ -4377,32 +4377,31 @@ _DEPEND_SPECIALS= ${_UNIFIED_DEPENDS:M*\
all-depends-list:
@${ALL-DEPENDS-LIST}
-ALL-DEPENDS-LIST= \
- ${SETENV} dp_ALLDEPENDS="${_UNIFIED_DEPENDS}" \
+# This script is shared among several dependency list variables. See file for
+# usage.
+DEPENDS-LIST= \
+ ${SETENV} \
dp_PORTSDIR="${PORTSDIR}" \
dp_MAKE="${MAKE}" \
dp_PKGNAME="${PKGNAME}" \
dp_SCRIPTSDIR="${SCRIPTSDIR}" \
- ${SH} ${SCRIPTSDIR}/depends-list.sh -r
+ ${SH} ${SCRIPTSDIR}/depends-list.sh
-CLEAN-DEPENDS-LIST= \
- ${SETENV} dp_ALLDEPENDS="${_UNIFIED_DEPENDS}" \
- dp_PORTSDIR="${PORTSDIR}" \
- dp_MAKE="${MAKE}" \
- dp_PKGNAME="${PKGNAME}" \
- dp_SCRIPTSDIR="${SCRIPTSDIR}" \
- ${SH} ${SCRIPTSDIR}/clean-depends-list.sh
+ALL-DEPENDS-LIST= ${DEPENDS-LIST} -r ${_UNIFIED_DEPENDS:Q}
+TEST-DEPENDS-LIST= ${DEPENDS-LIST} ${TEST_DEPENDS:Q}
+CLEAN-DEPENDS-LIST= ${DEPENDS-LIST} -wr ${_UNIFIED_DEPENDS:Q}
+CLEAN-DEPENDS-LIMITED-LIST= ${DEPENDS-LIST} -w ${_UNIFIED_DEPENDS:Q}
.if !target(clean-depends)
clean-depends:
- @for dir in $$(${CLEAN-DEPENDS-LIST} full); do \
+ @for dir in $$(${CLEAN-DEPENDS-LIST}); do \
(cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \
done
.endif
.if !target(limited-clean-depends)
limited-clean-depends:
- @for dir in $$(${CLEAN-DEPENDS-LIST} limited); do \
+ @for dir in $$(${CLEAN-DEPENDS-LIMITED-LIST}); do \
(cd $$dir; ${MAKE} NOCLEANDEPENDS=yes clean); \
done
.endif
@@ -4547,14 +4546,6 @@ test-depends-list:
@${TEST-DEPENDS-LIST}
.endif
-TEST-DEPENDS-LIST= \
- ${SETENV} dp_ALLDEPENDS="${TEST_DEPENDS}" \
- dp_PORTSDIR="${PORTSDIR}" \
- dp_MAKE="${MAKE}" \
- dp_PKGNAME="${PKGNAME}" \
- dp_SCRIPTSDIR="${SCRIPTSDIR}" \
- ${SH} ${SCRIPTSDIR}/depends-list.sh
-
# Package (recursive runtime) dependency list. Print out both directory names
# and package names.
More information about the svn-ports-all
mailing list