# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-libs/dietlibc/dietlibc-0.33_pre20110403.ebuild,v 1.7 2012/08/21 03:29:23 ottxor Exp $ EAPI="3" inherit eutils flag-o-matic toolchain-funcs MY_PV=${PV/_pre/~cvs} DEB_PV="3" DESCRIPTION="A libc optimized for small size" HOMEPAGE="http://www.fefe.de/dietlibc/" SRC_URI="https://launchpad.net/ubuntu/+archive/primary/+files/dietlibc_${MY_PV}.orig.tar.gz https://launchpad.net/ubuntu/+archive/primary/+files/dietlibc_${MY_PV}-${DEB_PV}.debian.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha amd64 ~arm -hppa ~mips ~sparc x86 ~amd64-linux ~x86-linux" IUSE="debug" DEPEND="" RDEPEND="" S="${WORKDIR}"/dietlibc-${MY_PV} DIETHOME=/usr/diet IUSE_LIBC_TARGET="alpha arm armeb i386 ia64 mips mipsel parisc parisc64 ppc ppc64 s390 s390x sparc sparc64 x86_64" for t in ${IUSE_LIBC_TARGET} ; do IUSE="${IUSE} target_${t}" done pkg_setup() { # Replace sparc64 related C[XX]FLAGS (see bug #45716) use sparc && replace-sparc64-flags # gcc-hppa suffers support for SSP, compilation will fail use hppa && strip-unsupported-flags # 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 \ -Wno-unused -Wredundant-decls -fno-strict-aliasing # only use -nopie on archs that support it gcc-specs-pie && append-flags -nopie } src_prepare() { EPATCH_SOURCE="${WORKDIR}/debian/patches" EPATCH_SUFFIX="diff" \ EPATCH_FORCE="yes" epatch ln -sf bin-${ARCH} bin-${CHOST/-*/} } src_compile() { for t in ${IUSE_LIBC_TARGET} ; do use target_$t $USE || continue tC="CROSS_$t" if [ -z "${!tC}" ] ; then ewarn "CROSS_$t not defined, can't build" sleep 15 continue fi einfo "Building libc $t" emake prefix="${EPREFIX}"${DIETHOME} \ MYARCH="${t}" \ CROSS="${!tC}" \ CFLAGS="${CFLAGS}" \ STRIP=":" \ || die "make failed" done } src_install() { emake prefix="${EPREFIX}"${DIETHOME} \ DESTDIR="${D}" \ install-headers \ || die "make install-headers failed" for t in ${IUSE_LIBC_TARGET} ; do use target_$t $USE || continue einfo "Installing libc $t" emake prefix=${DIETHOME} \ MYARCH="${t}" \ DESTDIR="${D}" \ install-bin \ || die "make install-bin failed" done dobin "${ED}"${DIETHOME}/bin/* || die "dobin failed" doman "${ED}"${DIETHOME}/man/*/* || die "doman failed" rm -r "${ED}"${DIETHOME}/{man,bin} dodoc AUTHOR BUGS CAVEAT CHANGES README THANKS TODO PORTING }