"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?

Reply via email to