--- /usr/portage/dev-libs/dietlibc/dietlibc-0.33_pre20110403.ebuild 2011-05-06 14:01:07.000000000 +0200 +++ dietlibc-0.33_pre20110403.ebuild 2011-08-10 22:29:01.000000000 +0200 @@ -6,6 +6,14 @@ inherit eutils flag-o-matic toolchain-funcs +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then + export CTARGET=${CATEGORY/cross-} + fi +fi + GITHUB_AUTHOR="hollow" GITHUB_PROJECT="dietlibc" GITHUB_COMMIT="4e86d5e" @@ -15,16 +23,24 @@ SRC_URI="http://nodeload.github.com/${GITHUB_AUTHOR}/${GITHUB_PROJECT}/tarball/v${PV} -> ${P}.tar.gz" LICENSE="GPL-2" -SLOT="0" KEYWORDS="~alpha amd64 ~arm -hppa ~mips ~ppc ~ppc64 ~sparc x86" IUSE="debug" -DEPEND="" +DIETHOME="/usr/diet" + +if [[ -n $CTARGET && ${CTARGET} != ${CHOST} ]]; then + DEPEND="cross-${CTARGET/dietlibc/gnu}/gcc" + SLOT="${CTARGET}" + DIETHOME="/usr/${CTARGET}/diet" +else + DEPEND="" + SLOT="0" +fi + RDEPEND="" S="${WORKDIR}"/${GITHUB_AUTHOR}-${GITHUB_PROJECT}-${GITHUB_COMMIT} -DIETHOME=/usr/diet pkg_setup() { # Replace sparc64 related C[XX]FLAGS (see bug #45716) @@ -36,6 +52,12 @@ # debug flags use debug && append-flags -g + dARCH=$(tc-ninja_magic_to_arch) + case ${dARCH} in + x86) dARCH=i386 ;; + amd64) dARCH=x86_64 ;; + esac + # Makefile does not append CFLAGS append-flags -nostdinc -W -Wall -Wextra -Wchar-subscripts \ -Wmissing-prototypes -Wmissing-declarations -Wno-switch \ @@ -47,7 +69,8 @@ src_compile() { emake prefix=${DIETHOME} \ - CC="$(tc-getCC)" \ + MYARCH="${dARCH}" \ + CROSS="${CTARGET/dietlibc/gnu}-" \ CFLAGS="${CFLAGS}" \ STRIP=":" \ || die "make failed" @@ -55,12 +78,21 @@ src_install() { emake prefix=${DIETHOME} \ + MYARCH="${dARCH}" \ DESTDIR="${D}" \ install-bin \ install-headers \ || die "make install failed" - dobin "${D}"${DIETHOME}/bin/* || die "dobin failed" + if [[ ${CTARGET} != ${CHOST} ]]; then + mkdir "${D}/usr/bin" + for f in diet dnsd elftrunc ; do + mv "${D}/${DIETHOME}/bin/$f" "${D}/usr/bin/${CTARGET%-*}-$f" || die + done + else + dobin "${D}"${DIETHOME}/bin/* || die "dobin failed" + fi + doman "${D}"${DIETHOME}/man/*/* || die "doman failed" rm -r "${D}"${DIETHOME}/{man,bin}