merge of '45fb4fa94d52a65c3a3fa636c6122139173dfa8d'
[vuplus_openembedded] / packages / klibc / klibc.inc
1 DEPENDS = "virtual/kernel perl-native"
2 SECTION = "libs"
3 DESCRIPTION = "klibc is intended to be a minimalistic libc subset for \
4 use with initramfs.  It is deliberately written for small size, \
5 minimal entaglement, and portability, not speed."
6 LICENSE = "BSD-ADV"
7 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/libs/klibc/Stable/klibc-${PV}.tar.bz2"
8 SRC_URI += "file://install.patch;patch=1"
9 S = "${WORKDIR}/klibc-${PV}"
10
11 # for the correct kernel staging path
12 # inherit module-base
13
14 EXTRA_OEMAKE = "'ARCH=${KLIBC_ARCH}' \
15                 'CROSS=${TARGET_PREFIX}' \
16                 'CC=${HOST_PREFIX}gcc' \
17                 'LD=${HOST_PREFIX}ld' \
18                 'AR=${AR}' \
19                 'RANLIB=${RANLIB}' \
20                 'NM=${TARGET_PREFIX}nm' \
21                 'STRIP=echo' \
22                 'SHLIBDIR=/lib' \
23                 'HOST_CC=${BUILD_CC}' \
24                 'HOST_CFLAGS=${BUILD_CFLAGS}' \
25                 'HOST_LDFLAGS=${BUILD_LDFLAGS}' \
26                 'HOST_LIBS=' \
27                 'LDFLAGS=' \
28                 'ARCHREQFLAGS=${HOST_CC_ARCH}' \
29                 'OPTFLAGS=${TARGET_CFLAGS}' \
30                 'mandir=${mandir}'"
31
32 KLIBC_ARCH = '${TARGET_ARCH}'
33 KLIBC_ARCH_armeb = 'arm'
34 KLIBC_ARCH_mipsel = 'mips'
35
36 # the klibc code contains ARM instructions (for ARM), this
37 # could be fixed, but for the moment:
38 ARM_INSTRUCTION_SET = "arm"
39
40 TARGET_CFLAGS := "${@oe_filter_out('-I\S+', '${TARGET_CFLAGS}', d)} -I${STAGING_KERNEL_DIR}/include"
41
42 INSTALLDIR = "/usr/lib/klibc"
43 INSTALLPREFIX = "${INSTALLDIR}/${TARGET_PREFIX}"
44 INSTALLBINDIR = "${INSTALLPREFIX}bin"
45 INSTALLLIBDIR = "${INSTALLPREFIX}lib"
46 INSTALLINCDIR = "${INSTALLPREFIX}include"
47
48 PACKAGES = "${PN} ${PN}-dev ${PN}-doc"
49
50 FILES_${PN} = "/lib/*.so* ${INSTALLBINDIR}"
51 FILES_${PN}-dev = "/usr/bin ${INSTALLINCDIR} ${INSTALLLIBDIR}"
52
53 do_configure () {
54         ln -sf ${STAGING_KERNEL_DIR} linux
55 }
56
57 STAGING_KLIBC_DIR = "${STAGING_DIR}/${HOST_SYS}/klibc"
58
59 do_stage() {
60         rm -rf "${STAGING_KLIBC_DIR}"
61         oe_runmake      'prefix=${STAGING_KLIBC_DIR}' \
62                         'bindir=${STAGING_BINDIR}' \
63                         'mandir=${STAGING_DIR}/${BUILD_SYS}/share/man' \
64                         install
65         # The following is sufficient, at least in klibc 1.1.1 to make klcc
66         # use the staged libraries and include files.
67         sed -i -e 's@^\$prefix = .*$@\$prefix = "${STAGING_KLIBC_DIR}/lib/klibc";@' \
68                 '${STAGING_BINDIR}/${TARGET_PREFIX}klcc'
69 }
70
71 do_install() {
72         # The installed -dev won't work because it has the cross compiler
73         # path compiled in.
74         oe_runmake 'INSTALLROOT=${D}' install
75 }