commit: 9a28529d05071e5a0ab00de2e757a49e01e62107 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Thu Jun 19 09:57:30 2014 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Thu Jun 19 09:57:30 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=9a28529d
New awesome multilib-gcc-wrapper to play with distcc. --- .../multilib-gcc-wrapper-0.ebuild | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0.ebuild b/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0.ebuild new file mode 100644 index 0000000..adc2cae --- /dev/null +++ b/sys-devel/multilib-gcc-wrapper/multilib-gcc-wrapper-0.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +inherit multilib-build + +DESCRIPTION="Wrappers for gcc tools to be used on non-native CHOSTs" +HOMEPAGE="" +SRC_URI="" + +LICENSE="" +SLOT="0" +KEYWORDS="~amd64" +IUSE="distcc" + +RDEPEND="sys-devel/gcc:=" + +S=${WORKDIR} + +mkwrap() { + cat > "${T}"/wrapper <<-_EOF_ + #!/bin/bash + exec ${1} $(get_abi_CFLAGS) "\${@}" + _EOF_ + + newbin "${T}"/wrapper "${2}" +} + +src_install() { + local host_prefix=${CHOST} + local tools=( c++ cpp g++ gcc gfortran ) # XXX + + if use distcc; then + local distcc_dir=/usr/$(get_libdir)/distcc/bin + local distcc_sym_prefix=../../../bin + dodir "${distcc_dir}" + fi + + create_wrappers() { + [[ ${CHOST} == ${host_prefix} ]] && continue + + local t e + for t in "${tools[@]}"; do + for e in "${ROOT%/}"/usr/bin/${host_prefix}-${t} \ + "${ROOT%/}"/usr/bin/${host_prefix}-${t}-[34]*; do + local basename=${e##*/} + local newname=${basename/${host_prefix}/${CHOST}} + + mkwrap "${basename}" "${newname}" + + if use distcc; then + dosym "${distcc_sym_prefix}/${newname}" \ + "${distcc_dir}/${newname}" + fi + done + done + } + multilib_foreach_abi create_wrappers +}