On Sat, 22 Sep 2012 23:44:43 +0200
Luca Barbato <lu_z...@gentoo.org> wrote:

> "Michał Górny" <mgo...@gentoo.org> wrote:
> 
> >It is a simple eclass using autotools out-of-source builds to build
> >packages for multiple ABIs when multilib is supported.
> >
> >Use case: xorg packages, ask Matt.
> >---
> >gx86/eclass/autotools-multilib.eclass | 72
> >+++++++++++++++++++++++++++++++++++
> > 1 file changed, 72 insertions(+)
> > create mode 100644 gx86/eclass/autotools-multilib.eclass
> >
> >diff --git a/gx86/eclass/autotools-multilib.eclass
> >b/gx86/eclass/autotools-multilib.eclass
> >new file mode 100644
> >index 0000000..1a345a1
> >--- /dev/null
> >+++ b/gx86/eclass/autotools-multilib.eclass
> >@@ -0,0 +1,72 @@
> >+# Copyright 1999-2012 Gentoo Foundation
> >+# Distributed under the terms of the GNU General Public License v2
> >+# $Header: $
> >+
> >+# @ECLASS: autotools-multilib.eclass
> >+# @MAINTAINER:
> >+# Michał Górny <mgo...@gentoo.org>
> >+# @BLURB: autotools-utils wrapper for multilib builds
> >+# @DESCRIPTION:
> >+# The autotools-multilib.eclass is an autotools-utils.eclass(5)
> >wrapper
> >+# introducing support for building for more than one ABI (multilib).
> >+#
> >+# Inheriting this eclass sets IUSE=multilib and exports
> >autotools-utils
> >+# phase function wrappers which build the package for each supported
> >ABI
> >+# if the flag is enabled. Otherwise, it works like regular
> >+# autotools-utils.
> >+#
> >+# Note that the multilib support requires out-of-source builds to be
> >+# enabled. Thus, it is impossible to use AUTOTOOLS_IN_SOURCE_BUILD
> >with
> >+# it.
> >+
> >+case ${EAPI:-0} in
> >+    2|3|4) ;;
> >+    *) die "EAPI=${EAPI} is not supported" ;;
> >+esac
> >+
> >+if [[ ${AUTOTOOLS_IN_SOURCE_BUILD} ]]; then
> >+    die "${ECLASS}: multilib support requires out-of-source
> >builds." +fi
> >+
> >+inherit autotools-utils multilib
> >+
> >+EXPORT_FUNCTIONS src_configure src_compile src_test src_install
> >+
> >+IUSE=multilib
> >+
> >+# @FUNCTION: autotools-multilib_foreach_abi
> >+# @USAGE: argv...
> >+# @DESCRIPTION:
> >+# If multilib support is enabled, sets the toolchain up for each
> >+# supported ABI along with the ABI variable and correct
> >+# AUTOTOOLS_BUILD_DIR, and runs the given commands with them.
> >+#
> >+# If multilib support is disabled, it just runs the commands. No
> >setup +# is done.
> >+autotools-multilib_foreach_abi() {
> >+    if use multilib; then
> >+            local ABI
> >+            for ABI in $(get_all_abis); do
> >+                    multilib_toolchain_setup "${ABI}"
> >+                    AUTOTOOLS_BUILD_DIR=${S%%/}-${ABI} "${@}"
> >+            done
> >+    else
> >+            "${@}"
> >+    fi
> >+}
> >+
> >+autotools-multilib_src_configure() {
> >+    autotools-multilib_foreach_abi autotools-utils_src_configure
> >+}
> >+
> >+autotools-multilib_src_compile() {
> >+    autotools-multilib_foreach_abi autotools-utils_src_compile
> >+}
> >+
> >+autotools-multilib_src_test() {
> >+    autotools-multilib_foreach_abi autotools-utils_src_test
> >+}
> >+
> >+autotools-multilib_src_install() {
> >+    autotools-multilib_foreach_abi autotools-utils_src_install
> >+}
> 
> How docs and nonbinaries get managed?

As usual. Installed twice, second time replacing the first ones.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: PGP signature

Reply via email to