---
 gx86/eclass/distutils-r1.eclass | 71 ++++++++++++++++-------------------------
 1 file changed, 27 insertions(+), 44 deletions(-)

diff --git a/gx86/eclass/distutils-r1.eclass b/gx86/eclass/distutils-r1.eclass
index 264ce9c..ce518a7 100644
--- a/gx86/eclass/distutils-r1.eclass
+++ b/gx86/eclass/distutils-r1.eclass
@@ -92,6 +92,8 @@ fi
 if [[ ! ${DISTUTILS_OPTIONAL} ]]; then
        EXPORT_FUNCTIONS src_prepare src_configure src_compile src_test 
src_install
 fi
+multibuild_export_phases \
+       python_prepare_all python_compile python_install python_install_all
 
 if [[ ! ${_DISTUTILS_R1} ]]; then
 
@@ -559,6 +561,9 @@ distutils-r1_run_phase() {
 # If in-source build is used, the command will be run in the copy
 # of sources made for the best Python interpreter.
 _distutils-r1_run_common_phase() {
+       # not all phases need be set
+       [[ ${1} ]] || return
+
        local DISTUTILS_ORIG_BUILD_DIR=${BUILD_DIR}
 
        local MULTIBUILD_VARIANTS
@@ -576,6 +581,9 @@ _distutils-r1_run_common_phase() {
 _distutils-r1_run_foreach_impl() {
        debug-print-function ${FUNCNAME} "${@}"
 
+       # not all phases need be set
+       [[ ${1} ]] || return
+
        set -- distutils-r1_run_phase "${@}"
 
        if [[ ! ${DISTUTILS_SINGLE_IMPL} ]]; then
@@ -599,68 +607,43 @@ _distutils-r1_run_foreach_impl() {
 distutils-r1_src_prepare() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       # common preparations
-       if declare -f python_prepare_all >/dev/null; then
-               python_prepare_all
-       else
-               distutils-r1_python_prepare_all
-       fi
-
-       if declare -f python_prepare >/dev/null; then
-               _distutils-r1_run_foreach_impl python_prepare
-       fi
+       "$(multibuild_get_phase_function python_prepare_all)"
+       _distutils-r1_run_foreach_impl \
+               "$(multibuild_get_phase_function python_prepare)"
 }
 
 distutils-r1_src_configure() {
-       if declare -f python_configure >/dev/null; then
-               _distutils-r1_run_foreach_impl python_configure
-       fi
-
-       if declare -f python_configure_all >/dev/null; then
-               _distutils-r1_run_common_phase python_configure_all
-       fi
+       _distutils-r1_run_foreach_impl \
+               "$(multibuild_get_phase_function python_configure)"
+       _distutils-r1_run_common_phase \
+               "$(multibuild_get_phase_function python_configure_all)"
 }
 
 distutils-r1_src_compile() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       if declare -f python_compile >/dev/null; then
-               _distutils-r1_run_foreach_impl python_compile
-       else
-               _distutils-r1_run_foreach_impl distutils-r1_python_compile
-       fi
-
-       if declare -f python_compile_all >/dev/null; then
-               _distutils-r1_run_common_phase python_compile_all
-       fi
+       _distutils-r1_run_foreach_impl \
+               "$(multibuild_get_phase_function python_compile)"
+       _distutils-r1_run_common_phase \
+               "$(multibuild_get_phase_function python_compile_all)"
 }
 
 distutils-r1_src_test() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       if declare -f python_test >/dev/null; then
-               _distutils-r1_run_foreach_impl python_test
-       fi
-
-       if declare -f python_test_all >/dev/null; then
-               _distutils-r1_run_common_phase python_test_all
-       fi
+       _distutils-r1_run_foreach_impl \
+               "$(multibuild_get_phase_function python_test)"
+       _distutils-r1_run_common_phase \
+               "$(multibuild_get_phase_function python_test_all)"
 }
 
 distutils-r1_src_install() {
        debug-print-function ${FUNCNAME} "${@}"
 
-       if declare -f python_install >/dev/null; then
-               _distutils-r1_run_foreach_impl python_install
-       else
-               _distutils-r1_run_foreach_impl distutils-r1_python_install
-       fi
-
-       if declare -f python_install_all >/dev/null; then
-               _distutils-r1_run_common_phase python_install_all
-       else
-               _distutils-r1_run_common_phase distutils-r1_python_install_all
-       fi
+       _distutils-r1_run_foreach_impl \
+               "$(multibuild_get_phase_function python_install)"
+       _distutils-r1_run_common_phase \
+               "$(multibuild_get_phase_function python_install_all)"
 }
 
 _DISTUTILS_R1=1
-- 
1.8.1.5


Reply via email to