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
+}