d02e68c628
Package-Manager: portage-2.2.0_alpha142 RepoMan-Options: --force
112 lines
2.7 KiB
Bash
112 lines
2.7 KiB
Bash
# 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
|
|
}
|