Skip site navigation (1)Skip section navigation (2)
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>