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
signature.asc
Description: PGP signature