This patch adds multilib_src_{configure,compile,test}_all
callbacks, analogous to the existing multilib_src_install_all
callback.

--- 003-in-source-doc/multilib-minimal.eclass	2013-12-03 02:45:19.428664959 -0800
+++ 004-multilib-phase-all/multilib-minimal.eclass	2013-12-03 02:54:40.045335905 -0800
@@ -86,6 +86,20 @@
 # as out-of-tree builds will not be building in the same directory as
 # the configure script.
 #
+# Non-abi-specific functionality is accomodated by an additional
+# set of callbacks, the multilib_<phase>_all functions.
+#
+# multilib_<phase>_all is called once only, after the per-ABI
+# multilib_src_<phase> functions complete, with BUILD_DIR and
+# the current working directory set to the same values as they
+# were when multilib-minimal_<phase> was invoked.
+# mutilib_src_configure is an exception; it runs before the
+# per-ABI configure steps.  Consumers may also implement their
+# own phase functions, and invoke multilib-minimal_<phase>
+# directly; doing so is mostly equivalent to
+# implementing multilib_src_<phase>_all, although it may result
+# in more confusing code.
+#
 # EAPI >= 4 is required by multilib minimial, as without it,
 # the ${MULTILIB_USEDEP} variable cannot be correctly implemented.
 #
@@ -144,6 +158,9 @@ multilib-minimal_src_configure() {
 		popd >/dev/null || die
 	}
 
+	if declare -f multilib_src_configure_all > /dev/null ; then
+		multilib_src_configure_all
+	fi
 	multilib_foreach_abi multilib-minimal_abi_src_configure
 }
 
@@ -163,6 +180,9 @@ multilib-minimal_src_compile() {
 	}
 
 	multilib_foreach_abi multilib-minimal_abi_src_compile
+	if declare -f multilib_src_compile_all > /dev/null ; then
+		multilib_src_compile_all
+	fi
 }
 
 multilib-minimal_src_test() {
@@ -181,6 +201,9 @@ multilib-minimal_src_test() {
 	}
 
 	multilib_foreach_abi multilib-minimal_abi_src_test
+	if declare -f multilib_src_test_all >/dev/null ; then
+		multilib_src_test_all
+	fi
 }
 
 multilib-minimal_src_install() {

Reply via email to