svn commit: r391121 - in head/Mk: . Scripts

Baptiste Daroussin bapt at FreeBSD.org
Wed Jul 1 20:27:20 UTC 2015


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 at 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}";						\


More information about the svn-ports-head mailing list