1 DEPENDS = "virtual/kernel perl-native"
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."
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}"
11 # for the correct kernel staging path
14 EXTRA_OEMAKE = "'ARCH=${KLIBC_ARCH}' \
15 'CROSS=${TARGET_PREFIX}' \
16 'CC=${HOST_PREFIX}gcc' \
17 'LD=${HOST_PREFIX}ld' \
20 'NM=${TARGET_PREFIX}nm' \
23 'HOST_CC=${BUILD_CC}' \
24 'HOST_CFLAGS=${BUILD_CFLAGS}' \
25 'HOST_LDFLAGS=${BUILD_LDFLAGS}' \
28 'ARCHREQFLAGS=${HOST_CC_ARCH}' \
29 'OPTFLAGS=${TARGET_CFLAGS}' \
32 KLIBC_ARCH = '${TARGET_ARCH}'
33 KLIBC_ARCH_armeb = 'arm'
34 KLIBC_ARCH_mipsel = 'mips'
36 # the klibc code contains ARM instructions (for ARM), this
37 # could be fixed, but for the moment:
38 ARM_INSTRUCTION_SET = "arm"
40 TARGET_CFLAGS := "${@oe_filter_out('-I\S+', '${TARGET_CFLAGS}', d)} -I${STAGING_KERNEL_DIR}/include"
42 INSTALLDIR = "/usr/lib/klibc"
43 INSTALLPREFIX = "${INSTALLDIR}/${TARGET_PREFIX}"
44 INSTALLBINDIR = "${INSTALLPREFIX}bin"
45 INSTALLLIBDIR = "${INSTALLPREFIX}lib"
46 INSTALLINCDIR = "${INSTALLPREFIX}include"
48 PACKAGES = "${PN} ${PN}-dev ${PN}-doc"
50 FILES_${PN} = "/lib/*.so* ${INSTALLBINDIR}"
51 FILES_${PN}-dev = "/usr/bin ${INSTALLINCDIR} ${INSTALLLIBDIR}"
54 ln -sf ${STAGING_KERNEL_DIR} linux
57 STAGING_KLIBC_DIR = "${STAGING_DIR}/${HOST_SYS}/klibc"
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' \
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'
72 # The installed -dev won't work because it has the cross compiler
74 oe_runmake 'INSTALLROOT=${D}' install