This is mostly a proof-of-concept. If approved, I will work on moving the code into a separate eclass, possibly named 'multilib-build' ;). --- gx86/eclass/autotools-multilib.eclass | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/gx86/eclass/autotools-multilib.eclass b/gx86/eclass/autotools-multilib.eclass index 7c8697a..eef7bcc 100644 --- a/gx86/eclass/autotools-multilib.eclass +++ b/gx86/eclass/autotools-multilib.eclass @@ -32,7 +32,23 @@ inherit autotools-utils multilib EXPORT_FUNCTIONS src_configure src_compile src_test src_install -IUSE=multilib +# Declare all of them, profiles will control their visibility. +IUSE='abi_x86_32 abi_x86_64' + +# @FUNCTION: _autotools-multilib_get_enabled_abis +# @DESCRIPTION: +# Get the list of enabled ABIs. The returned names are suitable for use +# with multilib.eclass. +# +# If multilib is not enabled or not supported, returns an empty list. +_autotools-multilib_get_enabled_abis() { + debug-print-function ${FUNCNAME} "${@}" + + if use amd64; then + use abi_x86_64 && echo amd64 + use abi_x86_32 && echo x86 + fi +} # @FUNCTION: autotools-multilib_foreach_abi # @USAGE: argv... @@ -46,9 +62,11 @@ IUSE=multilib autotools-multilib_foreach_abi() { local initial_dir=${BUILD_DIR:-${S}} - if use multilib; then + local multilib_abis=$(_autotools-multilib_get_enabled_abis) + + if [[ ${multilib_abis} ]]; then local ABI - for ABI in $(get_all_abis); do + for ABI in ${multilib_abis}; do multilib_toolchain_setup "${ABI}" BUILD_DIR=${initial_dir%%/}-${ABI} "${@}" done -- 1.8.1.1