Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Jun 2012 23:02:59 +0400
From:      Alexander Pronin <scher@FreeBSD.org>
To:        freebsd-ports@freebsd.org
Cc:        Marcus von Appen <mva@FreeBSD.org>
Subject:   [ bsd.port.mk ] improper evaluation of config-recursive target
Message-ID:  <695931F1-409D-47AB-93F8-D895D3849CB7@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
Hello porters,
My name is Alexander Pronin. I am a GSOC intern. My project is =
(http://wiki.freebsd.org/SummerOfCode2012/Parallelization_in_the_ports_col=
lection#preview)

It is assumed that if a user calls

%make config-recursive

then options of current port and all it's dependency ports will be =
processed, but

If this port(A) enables dependency port(Z) via options then =
$$(${ALL-DEPENDS-LIST}) will not include this port(Z), hence options of =
port(Z) will not be processed.
If dependency port(B) of port(A) enables another dependency port(X) then =
options of this port(X) will not be processed either.

If I am correct with my assumptions, then the following patch fixes this =
behaviour:

--- /Users/scher/tmp/config-recursive/bsd.port.mk	2012-06-21 =
22:53:45.000000000 +0400
+++ /Users/scher/tmp/config-recursive/bsd.port.mk-fixed	2012-06-21 =
22:54:35.000000000 +0400
@@ -6110,8 +6110,8 @@
=20
 .if !target(config-recursive)
-config-recursive:
+config-recursive: config-conditional
 	@${ECHO_MSG} "=3D=3D=3D> Setting user-specified options for =
${PKGNAME} and dependencies";
-	@for dir in ${.CURDIR} $$(${ALL-DEPENDS-LIST}); do \
-		(cd $$dir; ${MAKE} config-conditional); \
+	@for dir in $$(${MAKE} all-depends-list); do \
+		(cd $$dir; ${MAKE} config-recursive); \
 	done
 .endif # config-recursive

---
Best regards,
Alexander Pronin




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?695931F1-409D-47AB-93F8-D895D3849CB7>