Date: Wed, 1 Jul 2015 20:27:19 +0000 (UTC) From: Baptiste Daroussin <bapt@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r391121 - in head/Mk: . Scripts Message-ID: <201507012027.t61KRJCY041487@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bapt Date: Wed Jul 1 20:27:19 2015 New Revision: 391121 URL: https://svnweb.freebsd.org/changeset/ports/391121 Log: Move all-depends-list to a regular script The benefice beside being more readable is to allow support for dependency line without ${PORTSDIR} This is also necessary to be able to easily hack on it for FLAVORS/SUBPACKAGE support Added: head/Mk/Scripts/all-depends-list.sh (contents, props changed) Modified: head/Mk/bsd.port.mk Added: head/Mk/Scripts/all-depends-list.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/Mk/Scripts/all-depends-list.sh Wed Jul 1 20:27:19 2015 (r391121) @@ -0,0 +1,39 @@ +#!/bin/sh +# MAINTAINER: portmgr@FreeBSD.org +# $FreeBSD$ + +set -e + +. ${dp_SCRIPTSDIR}/functions.sh + +validate_env dp_ALLDEPENDS dp_PORTSDIR dp_PKGNAME dp_MAKE + +set -u + +check_dep() { + for _dep ; do + myifs=${IFS} + IFS=: + set -- ${_dep} + IFS=${myifs} + + case "${2}" in + /*) d=${2} ;; + *) d=${dp_PORTSDIR}/${2} ;; + esac + + case " ${checked} " in + *\ ${d}\ *) continue ;; # Already checked + esac + checked="${checked} ${d}" + if [ ! -d ]; then + echo "${dp_PKGNAME}: \"${d}\" non-existent -- dependency list incomplete" >&2 + continue + fi + echo ${d} + check_dep $(${dp_MAKE} -C ${d} -V_UNIFIED_DEPENDS) + done +} + +checked= +check_dep ${dp_ALLDEPENDS} Modified: head/Mk/bsd.port.mk ============================================================================== --- head/Mk/bsd.port.mk Wed Jul 1 20:09:36 2015 (r391120) +++ head/Mk/bsd.port.mk Wed Jul 1 20:27:19 2015 (r391121) @@ -4368,35 +4368,12 @@ all-depends-list: @${ALL-DEPENDS-LIST} ALL-DEPENDS-LIST= \ - L="${_DEPEND_DIRS}"; \ - checked=""; \ - while [ -n "$$L" ]; do \ - l=""; \ - for d in $$L; do \ - case $$checked in \ - $$d\ *|*\ $$d\ *|*\ $$d) \ - continue;; \ - esac; \ - checked="$$checked $$d"; \ - if [ ! -d $$d ]; then \ - ${ECHO_MSG} "${PKGNAME}: \"$$d\" non-existent -- dependency list incomplete" >&2; \ - continue; \ - fi; \ - ${ECHO_CMD} $$d; \ - if ! children=$$(cd $$d && ${MAKE} -V _DEPEND_DIRS); then\ - ${ECHO_MSG} "${PKGNAME}: \"$$d\" erroneous -- dependency list incomplete" >&2; \ - continue; \ - fi; \ - for child in $$children; do \ - case "$$checked $$l" in \ - $$child\ *|*\ $$child\ *|*\ $$child) \ - continue;; \ - esac; \ - l="$$l $$child"; \ - done; \ - done; \ - L=$$l; \ - done + @${SETENV} dp_ALLDEPENDS="${_UNIFIED_DEPENDS}" \ + dp_PORTSDIR="${PORTSDIR}" \ + dp_MAKE="${MAKE}" \ + dp_PKGNAME="${PKGNAME}" \ + dp_SCRIPTSDIR="${SCRIPTSDIR}" \ + ${SH} ${SCRIPTSDIR}/all-depends-list.sh CLEAN-DEPENDS-FULL= \ L="${_DEPEND_DIRS}"; \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201507012027.t61KRJCY041487>