0891bff2b0
When crossing to certain platforms, particularly when target platform is binary compatible with host (e.g. X to X-musl). we need to reset the LDFLAGS as otherwise -Lcross-toolchain/usr/lib would leak into the host build and cause incorrect linkage, preventing configuration or build.
76 lines
2.3 KiB
Bash
76 lines
2.3 KiB
Bash
# Template file for 'icu'
|
|
pkgname=icu
|
|
version=63.1
|
|
revision=2
|
|
wrksrc=icu
|
|
build_wrksrc=source
|
|
build_style=gnu-configure
|
|
hostmakedepends="pkg-config"
|
|
short_desc="Robust and full-featured Unicode services"
|
|
maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
|
license="ICU"
|
|
homepage="http://www.icu-project.org/"
|
|
distfiles="http://download.icu-project.org/files/icu4c/${version}/icu4c-${version//./_}-src.tgz"
|
|
checksum=05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
configure_args+=" --with-cross-build=${XBPS_BUILDDIR}/${wrksrc}/host-icu"
|
|
fi
|
|
|
|
pre_configure() {
|
|
|
|
# strtod_l() is not supported by musl; also xlocale.h is missing
|
|
# It is not possible to disable its use via configure switches or env vars
|
|
# so monkey patching is needed. Idea was stollen from openembedded
|
|
# https://github.com/openembedded/openembedded-core/blob/master/meta/recipes-support/icu/icu.inc#L30
|
|
# http://git.alpinelinux.org/cgit/aports/tree/main/icu/APKBUILD?id=46736e7b8040becc9f69ad6d2c2d317a52d5485b#n34
|
|
case "${XBPS_TARGET_MACHINE}" in
|
|
*-musl) sed -i -e 's,DU_HAVE_STRTOD_L=1,DU_HAVE_STRTOD_L=0,' configure ;;
|
|
esac
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
# Configure and build for host.
|
|
mkdir host-build
|
|
(
|
|
cd host-build
|
|
env CC=cc LD=ld CXX=g++ AR=ar RANLIB=ranlib \
|
|
AS=as STRIP=strip CFLAGS="-Os -fPIE" CXXFLAGS="-Os -fPIE" \
|
|
LDFLAGS="" ../configure --prefix=/
|
|
make ${makejobs}
|
|
mkdir -p ${wrksrc}/host-icu/config
|
|
cp config/icucross.* ${wrksrc}/host-icu/config
|
|
make DESTDIR=${wrksrc}/host-icu install
|
|
mv ${wrksrc}/host-icu/sbin/* ${wrksrc}/host-icu/bin
|
|
make distclean
|
|
)
|
|
fi
|
|
|
|
# libicudata must be linked to libc, otherwise it's soft-float on ARM.
|
|
# probably other stuff breaks too, so let's just do it.
|
|
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653457
|
|
sed -e 's,-nostdlib,,g' -i ${wrksrc}/source/config/mh-linux
|
|
}
|
|
|
|
post_install() {
|
|
vlicense $wrksrc/LICENSE
|
|
}
|
|
|
|
icu-devel_package() {
|
|
depends="libstdc++-devel icu-libs>=${version}_${revision}"
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove usr/lib/icu
|
|
vmove usr/lib/pkgconfig
|
|
vmove usr/share/icu
|
|
vmove usr/bin/icu-config
|
|
vmove "usr/share/man/man1/icu-config*"
|
|
vmove "usr/lib/*.so"
|
|
}
|
|
}
|
|
icu-libs_package() {
|
|
short_desc+=" - shared libs"
|
|
pkg_install() {
|
|
vmove "usr/lib/*.so.*"
|
|
}
|
|
}
|