blob: 87af33b102a57ad3ac9f7a8974e01b6caf54f328 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/klibc/klibc-1.0.ebuild,v 1.2 2005/03/09 23:55:54 azarah Exp $
inherit eutils linux-mod
export CTARGET=${CTARGET:-${CHOST}}
if [[ ${CTARGET} == ${CHOST} ]] ; then
if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
export CTARGET=${CATEGORY/cross-}
fi
fi
DESCRIPTION="A minimal libc subset for use with initramfs."
HOMEPAGE="http://www.zytor.com/mailman/listinfo/klibc"
SRC_URI="ftp://ftp.kernel.org/pub/linux/libs/klibc/${P}.tar.bz2
ftp://ftp.kernel.org/pub/linux/libs/klibc/Stable/${P}.tar.bz2
ftp://ftp.kernel.org/pub/linux/libs/klibc/Testing/${P}.tar.bz2"
LICENSE="|| ( GPL-2 LGPL-2 )"
KEYWORDS="~x86"
IUSE=""
RESTRICT="nostrip"
DEPEND="virtual/linux-sources"
if [[ ${CTARGET} != ${CHOST} ]] ; then
SLOT="${CTARGET}"
else
SLOT="0"
fi
is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
guess_arch() {
local x
local host=$(echo "${CTARGET%%-*}" | sed -e 's/i.86/i386/' \
-e 's/sun4u/sparc64/' \
-e 's/arm.*/arm/' \
-e 's/sa110/arm/' \
-e 's/powerpc/ppc/')
# Sort reverse so that we will get ppc64 before ppc, etc
for x in $(ls -1 "${S}/include/arch/" | sort -r) ; do
if [[ ${host} == "${x}" ]] ; then
echo "${x}"
return 0
fi
done
return 1
}
src_unpack() {
unpack ${A}
if [[ ! -d /usr/${CTARGET} ]] ; then
echo
eerror "It does not look like your cross-compiler is setup properly!"
die "It does not look like your cross-compiler is setup properly!"
fi
if ! guess_arch &>/dev/null ; then
echo
eerror "Could not guess klibc's ARCH from your CTARGET!"
die "Could not guess klibc's ARCH from your CTARGET!"
fi
# Make sure kernel sources are ok
check_kernel_built
kernel_arch=$(readlink "${KV_DIR}/include/asm" | sed -e 's:asm-::')
if [[ ${kernel_arch} != $(guess_arch) ]] ; then
echo
eerror "Your kernel sources are not configured for your chosen arch!"
eerror "(KERNEL_ARCH=\"${kernel_arch}\", ARCH=\"$(guess_arch)\")"
die "Your kernel sources are not configured for your chosen arch!"
fi
cd ${S}
# If say LDFLAGS = "", then '' gets passed as arg to ld which borks
epatch ${FILESDIR}/${P}-makeklcc-empty-args.patch
ln -snf ${KV_DIR} linux
}
src_compile() {
if is_cross ; then
einfo "ARCH = \"$(guess_arch)\""
einfo "CROSS = \"${CTARGET}-\""
emake ARCH=$(guess_arch) \
CROSS="${CTARGET}-" || die "Compile failed!"
else
env -u ARCH \
emake || die "Compile failed!"
fi
}
src_install() {
if is_cross ; then
make INSTALLROOT=${D} \
ARCH=$(guess_arch) \
CROSS="${CTARGET}-" \
install || die "Install failed!"
else
env -u ARCH \
make INSTALLROOT=${D} install || die "Install failed!"
insinto /usr/share/aclocal
doins ${FILESDIR}/klibc.m4
dodoc ${S}/README ${S}/klibc/{LICENSE,CAVEATS}
newdoc ${S}/klibc/README README.klibc
newdoc ${S}/klibc/arch/README README.klibc.arch
docinto ash; newdoc ${S}/ash/README.klibc README
docinto gzip; dodoc ${S}/gzip/{COPYING,README}
docinto ipconfig; dodoc ${S}/ipconfig/README
docinto kinit; dodoc ${S}/kinit/README
fi
}
|