aports/community/picolibc/APKBUILD

70 lines
2 KiB
Text

# Maintainer: Marian Buschsieweke <marian.buschsieweke@posteo.net>
_targets="
arm-none-eabi
riscv-none-elf
"
pkgname=picolibc
pkgver=1.8.10
_gccver=15.1.0
pkgrel=0
pkgdesc="A C standard library based on newlib with focus on compact size"
url="https://github.com/picolibc/picolibc"
makedepends="meson"
# riscv64: limited by newlib -> gcc-cross-embedded
arch="all !riscv64"
license="GPL-2.0-only AND LGPL-2.1-only AND 0BSD AND BSD-3-Clause AND GPL-3.0-only AND LGPL-3.0-only"
source="$pkgname-$pkgver.tar.xz::https://github.com/picolibc/picolibc/releases/download/$pkgver/picolibc-$pkgver.tar.xz"
options="!check"
for target in $_targets; do
subpackages="picolibc-$target:_install_subpkg $subpackages"
makedepends="binutils-$target gcc-$target~$_gccver newlib-$target $makedepends"
done
prepare() {
default_prepare
# Handle mismatch of target triples
mv "$builddir/scripts/cross-riscv64-unknown-elf.txt" \
"$builddir/scripts/cross-riscv-none-elf.txt"
sed -e 's/riscv64-unknown-elf/riscv-none-elf/g' \
-i "$builddir/scripts/cross-riscv-none-elf.txt"
}
build() {
for target in $_targets; do
# CFLAGS and LDFLAGS from the host (Linux) do not necessarily make sense
# for the target (bare metal MCU)
unset CFLAGS
unset LDFLAGS
# cannot use abuild-meson here, as target != host
meson \
--prefix=/usr/ \
--buildtype=plain \
--cross-file=scripts/cross-$target.txt \
-Dincludedir=picolibc/$target/include \
-Dlibdir=picolibc/$target/lib \
. build-$target
meson compile -C build-$target
done
}
package() {
for target in $_targets; do
depends="$depends picolibc-$target"
done
mkdir -p "$pkgdir"
}
_install_subpkg() {
target="${subpkgname#picolibc-}"
pkgdesc="A C standard library based on newlib with focus on compact size for $target"
depends="binutils-$target gcc-$target~$_gccver $depends"
DESTDIR="$subpkgdir" meson install -C "$builddir/build-$target"
}
sha512sums="
2b7f347fef1e5523f7acff32aa6f261bf9aae959902ea970f0fe414ff5206481c2ef37ade078b432022617e1ac6352e9039c7e95a61483eafdd241aac70683e6 picolibc-1.8.10.tar.xz
"