Date: Mon, 19 Oct 2015 19:23:54 +0000 (UTC) From: Bryan Drewery <bdrewery@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r399712 - in head/Mk: . Scripts Message-ID: <201510191923.t9JJNseR009395@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201510191923.t9JJNseR009395>