blob: 1b676dc26e7558fd9dc9525f3d4188144b0c2cb3 [file] [log] [blame]
Brad Bishop6e60e8b2018-02-01 10:27:11 -05001require glibc-collateral.inc
Patrick Williamsc124f4f2015-09-15 14:41:29 -05002
3SUMMARY = "Locale data from glibc"
4
5BPN = "glibc"
6LOCALEBASEPN = "${MLPREFIX}glibc"
7
8# glibc-collateral.inc inhibits all default deps, but do_package needs objcopy
9# ERROR: objcopy failed with exit code 127 (cmd was 'i586-webos-linux-objcopy' --only-keep-debug 'glibc-locale/2.17-r0/package/usr/lib/gconv/IBM1166.so' 'glibc-locale/2.17-r0/package/usr/lib/gconv/.debug/IBM1166.so')
10# ERROR: Function failed: split_and_strip_files
11BINUTILSDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
12BINUTILSDEP_class-nativesdk = "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot"
13do_package[depends] += "${BINUTILSDEP}"
14
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015# localedef links with libc.so and glibc-collateral.inc inhibits all default deps
Brad Bishop6e60e8b2018-02-01 10:27:11 -050016# cannot add virtual/libc to DEPENDS, because it would conflict with libc-initial in RSS
17RDEPENDS_localedef += "glibc"
18
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019# Binary locales are generated at build time if ENABLE_BINARY_LOCALE_GENERATION
20# is set. The idea is to avoid running localedef on the target (at first boot)
21# to decrease initial boot time and avoid localedef being killed by the OOM
22# killer which used to effectively break i18n on machines with < 128MB RAM.
23
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080024# default to disabled
Patrick Williamsc124f4f2015-09-15 14:41:29 -050025ENABLE_BINARY_LOCALE_GENERATION ?= "0"
Patrick Williamsc0f7c042017-02-23 20:41:17 -060026ENABLE_BINARY_LOCALE_GENERATION_pn-nativesdk-glibc-locale = "1"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050027
28#enable locale generation on these arches
29# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080030BINARY_LOCALE_ARCHES ?= "arm.* aarch64 i[3-6]86 x86_64 powerpc mips mips64 riscv32 riscv64"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050031
32# set "1" to use cross-localedef for locale generation
33# set "0" for qemu emulation of native localedef for locale generation
34LOCALE_GENERATION_WITH_CROSS-LOCALEDEF = "1"
35
36PROVIDES = "virtual/libc-locale"
37
38PACKAGES = "localedef ${PN}-dbg"
39
40PACKAGES_DYNAMIC = "^locale-base-.* \
41 ^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.* \
Patrick Williamsc124f4f2015-09-15 14:41:29 -050042 ^${MLPREFIX}glibc-gconv$"
43
44# Create a glibc-binaries package
45ALLOW_EMPTY_${BPN}-binaries = "1"
46PACKAGES += "${BPN}-binaries"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050047RRECOMMENDS_${BPN}-binaries = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-binary") != -1])}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050048
49# Create a glibc-charmaps package
50ALLOW_EMPTY_${BPN}-charmaps = "1"
51PACKAGES += "${BPN}-charmaps"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050052RRECOMMENDS_${BPN}-charmaps = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-charmap") != -1])}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050053
54# Create a glibc-gconvs package
55ALLOW_EMPTY_${BPN}-gconvs = "1"
56PACKAGES += "${BPN}-gconvs"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050057RRECOMMENDS_${BPN}-gconvs = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-gconv") != -1])}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050058
59# Create a glibc-localedatas package
60ALLOW_EMPTY_${BPN}-localedatas = "1"
61PACKAGES += "${BPN}-localedatas"
Brad Bishop6e60e8b2018-02-01 10:27:11 -050062RRECOMMENDS_${BPN}-localedatas = "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-localedata") != -1])}"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050063
64DESCRIPTION_localedef = "glibc: compile locale definition files"
65
66# glibc-gconv is dynamically added into PACKAGES, thus
67# FILES_glibc-gconv will not be automatically extended in multilib.
68# Explicitly add ${MLPREFIX} for FILES_glibc-gconv.
69FILES_${MLPREFIX}glibc-gconv = "${libdir}/gconv/*"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050070FILES_localedef = "${bindir}/localedef"
71
Brad Bishop6e60e8b2018-02-01 10:27:11 -050072LOCALETREESRC = "${COMPONENTS_DIR}/${PACKAGE_ARCH}/glibc-stash-locale"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050073
74do_install () {
75 mkdir -p ${D}${bindir} ${D}${datadir} ${D}${libdir}
76 if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
Brad Bishopd5ae7d92018-06-14 09:52:03 -070077 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050078 fi
79 if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
80 mkdir -p ${D}${localedir}
Brad Bishopd5ae7d92018-06-14 09:52:03 -070081 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050082 fi
83 if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
Brad Bishopd5ae7d92018-06-14 09:52:03 -070084 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050085 fi
86 if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then
Brad Bishopd5ae7d92018-06-14 09:52:03 -070087 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050088 fi
89 if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then
Brad Bishopd5ae7d92018-06-14 09:52:03 -070090 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/${datadir}/locale ${D}${datadir}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050091 fi
Brad Bishopd5ae7d92018-06-14 09:52:03 -070092 cp -R --no-dereference --preserve=mode,links ${LOCALETREESRC}/SUPPORTED ${WORKDIR}
Patrick Williamsc124f4f2015-09-15 14:41:29 -050093}
94
95inherit libc-package
96
97BBCLASSEXTEND = "nativesdk"